導航:首頁 > 源碼編譯 > 人工智慧和編譯器優化

人工智慧和編譯器優化

發布時間:2023-01-13 22:31:14

⑴ 美國留學計算機專業分類有哪些

給題主介紹全一點吧,計算機專業下的小專業,以及主要研究方向。

題主可以參考一下下面整理的一些方向的信息,其實對於碩士研究生來說是以上課為主,除了CMU把CS分成了二十幾個細小的方向,其他學校基本上都是按照大類來申請,錄取後除了規定的必修課以外,有很多方向的課供你選修,這時你需要根據你的職業方向來選擇某個領域來學習,當然你也可以選修多個領域的課程。

如果是申請博士研究生的話,方向則需要在申請前就確定好。

目前肯定是人工智慧比較火,但是我覺得火的方向不一定會適合每個人,重點還是要看你的興趣點在哪裡。

1. 人工智慧 Artificial Intelligence

這個領域包含廣泛的研究課題,包括知識表示,機器學習,計算機視覺,推理和機器人等。

知識表示(knowledge representation):把知識按照一種有利於推理(得出結論)的方式表示出來。

機器學習(machine learning):自動學習如何識別復雜模式並基於數據作出智能決策。

計算機視覺(computer vision):使機器自動從圖像和視頻中提取信息並理解其中包含的視覺概念。

推理(reasoning):學習推理的計算模型。

機器人(robotics):工程學和機器人技術,以及它們的設計,製造,應用和結構配置。

2. 生物信息學和計算生物學 Bioinformatics and Computational Biology

生物信息學(Bioinformatics):研究生物信息的採集、處理、存儲、傳播,分析和解釋 。

計算生物學(Computational Biology):開發和應用數據分析及理論的方法、數學建模和計算機模擬技術,並用於生物學研究 。

3. 系統與網路 Systems and Networking

(1)網路與分布式系統(Networking and distributed systems):移動通信系統,無線網路協議(wireless protocols),Ad-hoc網路,服務質量管理(Quality of Service management,QoS),多媒體網路,計算機對等聯網(peer-to-peer networking, P2P),路由,網路模擬,主動隊列管理(active queue management, AQM)和感測器網路(sensor networks)。

(2)操作系統(Operating system):分布式資源管理,普適計算(ubiquitous computing/pervasive computing)環境管理,反射中間件(reflective middleware),中間件元級操作系統(middleware 「meta-operating systems」),面向對象操作系統設計,允許單個用戶與多計算機、對等操作系統服務交互的用戶設計,上下文敏感的分布式文件系統,數據中心的電源管理,文件/存儲系統,自主計算(autonomic computing),軟體健壯性的系統支持以及資料庫的系統支持。

(3)安全(Security): 隱私,普適計算,無線感測器(wireless sensors),移動式和嵌入式計算機,規范,認證,驗證策略,QoS保證和拒絕服務保護,下一代電話通訊,操作系統虛擬化和認證,關鍵基礎設施系統,例如SCADA控制系統和醫療,消息系統,安全網關,可用性安全。

(4)實時和嵌入式系統(Real-time and embedded systems):開放式實時系統,Qos驅動的實時調度和通信協議,控制設計和實時調度整合,實時、容錯和安全協議整合,網路化器件和智能空間的魯棒動態實時構架。

4. 理論與演算法 Theory and Algorithms

計算機理論研究主要集中在演算法和數據結構的設計與分析,以及計算復雜性的研究。

具體包括最優化(optimization),計算幾何和拓撲(computational geometry and topology),近似演算法(approximation algorithms),密碼(cryptography)和安全計算(secure computation),網路設計(network design),數據挖掘(data mining),機器學習(machine learning),有限元網格生成(finite-element mesh generation)和自動化軟體驗證(automatic software verification)。

5. 編程語言 Programming Languages

該領域的研究包括計算機語言的設計與實現,其目標是同時提高開發人員的開放效率和軟體質量。包含如下一些課題:

(1)程序語言設計和實現(Programming Language Design and Implementation):編譯器優化(Compiler optimization),語義(Semantics),即時編譯器(JIT complier),域特定語言(DSL:Domain-specific languages)。

(2)編程環境和工具(Programming Environments and Tools):監控(Monitoring),程序員搜索引擎(Programmer search engines),基於模型的設計(Model-based design)。

(3)程序分析和驗證(Program Analysis and Verification):模型檢測(Model checking),靜態和動態分析(Static and dynamic analysis),定理證明(Theorem proving),實時系統的任務調度分析(Schelability analysis for real-time systems)。

6. 資料庫與信息系統 Database and Information Systems

包括以下研究內容:

(1)資料庫(Database):數據模型,數據查詢、集成,各種資料庫系統的設計、實現等。

(2)數據挖掘(Data Mining):從數據中提取模式的處理過程。它在很多領域有廣泛的應用,例如市場營銷、監測、入侵檢測和科學發現。數據挖掘和機器學習很相關,但是數據挖掘更關注實際應用。

(3)信息檢索(Information Retrieval):研究如何提取各種媒體(文本、音頻、視頻等,目前的研究以文本居多)中的信息,同時還搜索與之關聯的資料庫和萬維網。

(4)自然語言處理(Natural language processing):構建一種可以分析、理解和生成自然語言的計算機系統。研究課題包含自動摘要(automatic summarization),語篇分析(discourse analysis),機器翻譯(machine translation),命名實體識別(named entity recognition),自然語言生成(natural language generation)和語音識別(speech recognition)等。

7. 圖形學與多媒體 Graphics and Multimedia

圖形學的研究包含對自然景象的建模和動畫生成(modeling and animation of natural phenomena),計算拓撲學(computational topology),圖形硬體的使用(graphics hardware utilization),渲染(rendering),網格處理和簡化(mesh processing and simplification),形狀建模(shape modeling),曲面參數化(surface parameterization)和可視化處理(visibility processing)等。

多媒體研究包括圖像處理(image processing),視頻處理(video processing),音頻分析(audio analysis),文本檢索和理解(text retrieval and understanding),數據挖掘和分析,以及數據融合(data fusion)。因為多媒體數據包含不同格式的數據(如文本,音頻,視頻),所以它的研究包含很多不同領域的技術和理論。

8. 人機交互 Human-Computer Interaction (HCI)

HCI主要研究人和計算機之間的交互。它通常被認為是計算機科學、行為科學、設計及其他相關領域研究的交叉學科。

研究課題包括:

(1) 上下文感知計算(Context-aware computing): 行為分析,智能空間(Smart Spaces),定位感知系統(Location-aware systems),隱私技術。

(2) 感知人機界面(Perceptual Interfaces):基於視覺的界面(Vision-based interfaces),語音和話語界面(speech and discourse interfaces)。

(3) 協同和學習(Collaboration and Learning):基於模式的編輯工具(Pattern-based authoring tools),ESL (English as a second language) 學習,群組協同技術(group collaboration technologies),包含按地理分布的遠程沉浸協同(geographically distributed tele-immersive collaboration)等。

(4) 驗光和人的視覺模擬(Optometry and Human Vision Simulation):計算機輔助的角膜建模和可視化,醫學成像(medical imaging),手術模擬的虛擬環境(virtual environments for surgical simulation),模擬渲染(vision realistic rendering)。

希望我的回答可以幫到題主。

⑵ 人工智慧知識體系的五個知識單元

人工智慧知識體系的五個知識單元如下:

1、人工智慧知識單元有理論電腦科學包括:數據結構和演算法、計算理論、資訊理論與編碼理論、編程語言和編譯器、形式化方法、軟體工程。計算機系統包括:計算機體系結構與計算機工程、操作系統並發、並行與分布式系統、計算機網路、計算機安全和密碼學、資料庫。計算機應用技術包括:計算機圖形學、科學計算、多媒體技術、人工智慧。

3、通常人工智慧是指通過普通計算機程序來呈現人類智能的技術。也指出研究這樣的智能系統是否能夠實現,以及如何實現。同時,通過醫學、神經科學、機器人學及統計學等的進步。人工智慧分支學科劃分如下:機器學習、計算機視覺、圖像處理、模式識別、數據挖掘、演化計算、知識表示和自動推理、自然語言處理、機器人學。

⑶ 現代C/C++編譯器有多智能

最近在搞C/C++代碼的性能優化,發現很多時候自以為的優化其實編譯器早就優化過了,得結合反匯編才能看出到底要做什麼樣的優化。
請熟悉編譯器的同學結合操作系統和硬體談一談現代c/c++編譯器到底有多智能吧。哪些書本上的優化方法其實早就過時了?
以及程序員做什麼會讓編譯器能更好的自動優化代碼?
舉個栗子:
1,循環展開,大部分編譯器設置flag後會自動展開;
2,順序SIMD優化,大部分編譯器設置flag後也會自動優化成SIMD指令;
3,減少中間變數,大部分編譯器會自動優化掉中間變數;
etc.
查看代碼對應的匯編:
Compiler Explorer
【以下解答】
舉個之前看過的例子:
int calc_hash(signed char *s){ static const int N = 100003; int ret = 1; while (*s) { ret = ret * 131 + *s; ++ s; } ret %= N; if (ret < 0) ret += N; //注意這句 return ret;}
【以下解答】
舉個簡單例子,一到一百求和
#include int sum() { int ret= 0; int i; for(i = 1; i <= 100; i++) ret+=i; return ret;}int main() { printf("%d\n", sum()); return 0;}
【以下解答】
話題太大,碼字花時間…
先放傳送門好了。
請看Google的C++編譯器組老大Chandler Carruth的演講。這個演講是從編譯器研發工程師的角度出發,以Clang/LLVM編譯C++為例,向一般C++程序員介紹理解編譯器優化的思維模型。它講解了C++編譯器會做的一些常見優化,而不會深入到LLVM具體是如何實現這些優化的,所以即使不懂編譯原理的C++程序員看這個演講也不會有壓力。
Understanding Compiler Optimization - Chandler Carruth - Opening Keynote Meeting C++ 2015
演示稿:https://meetingcpp.com/tl_files/mcpp/2015/talks/meetingcxx_2015-understanding_compiler_optimization_themed_.pdf
錄像:https://www.youtube.com/watch?v=FnGCDLhaxKU(打不開請自備工具…)
Agner Fog寫的優化手冊也永遠是值得參考的文檔。其中的C++優化手冊:
Optimizing software in C++ - An optimization guide for Windows, Linux and Mac platforms - Agner Fog
要稍微深入一點的話,GCC和LLVM的文檔其實都對各自的內部實現有不錯的介紹。
GCC:GNU Compiler Collection (GCC) Internals
LLVM:LLVM』s Analysis and Transform Passes
========================================
反模式(anti-patterns)
1. 為了「優化」而減少源碼中局部變數的個數
這可能是最沒用的手工「優化」了。特別是遇到在高級語言中「不用臨時變數來交換兩個變數」這種場景的時候。
看另一個問題有感:有什麼像a=a+b;b=a-b;a=a-b;這樣的演算法或者知識? - 編程
2. 為了「優化」而把應該傳值的參數改為傳引用
(待續…)
【以下解答】
推薦讀一讀這里的幾個文檔:
Software optimization resources. C++ and assembly. Windows, Linux, BSD, Mac OS X
其中第一篇:http://www.agner.org/optimize/optimizing_cpp.pdf
講解了C++不同領域的優化思路和問題,還有編譯器做了哪些優化,以及如何代碼配合編譯器優化。還有優化多線程、使用向量指令等的介紹,推薦看看。
感覺比較符合你的部分需求。
【以下解答】
一份比較老的slides:
http://www.fefe.de/source-code-optimization.pdf
【以下解答】
利用C++11的range-based for loop語法可以實現類似python里的range生成器,也就是實現一個range對象,使得
for(auto i : range(start, stop, step))
【以下解答】
我覺得都不用現代。。。。寄存器分配和指令調度最智能了
【以下解答】
每次編譯poco庫的時候我都覺得很為難GCC
【以下解答】
有些智能並不能保證代碼變換前後語義是等價的
【以下解答】
誒誒,我錯了各位,GCC是可以藉助 SSE 的 xmm 寄存器進行優化的,經 @RednaxelaFX 才知道應該添加 -march=native 選項。我以前不了解 -march 選項,去研究下再來補充為什麼加和不加區別這么大。
十分抱歉黑錯了。。。以後再找別的點來黑。
誤導大家了,實在抱歉。(??ˇ?ˇ??)
/*********以下是並不正確的原答案*********/
我是來黑 GCC的。
最近在搞編譯器相關的活,編譯OpenSSL的時候有一段這樣的代碼:
BN_ULONG a0,a1,a2,a3; // EmmetZC 註:BN_ULONG 其實就是 unsigned longa0=B[0]; a1=B[1]; a2=B[2]; a3=B[3];A[0]=a0; A[1]=a1; A[2]=a2; A[3]=a3;
【以下解答】
提示:找不到對象
【以下解答】
忍不住抖個機靈。
私以為正常寫代碼情況下編譯器就能優化,才叫智能編譯器。要程序員絞盡腦汁去考慮怎麼寫代碼能讓編譯器更好優化,甚至降低了可讀性,那就沒有起到透明屏蔽的作用。
智能編譯器應該是程序猿要較勁腦汁才能讓編譯器不優化。
理論上是這樣的。折疊我吧。
【以下解答】
編譯器智能到每次我都覺得自己很智障。
【以下解答】
雖然題主內容里是想問編譯器代碼性能優化方面的內容,但題目里既然說到編譯器的的智能,我就偏一下方向來說吧。
有什麼更能展示編譯器的強大和智能?
自然是c++的模版元編程
template meta programming
簡單解釋的話就是寫代碼的代碼,寫的還是c++,但能讓編譯器在編譯期間生成正常的c++代碼。
沒接觸過的話,是不是聽上去感覺就是宏替換的加強版?感覺不到它的強大呢?
只是簡單用的話,效果上這樣理解也沒什麼
但是一旦深入下去,尤其翻看大神寫的東西,這明明看著就是c++的代碼,但TM怎麼完全看不懂他在干什麼?後來才知道這其實完全是另外一個世界,可是明明是另外一個世界的東西但它又可以用來做很多正常c++能做的事....
什麼?你說它好像不能做這個,不能做那個,好像做不了太多東西,錯了,大錯特錯。就像你和高手考試都考了100分的故事一樣,雖然分數一樣,但你是努力努力再努力才得了滿分,而高手只是因為卷面分只有100分.....在元編程面前,只有想不到,沒有做不到。
再回頭看看其他答案,編譯器順手幫你求個和,丟棄下無用代碼,就已經被驚呼強大了,那模板元編程這種幾乎能在編譯期直接幫你「生成」包含復雜邏輯的c++代碼,甚至還能間接「執行」一些復雜邏輯,這樣的編譯器是不是算怪獸級的強大?
一個編譯器同時支持編譯語法相似但結果不同卻又關聯的兩種依賴語言,這個編譯器有多強大多智能?
寫的人思維都要轉換幾次,編譯器轉著圈嵌著套翻著番兒地編譯代碼的代碼也肯定是無比蛋疼的,你說它有多強大多智能?
一個代碼創造另外一個代碼,自己能按照相似的規則生成自己,是不是聽上去已經有人工智慧的發展趨勢了?
上帝說,要有光,於是有了光。
老子曰,一生二,二生三,三生萬物。
信c++,得永生!
===
FBI WARNING:模板元編程雖然很強大,但也有不少缺點,尤其對於大型項目,為了你以及身邊同事的身心健康,請務必適度且謹慎的使用。勿亂入坑,回頭是岸。
【以下解答】
c++11的auto自動類型推斷算么....
【以下解答】
智能到開不同級別的優化,程序行為會不同 2333
【以下解答】
這個取決於你的水平

⑷ 美國猶他大學碩士CS專業學習哪些科目,需要買什麼書。。

一、體系結構、編譯器和並行計算 Architecture, Compilers and Parallel Computing

體系結構和編譯器的研究主要集中在硬體設計,編程語言以及下一代編譯器。


並行計算研究的包含范圍很廣,包括並行計算的計算模型,並行演算法,並行編譯器設計等。


二、系統與網路 Systems and Networking


可細分為:


(1)網路與分布式系統(Networking and distributed systems):移動通信系統,無線網路協議(wireless protocols),Ad-hoc網路,服務質量管理(Quality of Service management,QoS),多媒體網路,計算機對等聯網(peer-to-peer networking, P2P),路由,網路模擬,主動隊列管理(active queue management, AQM)和感測器網路(sensor networks)。


(2)操作系統(Operating system):分布式資源管理,普適計算(ubiquitous computing/pervasive computing)環境管理,反射中間件(reflective middleware),中間件元級操作系統(middleware 「meta-operating systems」),面向對象操作系統設計,允許單個用戶與多計算機、對等操作系統服務交互的用戶設計,上下文敏感的分布式文件系統,數據中心的電源管理,文件/存儲系統,自主計算(autonomic computing),軟體健壯性的系統支持以及資料庫的系統支持。


(3)安全(Security): 隱私,普適計算,無線感測器(wireless sensors),移動式和嵌入式計算機,規范,認證,驗證策略,QoS保證和拒絕服務保護,下一代電話通訊,操作系統虛擬化和認證,關鍵基礎設施系統,例如SCADA控制系統和醫療,消息系統,安全網關,可用性安全。


(4)實時和嵌入式系統(Real-time and embedded systems):開放式實時系統,Qos驅動的實時調度和通信協議,控制設計和實時調度整合,實時、容錯和安全協議整合,網路化器件和智能空間的魯棒動態實時構架。


三、理論與演算法 Theory and Algorithms


計算機理論研究主要集中在演算法和數據結構的設計與分析,以及計算復雜性的研究。具體包括最優化(optimization),計算幾何和拓撲(computational geometry and topology),近似演算法(approximation algorithms),密碼(cryptography)和安全計算(secure computation),網路設計(network design),數據挖掘(data mining),機器學習(machine learning),有限元網格生成(finite-element mesh generation)和自動化軟體驗證(automatic software verification)。


四、人工智慧 Artificial Intelligence


這個領域包含廣泛的研究課題,包括知識表示,機器學習,計算機視覺,推理和機器人等。


知識表示(knowledge representation):把知識按照一種有利於推理(得出結論)的方式表示出來。


機器學習(machine learning):自動學習如何識別復雜模式並基於數據作出智能決策。


計算機視覺(computer vision):使機器自動從圖像和視頻中提取信息並理解其中包含的視覺概念。


推理(reasoning):學習推理的計算模型。


機器人(robotics):工程學和機器人技術,以及它們的設計,製造,應用和結構配置。


五、編程語言 Programming Languages


該領域的研究包括計算機語言的設計與實現,其目標是同時提高開發人員的開放效率和軟體質量。包含如下一些課題:


(1)程序語言設計和實現(Programming Language Design and Implementation):編譯器優化(Compiler optimization),語義(Semantics),即時編譯器(JIT complier),域特定語言(DSL:Domain-specific languages)。


(2)編程環境和工具(Programming Environments and Tools):監控(Monitoring),程序員搜索引擎(Programmer search engines),基於模型的設計(Model-based design)。


(3)程序分析和驗證(Program Analysis and Verification):模型檢測(Model checking),靜態和動態分析(Static and dynamic analysis),定理證明(Theorem proving),實時系統的任務調度分析(Schelability analysis for real-time systems)。


六、資料庫與信息系統 Database and Information Systems


包括以下研究內容:


(1)資料庫(Database):數據模型,數據查詢、集成,各種資料庫系統的設計、實現等。


(2)數據挖掘(Data Mining):從數據中提取模式的處理過程。它在很多領域有廣泛的應用,例如市場營銷、監測、入侵檢測和科學發現。數據挖掘和機器學習很相關,但是數據挖掘更關注實際應用。


(3)信息檢索(Information Retrieval):研究如何提取各種媒體(文本、音頻、視頻等,目前的研究以文本居多)中的信息,同時還搜索與之關聯的資料庫和萬維網。


(4)自然語言處理(Natural language processing):構建一種可以分析、理解和生成自然語言的計算機系統。研究課題包含自動摘要(automatic summarization),語篇分析(discourse analysis),機器翻譯(machine translation),命名實體識別(named entity recognition),自然語言生成(natural language generation)和語音識別(speech recognition)等。


七、圖形學與多媒體 Graphics and Multimedia


圖形學的研究包含對自然景象的建模和動畫生成(modeling and animation of natural phenomena),計算拓撲學(computational topology),圖形硬體的使用(graphics hardware utilization),渲染(rendering),網格處理和簡化(mesh processing and simplification),形狀建模(shape modeling),曲面參數化(surface parameterization)和可視化處理(visibility processing)等。


多媒體研究包括圖像處理(image processing),視頻處理(video processing),音頻分析(audio analysis),文本檢索和理解(text retrieval and understanding),數據挖掘和分析,以及數據融合(data fusion)。因為多媒體數據包含不同格式的數據(如文本,音頻,視頻),所以它的研究包含很多不同領域的技術和理論。


⑸ 為什麼需要改變編譯器

答案如下:
1.編譯器是把源程序的每一條語句都編譯成機器語言,並保存成二進制文件,這樣運行時計算機可以直接以機器語言來運行此程序,速度很快;
2.解釋器則是只在執行程序時,才一條一條的解釋成機器語言給計算機來執行,所以運行速度是不如編譯後的程序運行的快的.
3.因為計算機不能直接認識並執行我們寫的語句,它只能認識機器語言(是二進制的形式).
4.編譯是將源程序翻譯成可執行的目標代碼,翻譯與執行是分開的;而解釋是對源程序的翻譯與執行一次性完成,不生成可存儲的目標代碼。這只是表象,二者背後的最大區別是:對解釋執行而言,程序運行時的控制權在解釋器而不在用戶程序;對編譯執行而言,運行時的控制權在用戶程序。
4.編譯器在優化過程中採用了自動或半自動的代碼生成用以替代人工優化。人的精力是有限的,通過(接近無限)的算力去適配每一個應用場景看到的網路,改變編譯器,這是編譯技術比人工路線強的所在。

⑹ 系統的學習人工智慧需要學習什麼

人工智慧是一個包含很多學科的交叉學科,你需要了解計算機的知識、資訊理論、控制論、圖論、心理學、生物學、熱力學,要有一定的哲學基礎,有科學方法論作保障。人工智慧學習路線最新版本在此奉上:
首先你需要數學基礎:高等數學,線性代數,概率論數理統計和隨機過程,離散數學,數值分析;
其次需要演算法的積累:人工神經網路,支持向量機,遺傳演算法等等演算法;
當然還有各個領域需要的演算法,比如你要讓機器人自己在位置環境導航和建圖就需要研究SLAM;
演算法很多需要時間的積累。
然後,需要掌握至少一門編程語言,畢竟演算法的實現還是要編程的;如果深入到硬體,一些電類基礎課必不可少;
人工智慧一般要到研究生才會去學,本科也就是蜻蜓點水看看而已,畢竟需要的基礎課過於龐大。
剛才提到的這些學科的每一門都是博大精深的,但同時很多事物都是相通的,你學了很多知識有了一定的基礎的時候再看相關知識就會觸類旁通,很容易。在這中間關鍵是要有自己的思考,不能人雲亦雲。畢竟,人工智慧是一個正在發展並具有無窮挑戰和樂趣的學科。
人工智慧的首選語言是Python,因此大家一定要學好Python語言。人工智慧學習的重點是機器學習:
1、斯坦福大學公開課 :機器學習課程
2、數據分析競賽kaggle
3、Deep learning-author Joshua Bengio
機器學習書單python實戰編程
1、Python for Data Analysis
2、SciPy and NumPy
3、Machine Learning for Hackers
4、Machine Learning in Action

⑺ 人工智慧領域有哪幾位科學家獲圖靈獎,他們分別為人工智慧做出了什麼貢獻

圖靈獎,是美國計算機協會(ACM)於1966年設立的,又叫「A.M. 圖靈獎」,專門獎勵那些對計算機事業作出重要貢獻的個人。其名稱取自計算機科學的先驅、英國科學家阿蘭·圖靈,這個獎設立目的之一是紀念這位科學家。獲獎者的貢獻必須是在計算機領域具有持久而重大的技術先進性的。大多數獲獎者是計算機科學家。
圖靈獎是計算機界最負盛名的獎項,有「計算機界諾貝爾獎」之稱。圖靈獎對獲獎者的要求極高,評獎程序也極嚴,一般每年只獎勵一名計算機科學家,只有極少數年度有兩名以上在同一方向上做出貢獻的科學家同時獲獎。目前圖靈獎由英特爾公司贊助,獎金為100,000美元。
每年,美國計算機協會將要求提名人推薦本年度的圖靈獎候選人,並附加一份200到500字的文章,說明被提名者為什麼應獲此獎。任何人都可成為提名人。美國計算機協會將組成評選委員會對被提名者進行嚴格的評審,並最終確定當年的獲獎者。
截止至2005年,獲此殊榮的華人僅有一位,他是2000年圖靈獎得主姚期智。
編輯本段歷年圖靈獎獲得者
2007 Edmund M. Clarke、Allen Emerson和Joseph Sifakis
獲獎原因:在將模型檢查發展為被硬體和軟體業中所廣泛採納的高效驗證技術上的貢獻。而DDJ則將三人的貢獻稱為「在發現計算機硬體和軟體中設計錯誤的自動化方法方面的工作」。
2006 Fran Allen
獲獎原因:對於優化編譯器技術的理論和實踐做出的先驅性貢獻,這些技術為現代優化編譯器和自動並行執行打下了基礎。
2005 Peter Naur
獲獎原因:由於在設計Algol60程序設計語言上的貢獻。Algol60語言定義清晰,是許多現代程序設計語言的原型。
2004 Vinton G. Cerf、Robert E. Kahn
獲獎原因:由於在互聯網方面開創性的工作,這包括設計和實現了互聯網的基礎通訊協議,TCP/IP,以及在網路方面卓越的領導。
2003 Alan Kay
獲獎原因:由於在面向對象語言方面原創性思想,領導了Smalltalk的開發團隊,以及對PC的基礎性貢獻。
至理名言:預測未來的最好方法是創造它。
2002 Ronald L. Rivest、Adi Shamir、Leonard M. Adleman
獲獎原因:由於在公共密鑰理論和實踐方面的基礎性工作。
2001 Ole-Johan Dahl、Kristen Nygaard
獲獎原因:由於面向對象編程始發於他們基礎性的構想,這些構想集中體現在他們所設計的編程語言SIMULA I 和SIMULA 67中。
2000 Andrew Chi-Chih Yao(姚期智)
獲獎原因:由於在計算理論方面的貢獻而獲獎,包括偽隨機數的生成演算法、加密演算法和通訊復雜性。
1999 Frederick P. Brooks, Jr.
獲獎原因:由於在計算機體系架構、操作系統以及軟體工程方面所做出的具有里程碑式意義的貢獻。人月神話的作者。
1998 James Gray
獲獎原因:由於在資料庫、事務處理研究和相關系統實現的技術領導工作。
1997 Douglas Engelbart
獲獎原因:由於提出了激動人心的互動式計算機未來構想,以及發明了實現這一構想的關鍵技術。
1996 Amir Pnueli
獲獎原因:由於在計算科學中引入temporal邏輯以及對編程和系統認證方面的傑出貢獻。
1995 Manuel Blum
獲獎原因:由於在計算復雜性理論、密碼學以及程序校驗方面的基礎性貢獻。
1994 Edward Feigenbaum、Raj Reddy
獲獎原因:由於他們所設計和建造的大規模人工智慧系統,證明了人工智慧技術的重要性和其潛在的商業價值。
1993 Juris Hartmanis、Richard E. Stearns
獲獎原因:由於他們的論文奠定了計算復雜性理論的基礎。
1992 Butler W. Lampson
獲獎原因:由於在個人分布式計算機系統及其實現技術上的貢獻,這包括:工作站、網路、操作系統、編程系統、顯示、安全和文檔發布。
1991 Robin Milner
獲獎原因:由於在可計算函數邏輯(LCF)、ML和並行理論(CCS)這三個方面突出和完美的貢獻。
1990 Fernando J. Corbato'
獲獎原因:由於組織和領導了多功能、大規模、時間和資源共享的計算機系統的開發。
1989 William (Velvel) Kahan
獲獎原因:由於在數值分析方面的基礎性貢獻。
1988 Ivan Sutherland
獲獎原因:由於在計算機圖形學方面開創性和遠見性的貢獻,其所建立的技術歷經二、三十年依然有效。
1987 John Cocke
獲獎原因:由於在編譯器設計和理論、大規模系統架構以及開發RISC等方面的重要貢獻。
1986 John Hopcroft、Robert Tarjan
獲獎原因:由於在演算法及數據結構設計和分析方面的基礎性成就。
1985 Richard M. Karp
獲獎原因:由於在演算法理論方面,特別是NP-completeness理論方面,連續不斷的貢獻。
1984 Niklaus Wirth
獲獎原因:由於開發了EULER、 ALGOL-W、 MODULA和PASCAL一系列嶄新的計算語言。
1983 Ken Thompson、Dennis M. Ritchie
獲獎原因:由於在通用操作系統理論研究,特別是UNIX操作系統的實現上的貢獻。
1982 Stephen A. Cook
獲獎原因:由於其於1971年發表的論文,奠定了NP-Completeness理論的基礎。
1981 Edgar F. Codd
獲獎原因:由於在數椐庫管理系統的理論和實踐方面基礎性和連續不斷的貢獻,關系資料庫之父。
1980 C. Antony R. Hoare
獲獎原因:由於在編程語言的定義和設計方面的基礎性貢獻。
1979 Kenneth E. Iverson
獲獎原因:由於在編程語言的理論和實踐方面,特別是APL,所進行的開創性的工作。
1978 Robert W. Floyd
獲獎原因:由於在如何開發高效、可靠的軟體方法論方面的貢獻,這包括:建立分析理論、編程語言的語義學、自動程序檢驗、自動程序綜合和演算法分析在內的多項
計算機子學科。
1977 John Backus
獲獎原因:由於在高級語言方面所做出的具有廣泛和深遠意義的貢獻,特別是其在Fortran語言方面。
1976 Michael O. Rabin、Dana S. Scott
獲獎原因:由於他們的論文"有限自動機與它們的決策問題",被證明具有巨大的價值。
1975 Allen Newell、Herbert A. Simon
獲獎原因:由於在人工智慧、人類識別心理和表處理的基礎貢獻。
1974 Donald E. Knuth
獲獎原因:由於在演算法分析和程序語言設計方面的重要貢獻,計算機程序設計藝術的作者。
1973 Charles W. Bachman
獲獎原因:由於在資料庫方面的傑出貢獻。
1972 E.W. Dijkstra
獲獎原因:由於對開發ALGOL做出了原理性貢獻。
1971 John McCarthy
獲獎原因:由於其講稿"The Present State of Research on Artificial
Intellegence",對人工智慧領域的貢獻。
1970 J.H. Wilkinson
獲獎原因:由於其在數值分析方面的研究工作。
1969 Marvin Minsky
獲獎原因:人工智慧理論及軟體
1968 Richard Hamming
獲獎原因:由於其在計數方法、自動編碼系統、檢測及糾正錯碼方面的工作。
1967 Maurice V. Wilkes
獲獎原因:由於設計和製造了第一台內部存儲程序的計算機EDSAC。
1966 A.J. Perlis
獲獎原因:由於其在先進編程技術和編譯架構方面的貢獻。

⑻ 同樣需要編譯器為什麼匯編語言比較快

絕大多數情況下,並不是。

事實上除了對CPU工作模式極端熟悉的人,一般人是很難用匯編寫出更高效的代碼的。
編譯器雖然智商比不了人,但是它更精通優化。生成高效的代碼需要透徹地掌握硬體的工作模式,每個細節都要考慮清楚。而且這很大程度上是軟體更擅長但人並不擅長的繁重無腦又要求極高精確性的機械化工作。

當然專業搞優化的人還是能打敗編譯器的,因為編譯器能做到的人終究還是可以做到。而人要比編譯器聰明得多。編譯器只能遵循一些規定好的模式進行優化,人可以創造編譯器根本不知道的優化方法。某些邏輯靠編譯器是沒辦法生成出來的,只能由人直接用匯編寫。匯編語言雖然也要編譯,但是一般會和機器指令直接對應,相當於要求CPU在細節上嚴格按人的思路工作,而高級語言並不能控制太多細節。

⑼ 人工智慧需要學習哪些課程

人工智慧專業學習的主要課程有認知心理學、神經科學基礎、人類的記憶與學習、語言與思維、計算神經工程等。人工智慧專業是中國高校人才計劃設立的專業,旨在培養中國人工智慧產業的應用型人才,推動人工智慧一級學科建設。

閱讀全文

與人工智慧和編譯器優化相關的資料

熱點內容
如何設置異地伺服器 瀏覽:882
為什麼安卓手機藍牙耳機不會彈窗 瀏覽:546
linuxf77編譯器安裝教程 瀏覽:949
android本地錄音許可權 瀏覽:446
加密u盤內容怎麼拷貝 瀏覽:283
安卓手機為什麼看不到iso文件 瀏覽:582
用圖片做文件夾圖標 瀏覽:693
java正則表達式語法 瀏覽:865
美圖秀在線壓縮圖片 瀏覽:184
蘋果自帶控制app是什麼 瀏覽:907
孩子學編程怎麼樣 瀏覽:589
網路編程經典書籍 瀏覽:612
曲靖創建網站java程序員 瀏覽:690
256位加密中是什麼意思 瀏覽:97
php多維數組去重 瀏覽:308
做程序員這一行儲備人才怎麼看 瀏覽:461
參加密逃文 瀏覽:327
蘋果編程語言ios 瀏覽:763
求解病態系統常用的演算法 瀏覽:994
駕校用的app叫什麼 瀏覽:219