最簡編譯器
A. 想做一個簡單的C編譯器要如何下手
再簡單的編譯也不簡單,你能做的一般是把c語言轉換為匯編語言,然後讓機器匯編成機器代碼。如果你想像TURBO C那樣自己生產機器代碼,那是非常非常麻煩的。
C語言課程的老師不會叫你作編譯的,可能我們都理解錯他的意思了。編譯器的題目只有《編譯原理》的老師才來安排,並且如果是本科的話,恐怕一年的課程也做不出。
B. 製作一個簡單的編譯器
還能編譯匯編。。。
我暈。。。
我想這個不是一般人可以做到的,祝你好運!
如果你僅僅針對文本編輯器的話就好辦了。
C. 請問現在windows下c用什麼編譯器比較好,最好簡潔點的。TC實在太古老了。
額,這么說吧。tc是一個包含有編譯器和IDE(集成開發環境)的工具。不只是一個編譯器那麼簡單。你如果說的是用IDE的話,可以用visual studio 2010(其他版本也可),不過一般都盜版的。0.0。微軟的visual studio自帶了編譯器。當然也有其他選擇,比如說codeblocks,但是這只是IDE而已,還要配置編譯器。編譯器的話流行的是gcc(gnu的編譯器),本來是linux上的,windows上的版本是mingw(網路一下),配置教程網上很多,一般就配個環境變數。
D. 如何寫一個簡單的編譯器
因為我這里都只寫了 Parser ,所以就只談談第一次寫 Parser 的建議。
1. 扔掉龍書虎書鯨魚書。這些書都有一個問題,就是在自己手寫完一個自己的 Parser 之前,書上寫的那些鬼東西完全都不知道該怎麼用,用在哪裡。
2. 大膽地擼。不要在意性能啊,擴展性,復用啊這些鬼東西,先把東西做出來再說。
3. 記住代碼只不過是格式化文本。不要覺得代碼是什麼復雜的東西,它跟 Json / XML 這些東西沒啥太大區別。Parser 的意義就是把人能看懂的格式化數據編程計算機能看懂的格式數據。
E. 如何寫一個簡單的編譯器
如果你想寫一個簡單的編譯器,那麼首先你要有寫軟體的才能,或者是你要會有變形軟體這方面的技術。那麼你就可以很簡單的編寫一個編譯器。或者你可以叫我別人幫你寫一個編譯器
F. 如何用c/c++實現一個簡單的編譯器
c++和c語言編譯器顯然是gcc和g++最好。這個是毫無爭議的。他最大的特點是完全符合ANSI標准,語法比較靈活,代碼短小可靠,在全球應用太廣了,沒太多bug對應的ide有:MINGW,DEVC++
G. 如何用C語言的做一個簡單的編譯器
先學編譯原理。
然後根據步驟,
1 處理預編譯
2 詞法分析
3 語法分析
4 語義分析
5 中間代碼轉換
6 二進制代碼生成。
簡單起見,不需要考慮優化。 初期可以不需要支持太多語法。
H. 如何編寫簡單的java編譯器(用java語言),比如說能翻譯諸如"public static void main" 的就行。
看看《編譯原理》或許對你有幫助。
要編譯一門語言,你要知道它的語法 syntax 和語義 semantics,語法是用來檢查所謂的「語法錯誤」,語義是讓語句變得有意義,對計算機程序語言來說,就是把它翻譯成計算機能執行的指令。
你需要了解最基本的一些概念諸如正則表達式,上下文無關語言,上下文相關語言,等等。
《編譯原理》是很通用的基礎書籍,裡面我記得有介紹了 yacc 的用法,這是 GNU 里的一款編譯器的編譯器,對應有一個 Java 的 Project 叫 yacc for Java,你可以去 google 找一下。
如果你能寫出一個檢查語法錯誤的程序就已經很不錯了,你可以考慮改做一個編輯器之類的軟體(只需要找錯,不需要編譯)。如果你真要做編譯器,工程量巨大不說,你首先需要對至少兩種語言都熟悉,你需要對計算機的指令和它的執行方式有深刻理解,尤其是 Java 這種動態的高級語言,有類啊對象啊什麼的,要把它翻譯成機器指令實屬不易,至今除了 Sun 的 javac 都沒有很成功的編譯器,那個 GCJ(把 Java 編譯成本地代碼)的嘗試也只成功了一半,以前還被 MingW 包含在工具箱里(和 GCC 什麼的一起),但是有很多特性不支持,而且已經很久不更新了,新版本的 MingW 里都沒有了。想一個人從零開始設計一款 Java 的編譯器,即使是專家都做不到啊。
I. 求一個最簡單的適合初學者的C語言編譯器
c-free和vc++6.0都可以,比較推薦c-free吧,畢竟是有中文的,VC也有中文,不過是漢化過的,這兩者也沒啥區別,主要是VC不太兼容win7和win8,畢竟較老了,而C-free可以兼容win7,win8我不知道,沒在那裡用過,可以試一下C-free,這兩者都要在創建C文件的之後加後綴.c才能保存為C文件
J. 如何用basic語言實現一個最簡單的解釋器/編譯器
首先Basic語言是解釋型的語言,而C語言是編譯型的語言。什麼意思呢,就是你編寫的Basic語言程序運行的時候需要一個解釋器將高級語言代碼轉為機器碼然後才可以執行。C語言程序一般經過編譯和聯接後直接生成目標代碼。目標代碼本身就是機器碼所以可以直接運行。
從語法來看,C語言是面向過程的語言。Basic語言嚴格意義上只是一個腳本語言,語法相對來講非常簡單。
另外,C語言是最接近匯編語言的一種語言,功能非常強大,但是要求開發人員對硬體,操作系統等底層的東西要有很深的了解,開發程序相對來講麻煩一些,但是程序性能非常好。Basic語言相封裝了很多底層的東西,所以不要求開發人員有很深的計算機專業背景,開發簡單,但是不要指望用Basic語言開發真正的商業程序。
由於以上的區別,造成這兩種語言的用途不一樣。Basic語言常用來寫一些腳本,或者在真正開發之前作一個軟體模型。實際開發用C語言以確保運行速度和較小的內存需求等其他性能。
顯然,這兩種語言還有其他區別,但上面應該是最重要的區別吧