導航:首頁 > 源碼編譯 > 斯坦福編譯原理及講解

斯坦福編譯原理及講解

發布時間:2022-08-03 05:12:32

『壹』 《計算機程序的構造與解釋》這書是用來干什麼的

計算機程序的構造和解釋 作者: Harold Abelson, Gerald Jay Sussman, Julie Sussman
isbn: 7111135105
書名: 計算機程序的構造和解釋(原書第2版)
頁數: 473
譯者: 裘宗燕
出版社: 機械工業出版社
裝幀: 平裝
出版年: 2004-02-01
又名: Structure and Interpretation of Computer Programs,Second Edition

本書1984年出版(右圖分別是第一,第二版封面),成型於美國麻省理工學院(MIT)多年使用的一本教材,1996年修訂為第2版。在過去的二十多年裡,本書對於計算機科學的教育計劃產生了深刻的影響。
第2版中大部分重要程序設計系統都重新修改並做過測試,包括各種解釋器和編譯器。作者根據其後十餘年的教學實踐,還對其他許多細節做了相應的修改。
本書自出版以來,世界各地已有100多所院校採用本書做教材,其中包括美國斯坦福大學、美國普林斯頓大學、英國牛津大學、日本東京大學等。

作者簡介:
Harold Abelson是MIT1992年度MacVicarFacultyFellow。Gerald JaySussman是Matsushita電子工程教授。他們都在MIT電子工程和計算機科學系工作.都得到過最重要的計算機科學教育獎:如Abelson得到了IEEE計算機學會的Booth獎。Sussman得到了ACM的Karlstrom獎。
Julie Sussman是作家和編輯,同時使用自然語言和計算機語言寫作。
每一位嚴肅的計算機科學家都應該閱讀這本書。由於本書清晰、簡潔和富於才智,我們強烈推薦本書,它適合所有希望深刻理解計算機科學的人們。
——Mitchell Wand<dr>
《美國科學家》雜志
網友評價:
1. 涵蓋面很廣。從數據抽象、過程抽象、迭代、高階函數等編程和控制系統復雜性的思想,到數據結構和演算法,到編譯器/解釋器、編程語言設計。MIT這門課的課程講義(在MIT OCW里可找到)里還增加了面向對象編程的內容。雖然很多內容涉及並不深入,但是這是MIT EECS(電子工程與計算機科學系)的第一門專業基礎課(6.001),也就是說MIT計算機專業的學生在進入大學之後,在這門課之前沒有上過其它編程、軟體、計算機方面的課程。從這個角度看,起點是非常高的。其它大學的學生在倒騰C語言的時候,MIT的學生在思考設計語言和系統。
2. 用解釋語言而不是編譯語言來闡述思想,簡化了數據類型、運行環境相關的一些細節,另外Scheme/Lisp有著極其簡練、但功能極其強大和靈活的語法,這些都使閱讀者更多地將精力集中在思想上,而不是語法細節上,頗為適合學習,只是Scheme的執行效率可能較低,表達力可能不夠」豐富「,不一定適合於實際開發。
3. MIT OCW 6.001里有幾個project,都很有意思。其中一個是設計一個類似於Google使用的web爬蟲!雖然實際上沒這么可怕,做了很多簡化,集中在樹的遍歷與索引表的建立和查詢上,但是仍然可以從中看出教授的視野和對學生的要求。
4. 現在MIT EECS已經取消了這門課,6.001的EECS介紹性功能被6.01和6.02兩門課程替代,另外新增了6.005(軟體),6.006(演算法),是不是因為6.001起點太高或有點偏呢?(對於EE方向的學生來說似乎有點偏。)盡管如此,作為一門在MIT EECS教授了20多年的經典課程,仍然有其價值。
5. MIT EECS沒有專門教授C、C++、Java等編程語言的課,一般都是要求學生用很短的時間自學。比如6.004要用到C,6.005要用到Java,6.006要用的Python,教授會要求學生在課程開始的幾個星期內自學掌握這些語言。
6. SICP中譯本翻譯有些問題。比如表述符號(變數)和值的binding關系時,binding一詞應翻譯成「綁定」,而不是「約束」。
7. MIT Scheme相當難用,簡直是石器時代的開發工具:)(指編輯和解釋器,不是語言)。
8.有人說看這本書主要看第四第五章。這不是一件容易的事情,尤其對於我們這個計算機教育落後的國家。好在還有平易近人的一二三章,基本上可以在網上找全習題答案。
9.有人說scheme是程序設計語言中的皇後,更多的人從來沒見過這條恐龍。打工族翻上幾頁後的第一個感覺是,這本書到底有什麼用?如果你對數據結構演算法編譯原理模塊設計足夠自信,如果你的日常工作是復制粘貼字元串並且很滿意這個結果,再或者如果你是mit的電子工程學士,算啦。
10.最後有一點,全部的習題能不落下盡量做,數量很多,主要是需要很多的時間思考,收獲也不是一般的

『貳』 有看過 斯坦福大學 抽象編程的嗎

銜接編程方法論課程,不是c++語言的課程.而且有大量作業。如果去過stanford的官網可以下載作業,我記得第一個作業是生成一個可移動的圖案,用的是他們自己的庫,不過沒答案也沒講解。只看視頻是不夠的。現在MOOC很流行課程眾多,有視頻,作業,交流。網易的雲課堂,學堂在線,coursera都很好

『叄』 美國計算機專業

前20名

CS——Computer Science的簡稱,即計算機科學。
總的來說,計算機專業前20名的學校可分成三類:
A.4個最為優秀的CS Program:Stanford,MIT,U.C.Berkeley,CMU。
B.6個其他前10名的:UIUC,Cornell,U.Washington,Princeton,U.Wisconsin- Madison和 U.Texas-Austin。其中UIUC,Cornell,U.Washington和 U.Wisconsin-Madison幾乎從未出過前10名。
C.其他非常非常優秀的CS:CalTech,U.Maryland-College Park,UCLA,U.Michigan, GIT,Brown,Harvard,Yale,Pure和 Rice。
1. 斯坦福大學(Stanford University)
Stanford的CS是個很大個的CS,擁有40人以上的Faculty成員,其中不乏響當當、硬梆梆的圖靈獎得主(Edward A.Feigenbaum, John McCarthy)和各個學科領域的大腕人物,比如理論方面的權威Donald E. Knuth;資料庫方面的Jeffrey D. Ullman(他還寫過那本著名的編譯原理,此人出自Princeton);以及RISC技術挑頭人之一的John Hennessy。相信CS的同學對此並不陌生。該系每年畢業30多名Ph.D.以及更多的Master。學生的出路自然是如魚得水,無論學術界還是工業界,Stanford的學生都倍受青睞。幾乎所有前10 名的CS學校中都有Stanford的畢業生充當教授。
畢業於U. of Utah的Jim Clark曾經在Stanford CS當教授。後來就是這個人創辦了高性能計算機和科學計算可視化方面巨牛的SGI公司。SUN公司名字的來歷是Stanford University Network。順便提一下,創辦 YAHOO的華人楊致遠曾在斯坦福的EE攻讀博士,後來中途輟學辦了YAHOO。
CS科研方面,斯坦福在理論、資料庫、軟體、硬體、AI等領域都是實力強勁的頂級
高手。斯坦福的RISC技術後來成為SGI/MIPS的Rx000系列微處理器的核心技術;DASH,FLASH項目更是多處理器並行計算機研究的前沿;SUIF並行化編譯器成為國家資助的重點
項目,在國際學術論文中SUIF編譯器的提及似乎能為某些平庸的論文平添幾分姿色。
Stanford有學生14000多,其中研究生7000多;CS有175人攻讀博士,350人攻讀碩士。每年招收的學生數不詳,估計少不了。但不要忘了,每年申請Stanford CS的學生接近千人。申請費高達$80。
斯坦福大學位於信息世界的心臟地帶——矽谷。加州宜人的氣候,美麗的風景使得
Stanford堪稱CS的天堂。33.1平方公里的校園面積怕是夠學子們翻江倒海,叱吒風雲的
了。
2. 麻省理工學院(Massachusetts Inst. of Technology)
MIT招生好像不看GRE成績。MIT的CS是巨牛的,99年最新排名上它和斯坦福同被打了
5.0的滿分,兩者並列第一。MIT的CS曾為CS的發展作出不可磨滅的貢獻,數據流計算的
思想和數據流計算機、人工智慧方面的許多重大成就,影響了整個UNIX界的X-Window…
… MIT 和 Stanford一樣,幾乎都是在CS界樣樣巨牛的學校。據某位大俠提供的資料:
MIT的 Media Arts and Sciences知名度不在Computer Department之下。主要是多媒體技術,信息處理,人工智慧等。有一大批著名的教授,如Marvin Minsky(圖靈獎獲得者)。
3. 加州大學伯克利分校(University of California-Berkeley)
同樣地處舊金山灣畔,矽谷地帶,離Stanford大約只有50公里的UC. Berkeley是美國最激進的學校之一。60年代的嬉皮文化,反越戰,東方神秘主義,回歸自然文化都起
源於此。詩人愛倫金斯堡是當年UC. Berkeley的代言人。
在當今高科技領域UC. Berkeley在締造新的神話,在文學、數學、化學、新聞等20
多個大的學科領域位居前3名。16個諾貝爾獎得主,總數近200的科學院院士、工程院院
士,連同眾多在矽谷商戰中成為億萬富翁的伯克利人撐起了一面匯集天下英才的大旗。
INTEL總裁Andrew Grove,就是畢業於UC. Berkeley。
BSD版的UNIX影響了整個CS界,伯克利的RISC技術後來成為了SUN公司SPARC微處理器的核心技術,David Patterson接下了一個6億美元的項目用於新型計算機體系結構,特別是IRAM的研究開發。
UC. Berkeley有學生30000多,研究生超過8500人。申請費和加州大學的其他分校一樣,$40。據一項最近的調查,伯克利已經成為美國大學生最嚮往的研究生院,高居榜首,其申請的難度可想而知。
UC. Berkeley的CS是個大系,Faculty中有圖靈獎得主以及像Patterson這樣的巨牛。CS科研方面,UC. Berkeley也是樣樣強。
舊金山湛藍起伏的海灣,蒼翠綿延的山巒,舒心宜人的氣候,以及近在咫尺的矽谷
……
這一切的一切不也使得UC. Berkeley儼然一個CS學子的世外桃源嗎?
4. 卡耐基梅隆大學(Carnegie Mellon University)
CMU是個位於匹茲堡的不大的學校,學生7000多,校園好像也不大。但這個學校在工
程及其他一些領域卻是頂尖的學堂。CMU的CS不是一個系,而是一個學院,其規模之大,
可能只有Stanford,UIUC可與之相比。Mach操作系統,PVM,C.mmp等都有CMU的巨大貢獻。
申請CMU的難度很大,因為盡管CMU的CS Faculty很多,但每年只招收不足30人的研
究生隊伍。
5. 伊利諾斯大學(Univ. of Illinois-Urbana-Champaign)
UIUC的工程學院在全美是至尊級的,其CS,ECE,EE在歷史上都屢建戰功。在CS方面
,從早期的超級計算機ILLIAC I,II,III,IV到後來的CEDAR,都是CS發展史上,特別是並行計算機發展史上的重要事件,影響和引導了CS很長時期的發展。David Kuck曾是
並行計算機處理界的一代先驅。
超級計算機研究開發中心(CSRD),美國國家超級計算及應用中心(NCSA)等眾多
的機構,使得UIUC的CS常常成為研發的領頭雁。
大家可能還記得,Netscape-Navigator的最初開發人員中有個Marc Anderssen。這位來自Wisconsin 的小夥子在UIUC讀本科,大四的時候在NCSA參與編寫了MOSAIC;後來他去了矽谷,並在那裡遇到了前面提到過的Jim Clark,SGI的前創始人,兩人一見如故,聯手創辦了著名的網景Netscape,並一度在瀏覽器市場上獨霸武林。
還有Lotus Notes, 遠程登錄程序NCSA Telnet, 郵件程序Eudora等的作者,都是UIUC的畢業生。商務軟體巨人Siebel Systems的創始人Tom Siebel,也是畢業於UIUC的。
UIUC是個大學校,學生總數超過35000,研究生院近萬人。
UIUC的CS很大,40餘個Faculty提供了全面的CS教育和科研項目。每年30多個博士的
畢業數目似乎只有Stanford可以匹敵。
UIUC的Polaris並行化編譯器是這個領域能和Stanford的SUIF直接叫板的拳頭產品,清華開發並行編程環境時選用了這個系統。
UIUC在計算機硬體、軟體、AI、DB等領域都相當強大。特別是硬體,如前面提到的
ILLIAC,CEDAR等。
事實上,UIUC在超級計算機系統的研究開發方面絕不遜於MIT、Stanford等任何一個,甚至有過之而無不及。NCSA建立在UIUC這一事實本身就是佐證。UIUC CS的學生畢業後去學術界的不少,Stanford,UC. Berkeley等CS名校都有UIUC的博士挑大樑。但更多UIUC CS學人還是進入業界,成為業界實乾的中堅。
6. 康奈爾大學(Cornell University)
作為IVY LEAGUE的成員和一所私立學校,Cornell有其獨到的優勢。在美國,私立學
校一般要比公立學校難進,其學生也是經過嚴格的選拔才錄取的。Cornell的CS學生入校
後多能享受FELLOWSHIP的待遇,其個人經濟條件非公立學校可比,加上貴族式校友的提
拔,私立學校的出路是很誘人的。康奈爾在理論計算機方面一直是頂級高手,但在其他
CS領域並不總在前10名。
Cornell學生18000多,研究生過5000人。CS每年招攻讀Ph.D.的學生25人左右。
7. 華盛頓大學(University of Washington)
位於Seattle的U. of Washington得天獨厚——計算機界的巨牛MS就在西雅圖,而且更要命的是,Bill Gates就是那裡的人。這位Harvard的輟學者給了哈佛許多MONEY,但同給U. of Washington的錢財相比,實在是小巫見大巫。
U. of Washington位於風光秀麗的WASHINGTON湖畔,氣候四季如春。33000多學生中研究生有8000名左右。Seattle最令人厭惡的地方可能就是一年有160天會降水。
U. of Washington的CS較大,30多名Faculty成員,每年近20個優質博士畢業,以及大量的Master。估計每年的招生數應該不低。U. of Washington的CS在各個方面比較均衡,最強的軟體排名第5,而其他領域一般也都能位居前10,好像沒有明顯很弱的地方。
圖靈獎得主Dick Karp從UC. Berkeley告老還鄉後又被返聘到了U. of Washington的CS。U. of Washington的CS要求很高,Ph.D.學生入學的平均GPA高達3.86,GRE2160以上,加上一般較早的DEADLINE,申請U. of Washington是相當有難度的。
8. 普林斯頓大學(Princeton University)
Princeton是個令人神往的地方,這里曾經是世界的科學中心。
Princeton的CS不大,18個Faculty成員,學生人數也不算多。科研上除了排名第5的理論,似乎還沒注意到其他閃光點。但是,Princeton無疑培養出了大量計算機界的優秀人物,Jeffrey D. Ullman,John McCarthy等巨牛人物均出自大名鼎鼎的Princeton。在
Princeton領受的教育是最好的教育熏陶。
Princeton學校不大,只有6000多學生,研究生不過1700人。
9. 威斯康星大學(University of Wisconsin-Madison)
U. of Wisconsin-Madison的CS較大,35個Faculty成員,200多個研究生,每年招60—70個新生。目前幾乎1/4的Faculty來自UC. Berkeley,博士生畢業後有去Stanford ,UC. Berkeley等牛校挑大樑的,但和UIUC類似,似乎進入業界的更多一些。然而要在這里拿到博士學位可不容易。超過七成的人,會在中途找到比較理想的工作後,拿著碩士文憑拔腿就跑,免得被那些無窮無盡的科研項目給整慘了。
U. of Wisconsin-Madison的資料庫一直在前3位,經常是第1位。這里的資料庫由於在設計實現DBMS系統上的傳統優勢,使其在業界的聲譽相當崇高,據說Microsoft里有一幫Wisconsin校友從中興風作浪,Oracle也格外青睞Wisconsin-Madison的學子。
Wisconsin的硬體、計算機體系結構實力巨牛,99排名第6,對業界相當有影響力。
微處理器中的超標量技術(SuperScalar)源於此地;多處理機CACHE一致性的匯流排偵聽
SNOOPING協議,IEEE SCI協議等,都是源於此地。正在研究開發中的MultiScalar技術和 DataScalar技術據說可以把微處理器每個時鍾周期的指令發射數提到10以上,大大地提高微處理器的計算能力。Wisconsin的軟體99排名第7。主要是在系統軟體方面做OS 的設計與實現,WEB上的CACHE策略,支持共享主存和消息傳遞兩種並行編程模式及其混合的並行程序設計語言和編譯器,以及由MIDSHIP項目挑起的關於並行與分布式計算,OODB,科學資料庫,支持圖象查詢的新型查詢語言以及圖象處理等方面的研究。由於美國有大量的衛星圖象需要及時處理,加上迫切需要GIS系統的研究開發,這方面的研發使得U. of Wisconsin-Madison撈到了不少經費。
Wisconsin和UIUC的CS理論都是前10名左右。Wisconsin的Carl de Boor是逼近理論 方面的大牛。
U. of Wisconsin-Madison是個大型的綜合性學校,40000學生中研究生院的超過10 000,這萬人中有博士生5000,碩士生3500,法學院、醫學院、護理學院、獸醫學院的職業學生2000人。2200多Faculty中有多位諾貝爾獎得主,52個院士,其中18個是工程院院士。
需要注意的是,Wisconsin的CS有點不同於其他許多學校,它隸屬於College of Le
tters & Science,而不在College of Engineering下面。因此許多偏硬體的項目,比如嵌入式系統,網路硬體、路由,多媒體,通信,自控以及數字信號處理等項目不在CS D ept.,而是在工程院下的Dept. of Electrical & Computer Engineering,即ECE系。
那個系也挺大,比CS還要大不少。98年在工程類排名的計算機工程一項上排了第9位

10. 德克薩斯大學(University of Texas-Austin)
U. of Texas-Austin的CS較大,Faculty中好像有個圖靈獎得主。該系發展比較平衡,最好的AI排第5,其他幾個專業也多能擠進前十。
U. of Texas-Austin是個巨大的學校,5萬學生,研究生院的可能有1.3萬。但學校的主校區卻好像面積不足,僅140公頃,按美國大學的標准,太不足了。
11. 加州理工學院(California Institute of Technology)
CIT的CS很小,只有大約5位教授,每年招很少的學生。雖然申請CIT是免費的,但建
議不要輕易嘗試。由於系太小,CIT好像只是在計算機硬體和科學計算的可視化方面很強
。該系多年以來一直穩坐第11、12位幾乎沒動過窩;類似的情況還有斯坦福,MIT,穩居
第1、2位,Cornell穩居第5位,U. of Wisconsin-Madison穩居第9、10位。CIT的CS和其他系,比如數學、物理、生物等需要大量科學計算的部門聯系很緊密。CIT學校也很小, 2000名學生中研究生佔1100人。Faculty人數也不多,但幾乎個個是巨牛,按平均水平看,CIT可能是世界上最牛的學校了。
12. 馬里蘭大學(University of Maryland at College Park)
U. of Maryland at CP是一個實力相當強勁的CS,軟體第8,資料庫第4,AI第9,三個專業都擠進了前10位,它的TINY系統有相當的知名度。
13. 加州大學洛杉磯分校(University of California-Los Angeles)
歷史上UCLA的CS曾經一度輝煌,上到過第6(NRC\' 82),但近年來一直徘徊在第13 —15。而且CS的各個專業細目幾乎沒有一個能進前10名。盡管如此,UCLA的CS還是十分強大的。
UCLA輝煌的歷史可能在於它對Internet的發展所作出的巨大貢獻。六十年代美國的
ARPA在搞網路互連的開創性研究,ARPA網的四個節點是:UCLA,Stanford的SRI,UCSB和 U. of Utah。此時一位來自美國新英格蘭地區的青年Vinton Cerf不去離家咫尺的Yale大學,遠涉千里,來到了加州。他先在Stanford獲得數學學士,然後到UCLA拿下了CS的碩士和博士。
畢業後Cerf一直在SRI從事ARPA網的研究,特別是研究如何讓它無法正常工作。幾年
後,Cerf與MIT一位到業界闖盪的數學教授Kyhn合作研發,搞出了一套軟體系統用於網路
互連(1973年)。這就是TCP/IP協議的誕生。
UCLA作為INTERNET的先驅,地處陽光燦爛的南加州,應當成為CS學生的樂土。
UCLA有學生33000人,其中研究生院的佔9900人。地處洛杉磯的UCLA周圍幾乎有玩不盡的地方:如DISNEY,HOLLYWOOD等。由於位於大城市,校園不是很大,但風景異常美麗。
UCLA的CS較大,規模應該和U. of Washington和U. of Wisconsin-Madison類似。
14. 密歇根大學(University of Michigan-Ann Arbor)
U. of Michigan 是個非常了不起的學校。在BIG TEN里,從綜合的角度上說它可算
得上是領頭羊了,當然UIUC, U. of Wisconsin-Madison也緊隨其後。這里的CS偏硬的更厲害些,硬體排在第9,而計算機工程排第7,EE第5,都是前10名中的巨牛。Michigan 的CS和EE合在一起稱為EECS系,是個相當大的系,每年招收的學生應當不在少數。
Michigan的CS估計在歷史上也相當牛,U. of Wisconsin-Madison CS里兩位來自Mi chigan 的教授都是院士,在其他CS系裡,比如UIUC的,也大有Michigan 的牛人在。如 前述,UIUC的CS在硬體上極強,而Michigan 的CS中有許多UIUC的哥們在那裡當老師。
15. 喬治亞理工學院(Georgia Institute of Technology)
GIT是個較大的學校,GIT的工程學院很厲害,研發經費僅次於MIT,和UIUC,Michi
gan差不多。CS系的資料庫第7,GUI第4。
16. 布朗大學(Brown University)
Brown的規模不大。這所IVY LEAGUE中的私立學校可能擁有一些類似於CORNELL的優勢。CS的GUI可以列在第6位,好像還有許多關於語音識別等偏人工智慧方面的研發項目

17. 哈佛大學(Harvard University)
在CS的早期發展史上,Harvard曾經是泰斗級的人物,畢竟CS和數學,物理的淵源太
深太長了。好像王安是這里出來的,Bill Gates也是這里出來的。Harvard畢竟是Harva rd,總是名人輩出,因為Harvard總是可以招到最優秀的人。但千萬別以為哈佛人人牛。Harvard不喜歡帶工程色彩的東西,CS是掛在Arts & Science學院下面的Division of E ngineering and Applied Science,好像連獨立的一個系都不是。除了理論可以排進前 10名以外,其他項目怕也拿不出多少貨色了。
哈佛大學共有學生18000人,其中研究生院的11000人。Harvard大學擁有世界上最多的諾貝爾獎得主,150多個美國國家科學院院士。哈佛的CS估計不會是大個子,招的學生可能也不多,申請的難度應當很大。
18. 耶魯大學(Yale University)
YALE曾經也進過前10名(NRC\' 82),是YALE和UCLA而不是Princeton和U. of Texa s-Austin位於前10名的榜上。YALE的CS不大,十幾個老師加上為數不多的學生,每年只招收六個博士研究生。
和Harvard這樣很重文理的學校一樣,YALE的CS在理論上比較強。但不同於哈佛,Y
ALE有獨立的CS系,受到較高的重視。YALE CS在AI和軟體方面比較強。著名的LINDA並行編程模式就是在這里提出並實現的。YALE 的畢業生到學術界的比到業界的似乎 要多, 哈佛似乎也是這樣。
19. 普渡大學(Pure University)
可能許多人還不知道,Pure的計算機系是美國最早成立的計算機系。建系之初一
直處於TOP 10。在70年代由於本人不甚了解的原因,沒落了。Pure的排名也不太穩定
,從13到30的排法似乎都見過。Pure是個大學校,有35000學生。其工程學院很出名 20. 萊斯大學(Rice University)
Rice是個位於休斯頓的小學校,4000名學生,研究生有1600左右吧。CS也不大,優
勢在於軟體,排在第9位。該系的KENNEDY是個巨牛的人物,是美國HPCC常委的關鍵人物
之一,好像還是總統在信息科學方面的特別顧問。KENNEDY是並行計算領域的大牛。前幾
年,他義無反顧地承擔起高性能FORTRAN語言(HPF)的編譯器研製工作,項目之大,投
入人力之巨,加上他的權威地位,被人們寄予普遍厚望。可惜後來項目失敗了。從此並
行計算界陷入了一陣低潮。這幾年KENNEDY好像轉向去做針對特定處理器的後端優化技術
了。Rice CS 學生的出路相當好。
參考資料:http://www.bb268.com

『肆』 美國那些大學的軟體專業很厲害

斯坦福,伯克利,麻省理工,卡內基*梅隆

Stanford(斯坦福)的CS是個很大的 CS,擁有40人以上的資深教員,其中不乏響當當硬梆梆的圖靈獎得主(Edward A .Feigenbaum , John McCarthy)和各個學科領域的大腕人物,比如理論方面的權威DonaldE.K nuth;資料庫方面的大牛Je ffre yD.Ullm an(他還寫過那本著名的編譯原理,此人出自Princeton);以及R ISC技術挑頭人之一的John Henn e ssy。相信 CS的同學對此並不陌生。該系每年畢業30多名Ph.D.以及更多的Master。學生的出路自然是如魚得水,無論學術界還是工業界,Stanford的學生倍受青睞。幾乎所有前十的 CS中都有Stanford的畢業生在充當教授。當然同樣享有如此地位的還包括其他三頭巨牛:UC .Berkeley, MIT和CMU。
畢業於U. of Utah的Jim Clark曾經在Stanford CS當教授。後來就是這個人創辦了高性能計算機和科學計算可視化方面巨牛的SGI公司。SUN公司名字的來歷是:Stanford University Network .。順便提一下,創辦YAHOO的華人楊致遠曾在斯坦福的 EE攻讀博士,後來中途輟學辦了YAHOO。

CS科研方面,斯坦福無論在理論、資料庫、軟體、硬體和AI等各個領域都是實力強勁的頂級高手。斯坦福的RISC技術後來成為SGI / MIPS的Rx000系列微處理器的核心技術;DASH,FLASH項目更是多處理器並行計算機研究的前沿;SU IF並行化編譯器成為國家資助的重點項目,在國際學術論文中SU IF編譯器的提及似乎也為某些平庸的論文平添幾分姿色。

Stanford有學生14000多,其中研究生7000多。 CS有175人攻讀博士,350人攻讀碩士,每年招的學生數不詳,估計少不了,但不要忘了,每年申請 CS的申請學生接近千人。申請費高達90$。

斯坦福大學位於信息世界的心臟地帶———矽谷。加州宜人的氣候,美麗的風景使得Stanford堪稱CS的天堂。33.1平方公里的校園面積怕是夠學子們翻江蹈海、叱吒風雲的了。

申請斯坦福是很難成功的,但也並非不可為之。去斯坦福這樣的牛校,運氣很重要,牛人的推薦也很重要。

附:總的來說,前20的 CS可以分成三波:

一、4個最為優秀的 CS Program � Stanford,UC. Berkeley, MIT, CMU

二、6個其他前十的:UIUC,Cornell,U.of Washington ,Prin ce ton,U. of Tex as-Austin和U. of Wisconsin -Madison,其中UIUC, C ornell,U. of Washington和UW -Madison幾乎從未出過前十名。

三、其他非常非常優秀的 CS:CalTech,U. of MarylandatCP, UCLA, Brown, Harvard,Yale, GIT, Pure, Rice,和U. of Michigan.

(註:CS=計算機科學系)

自20世紀40年代世界第一台現代計算機在美國誕生以來,美國一直執全球計算機學界之牛耳,這同時也是美國計算機產業界占據絕對優勢的重要原因之一。我們引進的教材中絕大多數也都來自美國。計算機學科仍然在高速發展,與此對應的計算機人才培養模式也在不斷變化,密切關注和跟蹤國外尤其是美國名校的教學新動態,應該是非常有意義的。
本文即選擇了美國計算機學科最負盛名的五所高校,對目前各校計算機科學(Computer Science)專業的本科教學體系進行了一些分析。

斯坦福大學
斯坦福大學擁有獨立的計算機科學系。瀏覽該校的教學手冊,最具特色的恐怕要算多門科普性計算機知識講座了,一般有兩到三個單元,涉及面非常之廣,從量子計算到數字演員,從計算科學的偉大思想到網路安全,從網上拍賣到使用元編譯發現大型開放源代碼軟體中的大量錯誤,其中還不乏對技術烏托邦、斯諾「兩種文化」、計算機面臨的困境以及迅速發展所帶來的諸多問題的思考。開課的老師陣容強大,基本上都是響當當的名教授,甚至包括圖靈獎得主John McCarthy。用這種講座代替計算機科學導論性質的專門課程,可以充分展示計算機科學的豐富內涵,使學生較早地了解學科的輪廓和脈絡,對於開闊學生視野,啟發學生的學習興趣也大有好處。由於美國大學中專業的選擇非常靈活,而近年來計算機學科招生受行業影響流失嚴重(這種情況甚至驚動了比爾·蓋茨,今年微軟到各大高校招兵買馬時,他每站必到,利用自己的明星效應,大講計算機學科的美妙前景),可以想像,這種講座同樣也肩負著吸引學生選擇計算機專業的重大使命。
斯坦福大學典型的低年級課程設置如表1所示。
表1 斯坦福大學低年級主要課程設置
數學(至少23個單元)
數學 41(課程號,下同) 微積分 I 5
數學 42 微積分 II 5
統計 116 概率論 3~5
計算機 103 離散結構 4或6
以下任選兩門:
數學 51 微積分 5
數學 103/113 線性代數 3
數學 109 應用群論 3
計算機 157 邏輯和自動推理 4
計算機 205 機器人、視覺和圖形學數學方法 3
科學(至少11個單元)
物理 53 力學 4
物理 55 電磁學 4
其他
工程基礎(至少13個單元)
計算機 106 程序設計抽象/方法學 5
工程 40 電子學基礎 5
選修課
技術與社會(3~5個單元)

進一步的課程設置如表2所示。
表2 斯坦福大學高年級主要課程設置
程序設計(2門課)
計算機 107(課程號,下同) 程序設計范型 5
計算機 108 面向對象系統設計 4
理論(2門課)
計算機 154 自動機與復雜性理論 4
計算機 161 演算法的設計與分析 4
系統(3門課)
電子電氣 108B或282 數字系統或計算機體系結構 4
計算機 編譯原理 3
計算機 計算機網路 3
計算機 操作系統 3
應用(選2門課)
計算機 人工智慧 3~4
計算機 資料庫 3
計算機 圖形學 3
項目(1門課)
計算機 至少3個單元
限選課(多門)
加州大學伯克利分校
伯克利的課程設置也有很多獨樹一幟的地方,尤其是在專業基礎課方面,除了有專業導引課程「計算機科學專題」之外,對於沒有編程經驗的學生,第一門編程課是符號編程入門,採用LISP語言。有一定編程經驗或者有自學能力的學生,可以選擇多種語言和環境的自主學習(Self-paced)課程,包括C、Fortran、C++、Java,以及UNIX的使用等,這種多元化與伯克利計算機科學與電子電氣工程同系有關。但是所有學生在第二學期都要學習一組獨特的基礎課:61A「計算機程序的結構與解釋」,採用MIT Abelson等編著的同名教材(中譯本機械工業出版社出版,清華大學出版社出版了影印版);61B「數據結構」(教材採用自編講義);61C「計算機結構」(Machine Structures),採用Hennessy的《計算機組織與設計》(中譯本清華大學出版社出版,機械工業出版社出版了影印版)。這項規定就是轉校生也不例外,可見其中蘊涵了伯克利多年的教學經驗結晶。
伯克利其他比較有特點的課程還有:將離散數學和概率論結合講授的CS70,主講是名教授Christos Papadimitriou;CS98-1 編程練習課,以主要大學生編程競賽中的賽題為授課素材;CS 169 軟體工程直接用Kent Beck的《極限編程》(人民郵電出版社出版了中譯本)作為教材,非常超前,但是既然連Pressman的《軟體工程:實踐者方法》新版中敏捷方法都已經成為重頭戲,既然IEEE都已經開始制定敏捷方法相關標准,這種課程選材也就不顯得那麼駭世驚俗了。除了軟體工程課程常見內容外,教學側重實際,貫穿了極限編程的思想,涵蓋UML、JUnit單元測試、軟體架構、設計模式和反模式、重構、CVS版本控制、系統和集成測試,最後要求完成一個實際產品,並進行演示。
UIUC(伊利諾依大學厄巴尼-香檳分校)
UIUC的計算機科學專業創建於1972年,到1986年基本定型,十多年來幾乎沒有什麼變化。其教學體系如圖1所示。
圖1 UIUC改革前的計算機科學課程體系
其中,數值分析方向課程中,Math225為矩陣論,CS257為數值方法,CS35x代表數值分析導論、常微分數值方法、偏微分與數值逼近和數值線性代數;
理論方向課程中,CS173為離散結構,CS273為計算理論,CS37x包括演算法、形式方法、程序驗證;
人工智慧方向課程中,CS348為人工智慧導論,CS34x包括機器人、機器學習與模式識別;
軟體方向,CS125為計算機科學導論,CS225為數據結構與軟體工程原理,CS31x包括資料庫、圖形學、多媒體,CS32x包括軟體工程、操作系統設計、分布式系統、編程語言與編譯器、並行計算、實時系統、編譯器構造、編程語言設計;
硬體方向課程中,CS231為計算機體系結構I,CS232為計算機體系結構II,CS33x包括計算機組成、VLSI系統與邏輯設計、VLSI系統設計、通信網路、嵌入式體系架構與軟體。
可以看到,處在圖1中最下面的課程基本上都是在多門中選擇一至三門,整個體系脈絡清晰,具有很高的靈活性。與斯坦福不同的是,UIUC的計算機科學導論課程比較簡單,只有一門為新生開的計算機科學導向課(CS100),而且並非必修。名為「計算機科學導論」的CS125實際上是以Java語言為主的編程入門課,涵蓋了一些演算法的內容。此外還有與之配套的實驗課。當然,系裡所開的許多面向高年級和研究生層次的講座是對低年級開放的。
2003年,在工程院院長David Daniel的倡導下,計算機系對教學計劃進行了改革,以反映目前社會、行業和技術的發展趨勢。主要的變化有:
* 在必修要求中增加了兩門編程課:CS241 系統編程,採用Gary Nutt的《操作系統》作為主教材,Stevens的《Unix環境高級編程》作為編程教材;CS242 程序設計實驗(Programming Studio),教學大綱基本上以Kernighan的《程序設計實踐》為藍本(以上教材機械工業出版社均出版了中譯本和影印版)。
* 必修要求中增加了一年的高級項目,強調團隊合作和軟體工程實踐,包括文檔寫作、口頭表達、項目規劃與管理等,實際上是在實踐中學習軟體工程。這門課也可以用兩學期的軟體工程或者一年的高級論文代替。仍然充分保留了靈活性,有利於因材施教。
* 增加了CS173 離散結構的學時,部分原CS273的內容移到這里,同時CS273又新增了原CS375的內容。這實際上是提高了對計算機理論的要求。

CMU(卡內基梅隆大學)
與MIT、伯克利等學校計算機科學仍然和電子與電氣工程同處一系不同,CMU的計算機科學系成立於1965年,是全美最早的,如今它已經升格為計算機科學學院。其研究生項目中除了機器人方向與硬體關系較多之外,其他基本上都是純軟的。從這個意義上來說,CMU的教學體系對於偏軟的計算機科學系應該有較大的借鑒意義。
CMU的教學手冊上沒有從傳統意義上針對計算機科學專業學生的導論課,雖然有名為「計算機科學偉大思想」的兩學期課程,但是從內容上看應該是離散數學的替代,因為此外CMU並沒有其他離散數學方面的課程。此課程沒有教材,內容比傳統離散數學要靈活得多,涉及概率、代數、演算法、加密理論、復雜性理論、博弈論等,非常注重學習的趣味性和實用性。
與其他名校相同,CMU對程序設計的重視也給人留下很深印象:本土新生的第一堂課就是「初中級程序設計」,直接講授Java。然後是中高級程序設計(Java)、C語言編程技巧、高級編程實踐(Java)、程序設計原理(用SML語言講授)。
目前計算機科學專業教學計劃中的一個難點,是硬體課程的設置問題。硬體知識體系本身非常豐富,但是硬體課程多了,又削弱了計算機科學專業的特色。CMU在這一問題上是怎樣處理的呢?計算機科學學院的現任院長Randal E. Bryant 親自給出了回答,他用15~213「計算機系統導論」一門課(12個單元)完成了硬體知識的教學。這項教學改革的成果就是一本厚達900多頁的書:《Computer Systems: A Programmer's Perspective》(中譯本《深入理解計算機系統》已經由中國電力出版社出版)一書。他在該書的序言中說:
「本課程的宗旨是用一種不同的方式向學生介紹計算機。因為,我們的學生中幾乎沒有人有機會構造計算機系統。而大多數學生,甚至是計算機工程師,也要求能日常使用計算機和編寫計算機程序。所以我們決定從程序員的角度來講解系統,並採用這樣的過濾方法:我們只討論那些影響用戶級C程序的性能、正確性或實用性的主題。
比如,我們排除了諸如硬體加法器和匯流排設計這樣的主題。雖然我們談及了機器語言,但是不關注如何編寫匯編語言,而是關心編譯器怎樣翻譯C的各種構造,比如指針、循環、過程調用和返回,以及switch語句。更進一步,我們將更廣泛和現實地看待系統,包括硬體和系統軟體,討論鏈接、載入、進程、信號、性能優化、評估、I/O以及網路與並發編程。
這種做法使得我們講授本課程的方式對學生來講既實用、具體,又能實踐,同時也非常利於調動學生的積極性。」
網站上的一些隨書配套實驗,也獨具匠心。因此此書的成功是水到渠成的。根據配套網站上的列表,它已經被全球80多所院校採用作為教材。MIT(麻省理工學院)
MIT的課程設置,只能用其學生起點高來解釋。該校沒有典型意義上的計算機科學專業,偏軟的只有理論計算機科學和人工智慧及其應用兩個專業。因此沒有類似於其他學校的導論課程。
在MIT的電子電氣工程與計算機科學系中,所有學生都要參加如下四門課程:6.001「計算機程序的結構與解釋」,當然與伯克利相同,採用的是Abelson等編著的同名教材;6.002「電路與電子學」;6.003「信號與系統」(自編講義);6.004 「計算結構」(Computation Structures),與伯克利的61C「計算機結構」對等(教材是自編課件)。此外有兩門專業基礎數學課:「概率系統分析」(教授自編教材)和「計算機科學數學」,後者的教材是國外院校普遍採用的Rosen所著《離散數學及其應用》(中文版由機械工業出版社出版)。
對MIT的學生而言,實驗課程有多種選擇:電氣工程和計算機科學實驗,模擬電子實驗,數字系統實驗,微機項目實驗,半導體設備項目實驗。此外,無論何種專業,都有軟體工程實驗課。值得注意的是,本科生各專業的必修課程中並沒有軟體工程課程。也就是說,軟體工程的內容都在實踐中完成了。帶軟體工程實驗課的是因為提出Liskov替換原則而知名的女教授Barbara Liskov,她剛剛獲得了2004年度的馮·諾依曼獎。作為美國工程院和藝術科學院的雙院士,她幾十年在軟體開發研究方面的經驗,將有力地保證這門實驗課程的質量。

『伍』 美國四十名左右的大學,計算機專業值得去嗎

CS——Computer Science的簡稱,即計算機科學。 總的來說,計算機專業前20名的學校可分成三類:A.4個最為優秀的CS
Program:Stanford,MIT,U.C.Berkeley,CMU。B.6個其他前10名的:UIUC,Cornell,U.Washington,Princeton,U.Wisconsin-
Madison和 U.Texas-Austin。其中UIUC,Cornell,U.Washington和
U.Wisconsin-Madison幾乎從未出過前10名。 C.其他非常非常優秀的CS:CalTech,U.Maryland-College
Park,UCLA,U.Michigan, GIT,Brown,Harvard,Yale,Pure和 Rice。 1. 斯坦福大學(Stanford
University) Stanford的CS是個很大個的CS,擁有40人以上的Faculty成員,其中不乏響當當、硬梆梆的圖靈獎得主(Edward
A.Feigenbaum, John McCarthy)和各個學科領域的大腕人物,比如理論方面的權威Donald E. Knuth;資料庫方面的Jeffrey
D. Ullman(他還寫過那本著名的編譯原理,此人出自Princeton);以及RISC技術挑頭人之一的John
Hennessy。相信CS的同學對此並不陌生。該系每年畢業30多名Ph.D.以及更多的Master。學生的出路自然是如魚得水,無論學術界還是工業界,Stanford的學生都倍受青睞。幾乎所有前10
名的CS學校中都有Stanford的畢業生充當教授。 畢業於U. of Utah的Jim Clark曾經在Stanford
CS當教授。後來就是這個人創辦了高性能計算機和科學計算可視化方面巨牛的SGI公司。SUN公司名字的來歷是Stanford University
Network。順便提一下,創辦 YAHOO的華人楊致遠曾在斯坦福的EE攻讀博士,後來中途輟學辦了YAHOO。
CS科研方面,斯坦福在理論、資料庫、軟體、硬體、AI等領域都是實力強勁的頂級高手。斯坦福的RISC技術後來成為SGI/MIPS的Rx000系列微處理器的核心技術;DASH,FLASH項目更是多處理器並行計算機研究的前沿;SUIF並行化編譯器成為國家資助的重點項目,在國際學術論文中SUIF編譯器的提及似乎能為某些平庸的論文平添幾分姿色。
Stanford有學生14000多,其中研究生7000多;CS有175人攻讀博士,350人攻讀碩士。每年招收的學生數不詳,估計少不了。但不要忘了,每年申請Stanford
CS的學生接近千人。申請費高達$80。
斯坦福大學位於信息世界的心臟地帶——矽谷。加州宜人的氣候,美麗的風景使得Stanford堪稱CS的天堂。33.1平方公里的校園面積怕是夠學子們翻江倒海,叱吒風雲的了。
2. 麻省理工學院(Massachusetts Inst. of Technology)
MIT招生好像不看GRE成績。MIT的CS是巨牛的,99年最新排名上它和斯坦福同被打了5.0的滿分,兩者並列第一。MIT的CS曾為CS的發展作出不可磨滅的貢獻,數據流計算的思想和數據流計算機、人工智慧方面的許多重大成就,影響了整個UNIX界的X-Window……
MIT 和 Stanford一樣,幾乎都是在CS界樣樣巨牛的學校。據某位大俠提供的資料:MIT的 Media Arts and
Sciences知名度不在Computer Department之下。主要是多媒體技術,信息處理,人工智慧等。有一大批著名的教授,如Marvin
Minsky(圖靈獎獲得者)。 3. 加州大學伯克利分校(University of California-Berkeley)
同樣地處舊金山灣畔,矽谷地帶,離Stanford大約只有50公里的UC.
Berkeley是美國最激進的學校之一。60年代的嬉皮文化,反越戰,東方神秘主義,回歸自然文化都起源於此。詩人愛倫金斯堡是當年UC. Berkeley的代言人。
在當今高科技領域UC.
Berkeley在締造新的神話,在文學、數學、化學、新聞等20多個大的學科領域位居前3名。16個諾貝爾獎得主,總數近200的科學院院士、工程院院士,連同眾多在矽谷商戰中成為億萬富翁的伯克利人撐起了一面匯集天下英才的大旗。INTEL總裁Andrew
Grove,就是畢業於UC. Berkeley。
BSD版的UNIX影響了整個CS界,伯克利的RISC技術後來成為了SUN公司SPARC微處理器的核心技術,David
Patterson接下了一個6億美元的項目用於新型計算機體系結構,特別是IRAM的研究開發。 UC.
Berkeley有學生30000多,研究生超過8500人。申請費和加州大學的其他分校一樣,$40。據一項最近的調查,伯克利已經成為美國大學生最嚮往的研究生院,高居榜首,其申請的難度可想而知。
UC. Berkeley的CS是個大系,Faculty中有圖靈獎得主以及像Patterson這樣的巨牛。CS科研方面,UC. Berkeley也是樣樣強。
舊金山湛藍起伏的海灣,蒼翠綿延的山巒,舒心宜人的氣候,以及近在咫尺的矽谷…… 這一切的一切不也使得UC. Berkeley儼然一個CS學子的世外桃源嗎? 4.
卡耐基梅隆大學(Carnegie Mellon University)
CMU是個位於匹茲堡的不大的學校,學生7000多,校園好像也不大。但這個學校在工程及其他一些領域卻是頂尖的學堂。CMU的CS不是一個系,而是一個學院,其規模之大,可能只有Stanford,UIUC可與之相比。Mach操作系統,PVM,C.mmp等都有CMU的巨大貢獻。
申請CMU的難度很大,因為盡管CMU的CS Faculty很多,但每年只招收不足30人的研究生隊伍。 5. 伊利諾斯大學(Univ. of
Illinois-Urbana-Champaign)
UIUC的工程學院在全美是至尊級的,其CS,ECE,EE在歷史上都屢建戰功。在CS方面,從早期的超級計算機ILLIAC
I,II,III,IV到後來的CEDAR,都是CS發展史上,特別是並行計算機發展史上的重要事件,影響和引導了CS很長時期的發展。David
Kuck曾是並行計算機處理界的一代先驅。
超級計算機研究開發中心(CSRD),美國國家超級計算及應用中心(NCSA)等眾多的機構,使得UIUC的CS常常成為研發的領頭雁。
大家可能還記得,Netscape-Navigator的最初開發人員中有個Marc Anderssen。這位來自Wisconsin
的小夥子在UIUC讀本科,大四的時候在NCSA參與編寫了MOSAIC;後來他去了矽谷,並在那裡遇到了前面提到過的Jim
Clark,SGI的前創始人,兩人一見如故,聯手創辦了著名的網景Netscape,並一度在瀏覽器市場上獨霸武林。 還有Lotus Notes,
遠程登錄程序NCSA Telnet, 郵件程序Eudora等的作者,都是UIUC的畢業生。商務軟體巨人Siebel Systems的創始人Tom
Siebel,也是畢業於UIUC的。 UIUC是個大學校,學生總數超過35000,研究生院近萬人。
UIUC的CS很大,40餘個Faculty提供了全面的CS教育和科研項目。每年30多個博士的畢業數目似乎只有Stanford可以匹敵。
UIUC的Polaris並行化編譯器是這個領域能和Stanford的SUIF直接叫板的拳頭產品,清華開發並行編程環境時選用了這個系統。
UIUC在計算機硬體、軟體、AI、DB等領域都相當強大。特別是硬體,如前面提到的ILLIAC,CEDAR等。
事實上,UIUC在超級計算機系統的研究開發方面絕不遜於MIT、Stanford等任何一個,甚至有過之而無不及。NCSA建立在UIUC這一事實本身就是佐證。UIUC
CS的學生畢業後去學術界的不少,Stanford,UC. Berkeley等CS名校都有UIUC的博士挑大樑。但更多UIUC
CS學人還是進入業界,成為業界實乾的中堅。

『陸』 請問美國的大學在計算機專業上水平較高的大學有哪些

美國計算機專業的大學有很多例如:(信息來源美國大學院校庫https://www.liuxue315.cn/university/?page=1&country=USA?ozs=zj-lx)
卡內基梅隆大學Carnegie Mellon University、斯坦福大學Stanford University、加州大學伯克利分校UC -Berkeley、康奈爾大學Cornell University、伊利諾伊大學香檳分校UIUC、華盛頓大學University of Washington、普林斯頓大學Princeton University、德克薩斯大學奧斯汀分校UT-Austin、喬治亞理工學院學校Georgia Tech、加州理工學院CIT、威斯康星大學麥迪遜分校Univ of Wisconsin、密西根大學安娜堡分校UM- Ann Arbor、加州大學洛杉磯分校UC -Los Angeles、加利福尼亞大學聖地亞哥分校UC- San Diego、馬里蘭大學帕克分校UM-Park-College Park、哥倫比亞大學Columbia University、哈佛大學Harvard University、賓夕法尼亞大學University of Pennsylvania布朗大學Brown University、普渡大學西拉法葉校區Pu U-West Lafayette、萊斯大學Rice University等等。
如果想了解自己的成績可以申請到那些美國大學的計算機專業,可以通過留學志願參考系統https://www.liuxue315.cn/dingwei/?ozs=w-hf把你的GPA、語言成績、專業、院校背景信息輸入到留學志願參考系統中,系統會自動從資料庫中匹配出與你情況相似的同學案例,看看他們成功申請了哪些院校和專業,這樣子就可以看到你目前的條件能申請到國外什麼層次的院校和專業了

『柒』 推薦一本編譯原理的書嘛,最好是國外名校的教材,謝謝

我正在看的有一本叫compilers Principles,Techniques,& Tools ,這本書是斯坦福大學和麻省理工的教材,我感覺挺好的,講的挺詳細,當然現在已經有了中文版,是機械工業出版的。

『捌』 斯坦福大學編譯原理課程質量怎麼樣

聽著這學校都覺得不錯,何況是原理課程質量呀,比較專業性,方法又是有順序,基礎學起來比較強烈,針對以後的發展來相對學習的。

『玖』 怎樣去寫一個編譯器(用C語言寫C語言編譯器),需要哪些知識做鋪墊,可以給一下相關網站和書籍的推薦嗎

寫編譯器重點就是設計並實現一些數據結構和演算法,語言特點太多的話,代碼寫起來不容易,建議你找一個小語言嘗試下,不要一開始就去嘗試成熟語言。否則你會在寫完語法分析程序以後,遭遇到很大的困難。多數人都是在寫語義分析程序的時候,突然發現自己設計的數據結構很爛,後邊越寫越要命。
如果你想入門編譯器的話,那麼可以看《編譯原理與實踐》,整本書先將編譯器理論,然後後邊教你一步步實現c-miuns(c的子集)的編譯器,包括lex,yacc,都在幾千行代碼左右。這本書講的比較簡單易懂一點
也可以學學斯坦福大學的編譯器設計公開課(aiken設計了一個叫cool的語言,專門用來教人寫編譯器),課程地址上面有人給了:Compilers。這門課以前有個實驗環境(據說已經給了,我以前寫的時候還是用的網上一個不完整的實驗環境),把和編譯器知識無關的內容都給你寫好了,你只需要在固定的地方填上你的內容就可以寫出你的編譯器(不要覺得很簡單哦,人家的代碼寫的很精巧的,讀完就發現寫個好編譯器還是很費腦子的),另外,這個實驗環境有個特點,就是在每一步都提供標准程序做對比,你可以在寫完一部分以後就同標准程序對比,及時發現錯誤。這種方式為寫編譯器又提供了很多幫助
先找個小的,慢慢研究,弄懂了整體的結構再說

閱讀全文

與斯坦福編譯原理及講解相關的資料

熱點內容
用什麼工具製作安卓應用 瀏覽:484
單片機數碼管的代碼 瀏覽:775
第一款安卓手機是什麼牌子 瀏覽:394
java非同步web 瀏覽:270
51單片機讀tf卡 瀏覽:936
linux下獲取文件 瀏覽:318
加密文件電腦顯示無屏幕截取許可權 瀏覽:352
虛榮安卓用什麼充值 瀏覽:750
阿里雲沒有伺服器如何備案 瀏覽:706
python用戶特性總結 瀏覽:730
華為門鑰匙加密卡怎麼辦 瀏覽:921
南京解壓車要帶什麼 瀏覽:567
天堂2編譯視頻教程 瀏覽:397
伺服器沒有進程怎麼辦 瀏覽:789
阿里雲發布新物種神龍雲伺服器 瀏覽:64
數據結構遞歸演算法統計二叉樹節點 瀏覽:672
ev3怎麼編程 瀏覽:706
gzip壓縮教程 瀏覽:353
解壓模擬例子 瀏覽:989
流媒體伺服器如何實現視頻轉發 瀏覽:62