导航:首页 > 源码编译 > 人工智能和编译器优化

人工智能和编译器优化

发布时间: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在细节上严格按人的思路工作,而高级语言并不能控制太多细节。

⑼ 人工智能需要学习哪些课程

人工智能专业学习的主要课程有认知心理学、神经科学基础、人类的记忆与学习、语言与思维、计算神经工程等。人工智能专业是中国高校人才计划设立的专业,旨在培养中国人工智能产业的应用型人才,推动人工智能一级学科建设。

阅读全文

与人工智能和编译器优化相关的资料

热点内容
未来番禺程序员待遇 浏览:207
安卓安智部落冲突密码怎么改 浏览:646
http协议单片机 浏览:71
pdfdocument 浏览:556
gcc编译vi文件 浏览:63
安卓连airpods怎么找耳机 浏览:927
加密货币转账教程 浏览:229
程序员小灰hashmap 浏览:838
国语pdf版 浏览:184
少儿编程作品美丽的小房子 浏览:974
服务器卡在网页上怎么办 浏览:54
用python自制编译器 浏览:951
android分享新浪微博客户端 浏览:26
系统中服务器在哪里下载地址 浏览:1001
新a4安卓手机怎么投屏 浏览:173
pdftoemf 浏览:886
java接口可以实现接口吗 浏览:59
vb编程10个随机函数 浏览:22
程序员个人简介100 浏览:772
土木工程师算法工程师 浏览:92