當前位置:首頁 » 編程軟體 » 什麼編譯好學

什麼編譯好學

發布時間: 2022-12-28 09:26:14

⑴ 學習編譯原理哪本書好

我們學校用的是《編譯原理》與《編譯原理與實踐》這兩本書,這兩本書都是國外的教材。我覺得《編譯原理與實踐》這本書不錯,自學應該能看懂,而且代碼比較多,書最後還有整個小型編譯器的源代碼。
編譯不好學,你就慢慢學吧。

下面的資料請作參考:

當代編譯技術三大聖經級別的教材

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語言用什麼編譯器好

C-Free 還行,我就是用這個 寫C、C++程序 ,小巧,不到20M,真的不錯~~~~~~~

C-Free 5.0 專業版
C-Free是一款支持多種編譯器的專業化C/C++集成開發環境(IDE)。利用本軟體,使用者可以輕松地編輯、編譯、連接、運行、調試C/C++程序。C-Free中集成了C/C++代碼解析器,能夠實時解析代碼,並且在編寫的過程中給出智能的提示。C-Free提供了對目前業界主流C/C++編譯器的支持,你可以在C-Free中輕松切換編譯器。可定製的快捷鍵、外部工具以及外部幫助文檔,使你在編寫代碼時得心應手。完善的工程/工程組管理使你能夠方便的管理自己的代碼。

⑶ 什麼編程軟體比較好比較容易入門

1、JavaScript

Java是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言,即使是開發簡單的程序,也必須設計對象;而JavaScript是一種直譯式腳本語言,它本身提供了非常豐富的內部對象供設計人員使用。

2、python

Python對初學者來說也是一個入門級編程語言。Python可用於Web開發的應用程序和桌面應用程序,這種動態語言支持OOP編程、過程式編程和函數式編程。

另外,它是開源語言,這意味著它可以免費入手,有著相當活躍的社區。Joel Lee細述了為何Python很有用。

3、TotalCommander

簡稱TC文件管理器,一款功能強大的全能文件管理軟體,能夠極大地提高文件處理工作的效率,以其使用高效方便、穩定可靠、擴展性與可配置性強征服了無數電腦老鳥。

4、Android studio

對UI界面設計和編寫代碼有更好地支持,可以方便地調整設備上的多種解析度。同樣支持ProGuard工具和應用簽名。不過,目前版本的Android Studio不能在同一窗口中管理多個項目。

5、WebStorm

jetbrains公司旗下一款JavaScript 開發工具。目前已經被廣大中國JS開發者譽為「Web前端開發神器」、「最強大的HTML5編輯器」、「最智能的JavaScript IDE」等。與IntelliJ IDEA同源,繼承了IntelliJ IDEA強大的JS部分的功能。

⑷ 哪種編程語言最簡單好學的

c/c++的指針初學者很不習慣。 Python 相對來說自由許多, 而且功能強大。 有google.com ,IDL 等大公司都在用它,而且可以養成很好的縮進習慣。
應用領域很廣從web(google.com , douban.com) 到GUI/console程序(比如大3d軟體BLEND3D),到網路游戲腳本,都可以用。
計算機語言的種類非常的多,總的來說可以分成機器語言,匯編語言,高級語言三大類。
電腦每做的一次動作,一個步驟,都是按照以經用計算機語言編好的程序來執行的,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。
計算機所能識別的語言只有機器語言,即由0和1構成的代碼。但通常人們編程時,不採用機器語言,因為它非常難於記憶和識別。
目前通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。匯編程序通常由三部分組成:指令、偽指令和宏指令。匯編程序的每一句指令只能對應實際操作過程中的一個很細微的動作,例如移動、自增,因此匯編源程序一般比較冗長、復雜、容易出錯,而且使用匯編語言編程需要有更多的計算機專業知識,但匯編語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高級語言所能實現的,而且源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對於匯編語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如目前流行的VB、VC、FoxPro、Delphi等,這些語言的語法、命令格式都各不相同。
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:
解釋類:執行方式類似於我們日常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器,但這種方式比較靈活,可以動態地調整、修改應用程序。
編譯類:編譯是指在應用源程序執行之前,就將程序源代碼「翻譯」成目標代碼(機器語言),因此其目標程序可以脫離其語言環境獨立執行,使用比較方便、效率較高。但應用程序一旦需要修改,必須先修改源代碼,再重新編譯生成新的目標文件(* .OBJ)才能執行,只有目標文件而沒有源代碼,修改很不方便。現在大多數的編程語言都是編譯型的,例如Visual C++、Visual Foxpro、Delphi等。
[NextPage]學習編程,從何入手
如果您想學習編程,卻又不知從何入手,那麼您不妨看看下面的幾種學習方案,可能會給您一些啟示吧!
==============================================
方案一 Basic語言 & Visual Basic優點(1)Basic 簡單易學,很容易上手。
(2)Visual Basic 提供了強大的可視化編程能力,可以讓你輕松地做出漂亮的程序。
(3)眾多的控制項讓編程變得象壘積木一樣簡單。
(4)Visual Basic 的全部漢化讓我們這些見了English就頭大的人喜不自禁。
缺點(1)Visual Basic 不是真正的面向對象的開發文具。
(2)Visual Basic 的數據類型太少,而且不支持指針,這使得它的表達能力很有限。
(3)Visual Basic 不是真正的編譯型語言,它產生的最終代碼不是可執行的,是一種偽代碼。它需要一個動態鏈接庫去解釋執行,這使得Visual Basic 的編譯速度大大變慢。
綜述:方案一適合初涉編程的朋友,它對學習者的要求不高,幾乎每個人都可以在一個比較短的時間里學會vB編程,並用VB 做出自己的作品。對於那些把編程當做游戲的朋友來說,VB 是您最佳的選擇。
如果想要熟悉資料庫,那麼簡單的就是pb,它和vb差不多,簡單易學但是沒有指針。C語言,C++等都比較容易學

⑸ 我想要學C++,用什麼編譯器好

您好,初學C++,建議使用g++編譯器+DevC++ IDE環境(一般編譯器會和IDE一起安裝),等到精通了,就可以去使用Visual Studio等復雜的編譯器了。

⑹ c語言和python哪個好學

C語言程序設計是專業基礎課,C語言本身是一個非常強大的工具,它是目前最為廣泛使用的工具。 而python是通用的腳本開發語言,比其他編程語言更加簡單、易學

⑺ perl 、shell、python三種腳本語言那種好學、易用

perl、shell、python三種腳本語言的區別:

1、適用不同:shell是操作linux的基本,是必須學的。學shell就是學linux命令。perl有強大的正則表達式支持,對於文本處理非常強悍,玩linux不得不學。python作用一種面向對象的,能作為linux腳本的語言,學好之後能幫你很好地完成工作。

2、特點不同:Perl是一種能完成任務的語言。從一開始,Perl就設計成可以把簡單工作簡單化,同時又不失去處理困難問題能力的語言。它可以很容易操作數字,文本,文件和目錄,計算機和網路,特別是程序的語言。

這種語言應該很容易運行外部的程序並且掃描這些程序的輸出獲取感興趣的東西。而且它還應該很容易能把這些你感興趣的東西交給其它程序做特殊的處理。當然,這種語言還應該很容易在任何現代的操作系統上可以移植地編譯和運行。

shell提供了你與操作系統之間通訊的方式。這種通訊可以以交互方式(從鍵盤輸入,並且可以立即得到響應),或者以shellscript(非交互)方式執行。

shellscript是放在文件中的一串shell和操作系統命令,它們可以被重復使用。本質上,shellscript是命令行命令簡單的組合到一個文件裡面。Shell基本上是一個命令解釋器,類似於DOS下的command.com。

它接收用戶命令(如ls等),然後調用相應的應用程序。較為通用的shell有標準的Bourneshell(sh)和Cshell(csh)。

Python是一種代表簡單主義思想的語言。閱讀一個良好的Python程序就感覺像是在讀英語一樣,盡管這個英語的要求非常嚴格,Python的這種偽代碼本質是它最大的優點之一。它使你能夠專注於解決問題而不是去搞明白語言本身。

3、優點不同:perl,用作文本處理比較好,可以作為系統的輔助工具。shell,用作系統維護、操作等方面。python,功能強大,模塊多、跨平台能力好,完全面向對象,尤其適用做大型腳本程序的開發和快速開發。

(7)什麼編譯好學擴展閱讀:

erl比shell+sed+awk更強大,但學習兩者並不沖突,通常是學習shell做為腳本編程的入門基礎。而Python在應用領域則與前兩者有很大的差別,無太大的可比性。面向不同的任務,可以只需用到其中的一種,也可能三種都要用到,所以究竟該學誰不學誰,需要由面對的任務來決定。

總之,shell是基礎,其他是進階輔助。

Shell腳本通常都是以.sh為後綴名的,這個並不是說不帶.sh這個腳本就不能執行,只是大家的一個習慣而已。所以,以後你發現了.sh為後綴的文件那麼它一定會是一個shell腳本了。

test.sh中第一行一定是「#!/bin/bash」它代表的意思是,該文件使用的是bash語法。如果不設置該行,那麼你的shell腳本就不能被執行。』#』表示注釋。後面跟一些該腳本的相關注釋內容以及作者和創建日期或者版本等等。

⑻ 新手學C語言用什麼編譯器比較好

1、 visual c++6.0 (win8系統下不好用,C/C++)-Microsoft Visual C++ ;
2、 visual studio (2005、2008、2010、2012、2013)- Microsoft Visual Studio ;
3、 win-tc非常方便:不騙你,2000/XP/7都可以用 ;
4、 Code::Blocks(win7、8都可以用);
5、 Turb C(只能編譯C語言) ;
6、 gcc (GNU編譯器套件) ;
7、 DEV C++;
8、 C-Free;
9、 Borland C++、WaTCom C++、Borland C++ Builder、GNU DJGPP C++、Lccwin32 C Compiler3.1、High C、My Tc等,由於C語言比較成熟,所以編程環境很多;
10、還常用souceinsight ,在工作中還用Labwindows編程,直接調試運行,不過那是有工程背景,有工作經驗的技術人員用的。

最好用第一個

⑼ Python和java哪個好學

首先,在選擇學習Java編程語言還是python編程語言之前,得明白自己學習編程的目的是什麼?是為了學會變成後跳入互聯網企業工作,為轉行做准備;還是想快速入門編程語言,學習一份技能傍身,為將來做打算。

前者建議選擇學習Java,後者建議學習python,理由:

1、入門難度:phython小於Java,python的語法簡潔清晰,語法接近英語,python簡單的語法和少到可以忽略不計的語法糖可以讓初學者專注於思考要做的事情,而不需要在過程上大費周章。開發環境簡單,能打字就能寫代碼,適合新手入門學習。Java語法需要較好的邏輯思維能力,Java基礎語法需要學習的東西也比較多,如:關鍵字、標識符、注釋、常量與變數、運算符、語句、函數、數組等等,入門比python要難些。

2、流行程度:自2002年起,歷年世界編程語言排行榜——TIOBE排行榜,Java常年位居世界第一,python則在2016年排在第五位;在歐美國家,較為流行python,而國內依舊還是Java與PHP的天下!

3、國內用途:目前國內Java主要用於開發:大型企業級應用、電子政務,政府部門信息化系統、嵌入式設備及、消費類設備、大型網站(特別是淘寶、阿里巴巴等電商網站)、Android系統,APP,游戲等。而python主要用來搞人工智慧機器和運維後端方向,暫時並不是特別的廣。

4、工作機會:在國內一二線城市JavaEE開發人員市場缺口巨大,連續兩年,Java開發工程師人才缺口均已達40萬,企業高薪難聘Java開發工程師。而據職友集統計,全國python的招聘崗位還不到7萬,遠遠少於Java開發的崗位需求人數。

5、未來發展:我國政府目前非常重視人工智慧技術的發展,國務院發布的《新一代人工智慧發展規劃》中,計劃至2030年,我國的人工智慧要達到世界頂尖水平。由於Python是一種用LISP和JAVA編譯的語言,非常適合作為人工智慧語言,所以當人工智慧技術成熟而得到普及後,相信Python編程語言的使用范圍將會大幅度擴大,也許10年後就能見到這個局面吧!但Java在企業級開發的地位依舊是不容挑戰的,Oracle也將Java的未來放在物聯網上,所以Java潛力依舊值得挖掘!

熱點內容
sql軟體和伺服器怎麼連接 發布:2025-09-18 08:27:47 瀏覽:937
手機java模擬器 發布:2025-09-18 07:13:29 瀏覽:416
linux線程的棧大小 發布:2025-09-18 07:09:42 瀏覽:633
廢舊電腦做linux伺服器 發布:2025-09-18 07:06:50 瀏覽:263
終端配置怎麼寫 發布:2025-09-18 06:44:42 瀏覽:804
ftp手機登陸 發布:2025-09-18 06:43:04 瀏覽:767
emc存儲800電話 發布:2025-09-18 06:32:49 瀏覽:964
c語言編程與設計 發布:2025-09-18 06:09:15 瀏覽:724
2016年預演算法 發布:2025-09-18 06:07:05 瀏覽:625
什麼是廣告腳本設計 發布:2025-09-18 05:52:09 瀏覽:659