㈠ 很奇怪為什麼國內沒有任何組織或個人開發最底層的中文編譯器呢
這是一個技術問題,你如果沒讀過編譯原理(龍書)的話,你是看不懂下面的回答的。因為中國技術不足,沒人能寫出支持中文的lex和yacc。首先詞法分析生成器lex,就對中文不友好,它只支持ascii字母,不支持中文。這意味著你編譯器里的詞彙只能是英文單詞,不能是中文詞彙。其次就是語法分析生成器yacc了,也不支持中文,只支持用英文寫的語法規則,不能用中文書寫。這意味著最最基本的語法規則是全英文的,這算哪門子中文編程語言。非常遺憾,中國目前沒有牛人造出支持中文的lex和yacc來,否則全中文編譯器一定會滿天飛的,多到爛大街。為什麼說多到爛大街?一個全中文的編譯器其實僅僅需要修改編譯器的前端詞法分析器和語法分析器(語法分析器甚至無需大改動),後端直接對接開源代碼即可,開源英文編譯器已經爛大街了,把它們的後端移植過來就行了。但關鍵就是沒有支持中文的自動化工具lex和yacc。
自動化這條路走不通,純手寫總可以吧。我猜測易語言就是前端純手寫的全中文編譯器。你可以使用易語言,絕對可以達到你的要求。但是從技術的角度來講,lex和yacc的技術高度遠高於易語言,畢竟lex和yacc號稱編譯器的編譯器,編譯器之母。
㈡ 哪本"編譯原理"的書比較好
我們學校用的是《編譯原理》與《編譯原理與實踐》這兩本書,這兩本書都是國外的教材。我覺得《編譯原理與實踐》這本書不錯,自學應該能看懂,而且代碼比較多,書最後還有整個小型編譯器的源代碼。
編譯不好學,你就慢慢學吧。
下面的資料請作參考:
當代編譯技術三大聖經級別的教材
1.龍書(Dragon book)
書名是Compilers: Principles,Techniques,and Tools
作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman
內容簡介
《編譯原理》作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman是世界著名的計算機 科學家,他們在計算機科學理論、資料庫等很多領域都做出了傑出貢獻。《編譯原理》 是編譯領域無可替代的經典著作,被廣大計算機專業人士譽為「龍書」。《編譯原理》一 直被世界各地的著名高等院校和科研機構(如貝爾實驗室、哥倫比亞大學、普 林斯頓大學和斯坦福大學等)廣泛用作本科生和研究生編譯原理與技術課程的 教材,《編譯原理》對我國計算機教育界也具有重大影響。 書中深入討論了編譯器設計的重要主題,包括詞法分析、語法分析、語法制 導分析、類型檢查、運行環境、中間代碼生成、代碼生成、代碼優化等,並在 最後兩章中討論了實現編譯器的一些編程問題和幾個編譯器實例,而且每章都 提供了大量的練習和參考文獻。
與上一版相比,《編譯原理》第二版進行了全面的修訂,涵蓋了編譯器開發方面的最新進展。每章中都提供了大量的系統及參考文獻。《編譯原理》是編譯原理課程方面的經典教材,內容豐富,適合作為高等院校計算機及相關專業本科生及研究生的編譯原理課程的教材,也是廣大技術人員的極佳參考讀物。
作者簡介
Alfred V.Aho,美國歌倫比亞大學教授,美國國家工程院院士,ACM和IEEE會士,曾獲得IEEE的馮·諾伊曼獎。著有多部演算法、數據結構、編譯器、資料庫系統及計算機科學基礎方面的著作。
Monica S.Lam,斯坦福大學計算機科學系教授,曾任Tensilica的首席科學家,也是Moka5的首任CEO。曾經主持SUIF項目,該項目產生了最流行的研究用編譯器之一。
Ravi Sethi,Avaya實驗室總裁,曾任貝爾實驗室高級副總裁TLucent Technologies通信軟體的CTO。他曾在賓夕法尼亞州立大學、亞利桑那州立大學和普林斯頓大學任教,是ACM會士。
Jeffrey D.Ullman斯坦福大學計算機科學系教授和Gradiance CEO,他的研究興趣包括資料庫理論、資料庫集成、數據挖掘和利用信息基礎設施教學等。他是美國國家工程院院士、IEEE會士,獲得過ACM的KarIstrom傑出教育家獎和Knuth獎。
第一版中文版
第二版中文版
2.鯨書(Whale book)
書名是:Advanced Compiler Design and Implementation
作者是:Steven S.Muchnick
內容簡介
本書迎接現代語言和體系結構的挑戰,幫助讀者作好准備,去應對將來要遇到的編譯器設計的問題。
本書涵蓋現代微處理器編譯器的設計和實現方面的所有高級主題。本書從編譯設計基礎領域中的高級問題開始,廣泛而深入地闡述各種重要的代碼優化技術,分析各種優化之間的相對重要關系,以及實現這些優化的最有效方法。
本書特點
●為理解高級編譯器設計的主要問題奠定了基礎
●深入闡述優化問題
●用Sun的SPARC、IBM的POWER和PowerPC、DEC的Alpha以及Intel的Pentium和相關商業編譯 器作為案例,說明編譯器結構、中間代碼設計和各種優化方法
●給出大量定義清晰的關於代碼生成、優化和其他問題的演算法
●介紹由作者設計的以清晰、簡潔的方式描述演算法的語言ICAN (非形式編譯演算法表示)。
本書是經典的編譯器著作,與「龍書」齊名,稱為鯨書。書中針對現代語言和體系結構全面介紹了編譯器設計與實現的高級論題,從編譯器的基礎領域中的高級問題開始,然後深入討論了各種重要的代碼優化。本書專為編譯器專業人士和計算機專業本科生,研究生編寫,在設計和實現高度優化的編譯器以及確定優化的重要性和實現優化的最有效的方法等方面,為讀者提供了非常有價值的指導。
作者簡介
Steven S.Muchnick,曾是計算機科學教授,後作為惠普的PA-RISC和SUN的SPARC兩種計算機體系結構的核心開發成員,將自己的知識和經驗應用於編譯器設計,並擔任這些系統的高級編譯器設計與實現小組的領導人。他在研究和開發方面的雙重經驗,對於指導讀者作出編譯器設計決策極具價值。
3.虎書(Tiger book)
書名是:Modern Compiler Implementation in C /Java /ML,Second Edition
作者是:Andrew W.Appel,with Jens Palsberg
內容簡介
《現代編譯原理——C語言描述(英文版)/圖靈原版計算機科學系列》全面講述了現代編譯器的各個組成部分,包括:詞法分析、語法分析、抽象語法、語義檢查、中間代碼表示、指令選擇、數據流分析、寄存器分配以及運行時系統等。與大多數編譯原理的教材不同,《現代編譯原理——C語言描述(英文版)/圖靈原版計算機科學系列》採用了函數語言和面向對象語言來描述代碼生成和寄存器分配,對於編譯器中各個模塊之間的介面都給出了實際的 C 語言頭文件。 全書分成兩部分,第一部分是編譯的基礎知識,適用於第一門編譯原理課程(一個學期);第二部分是高級主題,包括面向對象語言和函數語言、垃圾收集、循環優化、 SSA(靜態單賦值)形式、循環調度、存儲結構優化等。
本書是一本著名的編譯原理課程的教材。國際上眾多名校均採用本書作為編譯原理課程的教材,包括美國麻省理工學院、加州大學伯克利分校、普林斯頓大學和英國劍橋大學等。本書在國外享有「虎書」的稱號,與有「龍書」之稱的《編譯原理》(Alfred Aho 等編著)齊名。與編譯原理方面的其他名著相比,本書出版時間晚,內容新。 書中專門為學生提供了一個用 C 語言編寫的實習項目,包括前端和後端設計,學生可以在一學期內創建一個功能完整的編譯器。
作者簡介
Andrew W.Appel,美國普林斯頓大學計算機科學系教授,第26屆ACM SIGPLAN-SIGACT程序設計原理年會大會執行主席,1998-1999年在貝爾實驗室做研究工作。主要研究方向是計算機安全、編譯器設計、程序設計語言等。
㈢ c語言編譯軟體有哪些
6款好用的C語言編譯器推薦
一些剛開始接觸C語言編譯的網友想下載一款C語言編譯器來使用,不過,網路上有不少C語言編譯器相關的軟體,讓人很難抉擇。那麼,C語言編譯器哪個好?今天的文章里,小編給大家整理了6款好用的C語言編譯器推薦給大家,需要C語言編譯器的網友,不妨了解一下!
一、Dev-C++
Visual Studio(VS) 是一套非常完備的工具和服務,可幫助您為 Microsoft 平台和其他平台創建各種各樣的應用程序。Visual Studio 還可將您所有的項目、團隊和利益干係人聯系在一起。現在您的團隊可以從任何位置以虛擬方式進行更為敏捷的合作,無論他們採用何種開發工具。
功能介紹
可以通過強大的集成開發環境構建面向 Windows、Android、iOS 以及 Web 的出色應用。使用任何 IDE 或編輯器在雲中進行版本控制、敏捷、持續交付、應用程序分析協作。
適用於所有操作系統的編輯器使用可在 Windows、OS X 或 Linux 上運行的免費代碼編輯器構建和調試現代 Web 和雲應用程序。
㈣ 編譯器是什麼
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器 (Linker) → 可執行程序 (executables)
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。
編譯是從源代碼(通常為高級語言)到能直接被計算機或虛擬機執行的目標代碼(通常為低級語言或機器語言)的翻譯過程。然而,也存在從低級語言到高級語言的編譯器,這類編譯器中用來從由高級語言生成的低級語言代碼重新生成高級語言代碼的又被叫做反編譯器。也有從一種高級語言生成另一種高級語言的編譯器,或者生成一種需要進一步處理的的中間代碼的編譯器(又叫級聯)。
典型的編譯器輸出是由包含入口點的名字和地址, 以及外部調用(到不在這個目標文件中的函數調用)的機器代碼所組成的目標文件。一組目標文件,不必是同一編譯器產生,但使用的編譯器必需採用同樣的輸出格式,可以鏈接在一起並生成可以由用戶直接執行的EXE,
所以我們電腦上的文件都是經過編譯後的文件。
㈤ 翻譯程序和編譯程序的區別
翻譯程序是一種系統程序,它將計算機編程語言編寫的程序翻譯成另外一種計算機語言的一般來說等價的程序,主要包括編譯程序和解釋程序,匯編程序也被認為是翻譯程序。
程序的最初形式稱為源程序或者源代碼,翻譯後的形式被稱為目標程序或者目標代碼。
大多數翻譯程序是將高級語言編寫的程序翻譯為機器語言形式的可執行程序。但是也有些翻譯程序將源程序翻譯成其他高級語言或者位元組碼等中間形式。翻譯程序不是語言處理程序。
任何一種高級程序都有一個與之對應的編譯器來完成對源程序的翻譯。一個編譯器至少要包含三個部分的進程。詞法分析器、語法分析器、代碼生成器。
編譯程序(Compiler,compiling program)也稱為編譯器,是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。它以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。
㈥ 手機能否裝C語言編譯器
可以裝,不過需要安卓手機。
安裝步驟如下:
1、我們打開谷歌應用商店。在搜索框里輸入mobile c查找應用程序。下載並安裝好
6、可以看到這里正確的輸出了Hello World字元串。
㈦ 說明高級語言編譯器和EDA綜合器的區別
高級語言編譯器和EDA綜合器的區別如下
1、DA是電子設計自動化縮寫,是九十年代初從CAD計算機輔助設計、CAM計算機輔助製造、CAT計算機輔助測試和CAE計算機輔助工程的概念發展而來的。EDA技術是以計算機為工具,根據硬體描述語言完成的設計文件,自動地完成邏輯編譯、化簡、分割、綜合及優化、布局布線、模擬以及對於特定目標晶元的適配編譯和編程下載等工作。
2、高級語言編譯器是指把用高級程序設計語言書寫的源程序,翻譯成等價的機器語言格式目標程序的翻譯程序。編譯程序屬於採用生成性實現途徑實現的翻譯程序。其以高級程序設計語言書寫的源程序作為輸入,而以匯編語言或機器語言表示的目標程序作為輸出。編譯出的目標程序通常還要經歷運行階段,以便在運行程序的支持下運行,加工初始數據,算出所需的計算結果。以上就是說明高級語言編譯器和EDA綜合器的區別。