當前位置:首頁 » 編程軟體 » 斯坦福編譯原理筆記

斯坦福編譯原理筆記

發布時間: 2022-10-30 01:42:05

編譯原理里什麼是三地址碼

指令是由操作碼和地址碼兩部分組成.
有些指令要有3個操作數,也就是3個地址碼--三地址碼。

3地址指令:
OP A1 A2 A3

❷ 我讀《斯坦福大學人生設計課》

最近在看《斯坦福大學人生設計課》這本書,書名聽著挺雞湯的哈哈。先說說我自己為什麼會買這本書來讀吧。其實從去年年底開始,我就對自己的職業選擇感到了困惑。一是團隊的調整,讓我感到些許的不適應;二是自己一直在反思自己究竟想做的是什麼。我的工作逐漸變得瑣碎,修理各種bug,沒有了當時接到需求,理解需求,開發需求這一套流程中收獲的成就感,每天的工作變成了煎熬,感覺每天都在浪費寶貴的時間。所以,我深刻的覺得,現在的工作不是我想要的,我需要嘗試些別的了。

秉著「迷茫的時候多看書」的信念,我在京東上下了訂單。我覺得這本書沒讓我失望,我確實找到了一些答案。

我不想像大多數的讀書筆記那樣,概括整本書的框架,告訴你們這本書從第一章到最後一章都寫了啥,然後告訴你們一定要去讀呀之類的。我只想分享一些我覺得值得分享的、有趣的內容給大家,談一談我讀完之後的感悟。

作者給書起名為「人生設計課」,意思是想讓人們以設計思維來設計人生,看待人生。什麼是設計思維呢?設計思維和工程思維不同,「 專注初心,找到最適合自己的選擇,做出決定並且把事情做成 」就是以工程思維看待問題,而設計思維看待問題的方式則是「 重新定義問題,找到盡可能多的選擇,選擇一個進行快速嘗試,直到成功 」。

書中舉了兩個例子來解釋什麼是工程問題,什麼是設計問題。工程問題的例子是「為早期的蘋果筆記本設計鉸鏈(即屏幕和鍵盤連接的轉軸)」,這里的目標是明確,就是要創造出一種連續使用5年的鉸鏈,通過多種不同的實驗,最終可以實現目標。而設計問題的例子是「早期的蘋果筆記本必須要連接滑鼠才能使用,非常麻煩」,這很顯然沒有先例可以借鑒,也沒有一個明確的目標。但是有一位工程師創造性的提出,將筆記本的鍵盤縮小,留出足夠的空間安裝一個軌跡球的裝置,以此作為「內置滑鼠」。於是連接滑鼠的問題得到了突破性的解決,這個設計也成為蘋果筆記本標志性外觀設計的一部分。

這段內容是我感受最深的,其實人生的職業選擇用什麼思維看待,這背後的終極問題是:你希望自己的人生是一個工業品,還是一個藝術品?是一個項目還是一次創造?

我在這里找到了第一個答案。

書中還有一個令我感觸很深的案例,講的是一名社會學教授,在社會創新和社會創業方面開設了一門課程,反響很好,於是想進一步做些工作,為學校帶來持久的影響力,於是她夢想建立一個全新的社會創新學院。

創建學院的首要任務肯定是籌集資金,她需要1500萬美元,於是她嘗試了各種方法,但是1500萬沒有的數目實在是太大了。她陷入了困境。

之後,在設計思維的指導下,教授意識到創建學院並非將社會創新這門課程影響力擴大的唯一途徑,仍然存在很多其他的手段和方法,她做了很多的問卷調查,收集了很多的點子,這些點子後來被證實也都很不錯。誠然,創建一個新的學院跟令人振奮,影響可能也更深遠,但是其他的點子更加現實,也會有更多的支持。

我為什麼很喜歡這個例子呢?因為我覺得我自己選擇前端工程師,也是一個 「錨」 問題。為什麼這么說?我在讀研期間負責了一個項目的全棧開發,接觸到了前端。並且在有一次為女朋友准備生日禮物時,我為她製作了一個網站,讓她很開心。這讓我覺得,做網站開發也許是個不錯的職業,我能創造出讓別人喜愛的網站,於是我就選擇了前端開發這條路。

但其實回過頭來看看這個問題,其實為女朋友准備生日禮物並不一定是製作一個令她感動的網站,也可以是別的,只要是用心准備的,相信她都會很開心。而完成一個這樣的網站,更像是一個產品經理的乾的活,我有一個很好的創意,然後我實現了它(當時的實現還是用 jQuery,過程真折磨人),交到了用戶(女朋友)手上,她對這個產品也很滿意,我收獲了不錯了評價。That's all。

我也沒有在選擇職業之前仔細的去調研過前端工程師每天具體的工作是怎樣的?自己是否會喜歡?沒有認真思考過一些問題,就草率的上了車。僅僅因為我學的是計算機專業,所以我得去做一個程序員,確實沒什麼道理。

我承認,這與我之前的想法也有很大的關系,我之前總覺得,工作就是工作嘛,沒有樂趣也很正常,只要給家裡帶來 money 就行,所以它才被稱為 「工作」 。但直到最近和女朋友的一次談話,我才意識到,我需要有自己事業上目標才行,也才促使我開始認真反思,自己究竟喜歡做什麼、適合做什麼、擅長做什麼。

在書中,作者還要求你寫出未來5年的三個版本的人生計劃,並將其稱之為 「奧德賽計劃」 。

你可能實在想不出三個版本的人生計劃,作者也很善良的提供了幫助:

第一種選擇——你已經在做的事。

第二種選擇——如果你突然無法從事正在做的工作(第一種選擇),那麼第二種選擇就是你想要做的事。

第三種選擇——在不考慮金錢和形象的前提下,你想做的事情或你想過的生活。

真巧,作者說的第三種選擇給出的問題,正是我經常思考的問題。我自己給出的三種選擇是這樣的:

不用評判這些人生計劃,不用比較每種計劃的得失,這只是一份作者要求我們寫的計劃,僅此而已。

最後,希望自己不要成為聰明的現代人俱樂部中的一員——聰明的現代人總是視圖做正確的事情,並且期望 「立刻」 得到正確答案。

❸ 《Compilers Principles》txt下載在線閱讀全文,求百度網盤雲資源

《Compilers Principles編譯原理》(Alfred V. Aho)電子書網盤下載免費在線閱讀

鏈接: https://pan..com/s/1uTWbyl7EEuUO1EgQpbxOkg

提取碼: by1p

書名:Compilers Principles編譯原理

作者:Alfred V. Aho

豆瓣評分:9.2

出版社:機械工業出版社

出版年份:2011-1

頁數:1009

內容簡介:

本書是編譯領域無可替代的經典著作,被廣大計算機專業人士譽為「龍書」。本書上一版自1986年出版以來,被世界各地的著名高等院校和研究機構(包括美國哥倫比亞大學、斯坦福大學、哈佛大學、普林斯頓大學、貝爾實驗室)作為本科生和研究生的編譯原理課程的教材。該書對我國高等計算機教育領域也產生了重大影響。 第2版對每一章都進行了全面的修訂,以反映自上一版出版20多年來軟體工程。程序設計語言和計算機體系結構方面的發展對編譯技術的影響。本書全面介紹了編譯器的設計,並強調編譯技術在軟體設計和開發中的廣泛應用。每章中都包含大量的習題和豐富的參考文獻。 本書適合作為高等院校計算機專業本科生和研究生的編譯原理與技術課程的教材,也可供廣大計算機技術人員參考。

作者簡介:

Alfred V.Aho,美國歌倫比亞大學教授,美國國家工程院院士,ACM和IEEE會士,曾獲得IEEE的馮·諾伊曼獎。著有多部演算法、數據結構、編譯器、資料庫系統及計算機科學基礎方面的著作。

Monica S.Lam,斯坦福大學計算機科學系教授,曾任Tensilica的首席科學家,也是Moka5的首任CEO。曾經主持SUIF項目,該項目產生了最流行的研究用編譯器之一。

Ravi Sethi,Avaya實驗室總裁,曾任貝爾實驗室高級副總裁和Lucent Technologies通信軟體的CTO。他曾在賓夕法尼亞州立大學,亞利桑那州立大學和普林斯頓大學任教,是ACM會士。

Jefirey D.Ullman斯坦福大學計算機科學系教授和Gradiance CEO。他的研究興趣包括資料庫理論、資料庫集成、數據挖掘和利用信息基礎設施教學等。他是美國國家工程學院院士、IEEE會士,獲得過ACM的Karlstrom傑出教育獎和Knuth獎。

❹ 斯坦福大學人生設計課(讀書筆記)

設計思維和傳統的規劃思維有什麼不同?

「不要堅持初心,而是重新定義問題。」

(書中作者一直以為自己的初是當物理學家,但是其實分析後,他發現他實是喜歡與人分享有趣的理念,而物理只是一個渠道,其實還有非常多的渠道。)

**正如福特說的,如果你問沒有發明汽車前的大眾,你想要什麼,他會說我想要一匹會飛得快的馬!(名詞)

如果你在問那你想要做些什麼呢?他們的回答是更快的抵達。(動詞)

**在人生設計課堂里,他會問你小時候有什麼樣的目標,這個問題被重新定義為你在什麼時候最快樂最有能量。

【當初心從名詞轉換成動詞的時候,我們就能找到自己真正關切的東西。】

-人生設計課的導師們認為,在一個快速變化的世界今天受歡迎的10種工作,有六種在10年前甚至都不存在。如果你用一個基於過去想像的出行,必須要用人生設計的思維,重新定義才不至於在人生中做出刻舟求劍的行為。

*什麼時候最投入、最有能量、最快樂呢?

—他不是找到最適合自己的方向,而是你擁有很多個選擇。但要認清每個選擇都有缺陷。

所以所謂的最適合他本身就是一個坑。最是極端詞,而是合適動詞。適合會,隨著我們不斷地成長做了一件又一件的事情,我們的能力還有資源會不斷地儲備升級,所以這個答案會一天一天的不斷變化,永遠也定不下來。

-人生設計的思路是:

每個人都有許多適合自己的生活方式。方法要逼自己進行頭腦,風暴,想出至少四個選擇,不管這靠不靠普。因為一個好的點子來自於很多點子!真正好的人生狀態是發現了很多適合自己的選擇,而且決定從某個選擇開始「試試看。在還沒找到,最終目標時,」邊走邊看低成本試錯「

在頭腦盤算的人生,不是真實的人生。因為沒有真的推進去,根本不知道自己會遇到什麼困難。

探索本身就是一件快樂有趣的事,而且在嘗試中學到的東西也會迭代到未來的選項中。

「人生設計:重新定義問題,找到盡可能多的選擇,並且選擇去做,直到成功。」

終極問題是你希望你自己的人生是工業品還是藝術品?是一個項目規劃還是一個創造。

-古典-

(02-讀書筆記)斯坦福大學人生設計課

有時不管我們再怎麼努力可能都無法獲得你想要的。要麼就轉換個視角思考這些經歷為你帶來另一個層面的價值。要不然就「接受了現實」,擁抱美好的生活。

平衡好工作和生活,也可以找到更有興趣的事情去做,放棄對權力的追逐,在另外一個方向創造新的價值。

也許你不會獲得你原來想要的。但是你可能會獲得新的可能。

**人生設計評估:

You are here! 意味著設計思維中的接受階段,也就是設計人生的起點。就是當下所處的真實位置。

*當接受了現實之後,我們要把生活分成健康,工作娛樂和愛。在這四個領域,每個人都需要進行調整或重塑,然後找出需要設計的領域進行方法的探索,用「覺知和好奇心」這兩種設計思維。

「你最近怎麼樣?用這句話來去評估這四個面向。」

-健康:良好的思維,身體和精神狀態。

-工作:參予人類在地球上不間斷的偉大探險活動。無論有沒有得到報酬。家庭主婦,包括養兒,育女。

-娛樂:就是為了快樂。是一種活動單純的追求快樂。不是追求價值。

-愛:關注愛的不同定義。愛的多種形式在生命中,愛流向何方,愛與被愛同樣重要是雙向的。

@思維誤區:我應該已經知道自己的目的地了。

@重新定義:只有你了解了,自己現在的位置,你才能知道如何到達目的地。

**在儀表盤上平衡雖然重要,也要問問這個問題是否可操作。這個平衡不要想像會出現完美的均衡。也不可能出現絕對的平均分配。

了解這四個方面是否存在要解決的問題。

「重力問題。」-無法付諸行動,無法解決的問題會讓你無能為力。

(03)史丹福大學人生設計課。

第二章創建人生指南針

我們總是在為生活焦慮分析生活或對未來進行推測,但是這些並不是最好的發現工具,他會讓我們莫名的產生失落及困惑,浪費時間。你會感到生活像是一個巨大的DIY項目。只有少數人能獲得指南手冊。

第二部 創建你的指南針。(寫下)

-問問自己是在過著自己的人生,還是在復制別人模板的人生。

1.工作觀:工作的目的和原因。

2.人生觀:是什麼賦予了,人生的意義,是什麼讓你的生活充滿了價值。哪些方面展現的這些,他們有多重要?

-花30分鍾的時間去寫下約250個字

-工作應該解決什麼問題,我可以從工作中得到什麼?  好工作定義…P60.

-人生需要解決的問題,-人生最重要的事.P62

*—擁有更多心流體驗(全身心投入的狀態。)

-完全投入會有極度興奮或狂喜的感覺,內心清明,知道做什麼以及如何做!表現出奇鎮定冷靜,感覺時間似乎靜止或者時間突然過去了。

—關注你的能量水平:

我們靠腦力吃飯,大腦肩負重任是一個非常渴望能量的器官,每天每個人會消耗2000卡路里的熱量,其中500卡路里是給了大腦,但是大腦只佔據,我們身體總重量的2%消耗卻佔了我們的25%。這也是精力充沛會嚴重影響專注力的原因。

可以在美好時光日誌中去記錄那些能量流把握那些能量流去的方向,重新設計你的活動讓你充滿活力,人生設計是盡量從你當前的生活中汲取更多而不單單是重新設計一種全新的生活!為了改進完善你現在的生活。

無聊是一個巨大的能量消耗源!

—享受工作的樂趣,只有當你在工作中發揮了自己的優勢全身心的投入,其中才能從工作中找到樂趣。

—記錄美好時光日誌。

-活動記錄能讓你全身心投入,並感到能量充沛的活動。

-反思哪些活動讓你有收獲?收獲到什麼?

-回顧你的高峰體驗。

-擺脫困境。

用設計師的思維設計人生。從「思維誤區」裡面去找到「重新的定義」!

-製作製作你的思維導圖。當你進行詞彙聯想的時候,不要進行自我審查,這一點非常重要。這也是我 們建議你快速完成思維導圖的原因。你應該快速記錄下大腦中最初閃現的詞彙。

(在在暫停的環節放音樂,讓大家寫思維導圖。)

-錨問題 會困住我們,因為我們只能看到一種解決方案——一種根本不起作用的方法。錨問 題涉及的不僅是我們現有的、已經失敗的方法。錨問題揭露的其實是我們的恐懼: 我們擔心自己嘗試了其他方法,如果依然沒用,那麼我們就不得不承認自己永久地 陷入了困境。有時,放棄原有的方法,冒險做出巨大改變,可能會面臨更大的失 敗;相對而言,堅持一個我們熟悉的、無效的解決方法卻會讓自己更舒適。這是一 種很常見的,自相矛盾的人類行為。

「錨問題」是一個現實問題,它只是難以解決,它具有可操作性——但是因 為我們被困在上面的時間太長,所以感覺它變得難以逾越了。(這就是必須對錨問 題重新定義的原因。這類問題需要我們開拓思路、尋找新的解決方法,如原型測 試。)但是,「重力問題」並不是一個真實的問題,它屬於你無法改變的情 況。「重力問題」沒有解決方法。你只能重新定向。

【根據美好時光日誌繪制思維導圖】

繪制三張不同的思維導圖,每張都要延伸到 至少三到四層,最外層至少要有12個元素。

#思維導圖1——投入

從「美好時光日誌」中挑選一個你最感興趣的領域,或者能真正投入的活動(例

如,平衡預算或推銷一個新想法),把它放在思維導圖的中心位置,然後根據思維

導圖繪制技巧,圍繞這個中心詞彙聯想相關的詞彙或概念。

#思維導圖2——能量

從「美好時光日誌」中挑選出你認為能夠真正讓你充滿活力的事(如上藝術課或幫

助他人),據此繪制思維導圖。

#思維導圖3——心流體驗

從「美好時光日誌」中挑選出一段讓你產生心流體驗的經歷,把這段經歷放在導圖的中心位置,完成你的心流思維導圖(如在公眾面前發表演講或提出創新想法)。

完成了這三張思維導圖後,讓我們探索一下如何設計出有趣但不一定實用的「第二種生活」。

1.認真觀察這三張思維導圖的最外層,選出三個引起你注意且完全不相乾的詞彙。 跟著感覺,你會知道是哪幾個詞——它們會一下子就自動「跳入」你的眼簾。

2.現在,在一份工作介紹中,你可以想辦法用到這三個詞。你會發現這個過程非常 搞笑有趣,這對其他人也會有幫助(需要再次強調的是,這份工作介紹可能沒什麼 實用性,也不一定要吸引很多人)。

3.給你的角色命名,然後在紙巾上畫一幅草圖(迅速完稿的草圖

4.根據這三個方面的思維導圖,做三次這個練習,確保每張導圖都和其他兩張不一 樣。

-這個練習的重點不是得出一個具體的結果,而是盡量打開你的思路,開拓你的思維,讓你在不經評判的情況下進行構思。

行動起來,開啟下面的任務——設計三種真實的人生計劃。

開啟你的奧德賽計劃吧。

小練習

-思維導圖

1.回顧你的「美好時光日誌」,關注那些能讓你全身心投入、賦予你活力且讓你產 生心流體驗的活動。

2.選能夠讓你全身心投入、賦予你活力以及讓你產生心流體驗的三項活動,然後製作三張思維導圖,圍繞每項活動繪制一張導圖。

3.研讀每張導圖的外圍因素,挑選三個能立刻引起你注意的因素,然後針對每個因 素寫出一段工作描述。

4.為每段工作描述創造一個角色,並畫一幅草圖。

-每一個奧德賽計劃都是planA,因為他是你真正的渴望有可能會實現。

【三個五年計劃-未來生活版本】

1. 第一個計劃要放在你已經有的想法上,他可能是你現在生活的延展,也可能是你頭腦已經想過的好主意。

2. 第二種選擇-如果如果你突然無法從事你正在做的(如:另一種選擇。)那那第二種選擇就是你想要做的事。想想像一下你的第一個生活選擇突然消失了,或不再適合你怎麼辦呢?這這樣就會想出其他選擇。

3. 在在不考慮金錢和形象,你想做的事或者你想過的生活。

【奧奧德賽計劃詳解】

1. 一個直觀的或者是圖解形式的時間明細單。也包括私人的跟工作無關的事。

2. 為每個計劃擬定一個六字標題描述計劃的核心內容。

3. 針對每個計劃提出二到三個問題,透過問題進行測試,發展新想法。

4. 填寫儀表盤評估內容如下。

*你擁有的客觀資源:物力。

*你你喜歡的程度。

*自信心的實現。

*計劃的意義跟你的人生工作觀是否一致?

*還還包括潛在考量:你你住哪裡會獲得什麼經驗,如何選擇的,其中一樣對你帶來的影響其結果去想像生活會變成什麼樣的人成為什麼樣的人在哪裡工作?

*其他內容:除了事業與金錢的其他你你,會放在心上事情。

【主動選擇幸福】

選擇的四個步驟。

1.收集和創建選項。深刻認識自己探索自己與世界的互動進行圓形體驗設計。

2.縮小列表范圍。選項選三到五個。

3.選擇是相信你的EQ直覺

      4.心存疑慮事情,放手繼續前行。

【對失敗免疫】

堅毅的研究表明,評估一個人的成功潛力是堅毅的品格,比智商情商更為關鍵,而對於失敗免疫可以提高你的建議指數。(-心理學家安吉拉達克沃斯)

-在原型設計和體驗中,可能無法實現自己的目標,但你還是可以從過程中受益。

-不要以結果評判人生成敗。即使失敗了,你也可以從中獲得經驗教訓,幫助自己在重大事情取得成功。

也能夠因此完成多次的原型迭代循環,享受這個學習的過程,也許對於別人而言,這意味著失敗,但這就是一次一次的邂逅體驗。

-重新定義人生是一個過程,而不是一個結果。(哲學家詹姆斯.卡斯寫了一本非常有趣的書叫做「有限與無限的游戲」)生活中充滿了這兩種游戲。游戲會讓你越來越接近真實的自己

-生活是一個永遠無法被解決的問題你只有全力以赴的走下去讓自己生活得得更好!

-做人-做事-轉變:三者是螺旋上升的成長。

❺ 美國那些大學的IT專業是強項

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年度的馮·諾依曼獎。作為美國工程院和藝術科學院的雙院士,她幾十年在軟體開發研究方面的經驗,將有力地保證這門實驗課程的質量

❻ 介紹些計算機方面的書籍有哪些

1. 《信號與系統》

在《編碼》一書中,向我們展示了使用語言的一些直觀方法並創造新的方法來進行相互之間的交流,此書使我們明白了這種創造性以及我們人類對交流的迫切需求。

❼ 哪本"編譯原理"的書比較好

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

下面的資料請作參考:

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

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年在貝爾實驗室做研究工作。主要研究方向是計算機安全、編譯器設計、程序設計語言等。

❽ 編譯原理這門課哪個老師的好過

如果您覺得有用的話,請及時的答案,。
我認為這門課不難,好好學吧,把同學的筆記接來看看,如果只求過的話,我相信努力幾天還是沒問題的。編譯原理是計算機專業的一門重要專業課,旨在介紹編譯程序構造的一般原理和基本方法。內容包括語言和文法、詞法分析、語法分析、語法制導翻譯、中間代碼生成、存儲管理、代碼優化和目標代碼生成。 編譯原理是計算機專業設置的一門重要的專業課程。
這門課的基本概念:編譯器是將一種語言翻譯為另一種語言的計算機程序。編譯器將源程序(source language) 編寫的程序作為輸入,而產生用目標語言(target language )編寫的等價程序。通常地,源程序為高級語言(high-level language ),如C或C + + ,而目標語言則是目標機器的目標代碼 (object code,有時也稱作機器代碼(machine code )),也就是寫在計算機機器指令中的用於運行的代碼。這一過程可以表示為:源程序→編譯器 →目標程序

❾ 美國計算機專業

前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

❿ 編譯原理筆記9:語法分析樹、語法樹、二義性的消除

語法分析樹和語法樹不是一種東西 。習慣上,我們把前者叫做「具體語法樹」,其能夠體現推導的過程;後者叫做「抽象語法樹」,其不體現過程,只關心最後的結果。

語法分析樹是語言推導過程的圖形化表示方法。這種表示方法反映了語言的實質以及語言的推導過程。

定義:對於 CFG G 的句型,分析樹被定義為具有下述性質的一棵樹:

推導,有最左推導和最右推導,這兩種推導方式在推導過程中的分析樹可能不同,但因最終得到的句子是相同的,所以最終的分析樹是一樣的。

分析樹能反映句型的推導過程,也能反映句型的結構。然而實際上,我們往往不關心推導的過程,而只關心推導的結果。因此,我們要對 分析樹 進行改造,得到 語法樹 。語法樹中全是終結符,沒有非終結符。而且語法樹中沒有括弧

定義:

說白了,語法樹這玩意,就一句話: 葉子全是操作數,內部全是操作符 ,樹里沒有非終結符也不能有括弧。

語法樹要表達的東西,是操作符(運算)作用於操作數(運算對象)

舉倆例子吧:

【例】: -(id+id) 的語法樹:

【例】:-id+id 的語法樹:

顯然,我們從上面這兩個語法樹中,直接就能觀察出來它們的運算順序。

【例】:句型 if C then s1 else s2

二義性問題:一個句子可能對應多於一棵語法樹。

【例】: 設文法 G: E → E+E | E*E | (E) | -E | id

則,句子 id+id*id、id+id+id 可能的分析樹有:

在該例中,雖然 id+id+id 的 「+」 的結合性無論左右都不會影響結果。但萬一,萬一「+」的含義變成了「減法」,那麼左結合和右結合就會引起很大的問題了。

我們在這里講的「二義性」的「義」並非語義——我們現在在學習的內容是「語法分析器」,尚未到需要研究語言背後含義的階段。

我們現在講的「二義性」指的是一個句子對應多種分析樹。

二義性的體現,是文法對同一句子有不止一棵分析樹。這種問題由【句子產生過程中的某些推導有多於一種選擇】引起。懸空 else 問題就可以很好地體現這種【超過一種選擇】帶來的二義性問題,示例如下。

看下面這么個例子。。

(其實,我感覺這個其實比較像是「說話大喘氣」帶來的理解歧義問題。。。)上面的產生式中並沒體現出來該咋算分一塊,所以兩種完全不同的句子結構都是合法的。

二義性問題是有救的,大概有以下這三種辦法:

這些辦法的核心,其實都是將優先順序和結合性說明白。

核心:把優先順序和結合性說明白

既然要說明白,那就不能讓一個非終結符可以直接在當次推導中能推出會帶來優先順序和結合性歧義的東西。(對分析樹的一個內部節點,不會有出現在其下面的分支是相同的非終結符的情況。如果有得選,那就有得歧義了。沒得選才能確定地一路走到黑)

改寫為非二義文法的二義文法大概有下面這幾個特點:

改寫的關鍵步驟:

【例】改寫下面的二義文法為非二義文法。圖右側是要達成的優先順序和結合性

改寫的核心其實就兩句話:

所以能夠得到非終結符與運算的對應關系(因為不同的運算有不同的優先順序,我們想要引入多個優先順序就要引入多個新的非終結符。這樣每個非終結符就可以負責一個優先順序的運算符號,也就是說新的非終結符是與運算有關系的了。因此這里搞出來了「對應關系」四個字)如下:

優先順序由低到高分別是 +、 、-,而距離開始符號越近,優先順序越低。因此在這里的排序也可以+ -順序。每個符號對應一層的非終結符。根據所需要的結合性,則可確定是左遞歸還是右遞歸,以確定新的產生式長什麼樣子

【例】:規定優先順序和結合性,寫出改寫的非二義文法

我們已經掌握了一種叫做【改寫】的工具,能讓我們消除二義性。接下來我們就要用這個工具來嘗試搞搞懸空 else 問題!

懸空 else 問題出現的原因是 then 數量多於 else,讓 else 有多個可以結合的 then。在二義文法中,由於選哪兩個 then、else 配對都可以,故會引起出現二義的情況。在這里,我們規定 else 右結合,即與左邊最靠近的 then 結合。

為改寫此文法,可以將 S 分為完全匹配(MS)和不完全匹配(UMS)兩類。在 MS 中體現 then、else 個數相等即匹配且右結合;在UMS 中 then、else 不匹配,體現 else 右結合。

【例】:用改寫後的文法寫一個條件語句

經過檢查,無法再根據文法寫出其他分析樹,故已經消除了二義性

雖然二義文法會導致二義性,但是其並非一無是處。其有兩個顯著的優點:

在 Yacc 中,我們可以直接指定優先順序、結合性而無需自己重寫文法。

left 表示左結合,right 表示右結合。越往下的算符優先順序越高。

嗯就這么簡單。。。

我們其實可以把語言本身定義成沒有優先順序和結合性的。。然後所有的優先、結合都交由括弧進行控制,哪個先算就加括弧。把一個過程的結束用明確的標志標記出來。

比如在 Ada 中:

在 Pascal 中,給表達式加括弧:

熱點內容
超凡先鋒配置不行怎麼辦 發布:2025-05-15 23:27:54 瀏覽:530
win7取消加密 發布:2025-05-15 23:26:37 瀏覽:470
不用internet打開ftp 發布:2025-05-15 23:06:00 瀏覽:153
sql字元串取數字 發布:2025-05-15 22:57:45 瀏覽:124
推薦編程課 發布:2025-05-15 22:34:12 瀏覽:618
表拒絕訪問 發布:2025-05-15 22:29:37 瀏覽:978
電腦怎樣解壓文件 發布:2025-05-15 22:25:32 瀏覽:439
dns伺服器怎麼看 發布:2025-05-15 22:17:27 瀏覽:151
3dm的壓縮包 發布:2025-05-15 22:09:23 瀏覽:662
和存儲字長 發布:2025-05-15 21:54:09 瀏覽:515