重要性 程序设计语言的研究和开发处于计算机科学技术发展的中心: ●计算机理论和方法的研究,许多是由于语言发展的需求 许多理论研究成果体现到程序语言的设计中 ●实际应用中最本质的需要常反映到程序语言里,推动语言的演化和发展 ●语言实现的需要是推动计算机体系结构演化的一个重要因素(如RISC) ●计算机硬件的能力和特征也对程序语言的发展变化有着重要影响(今天和明天,并行性问题) ●理解程序设计语言,有助于提高对整个计算机科学技术领域的认识 推动语言演化发展的要素: 实际应用的需要, 理论研究的成果 硬件的发展和变化,人们对于程序设计工作的认识发展,实现技术鹩开发
第10页 重要性 程序设计语言的研究和开发处于计算机科学技术发展的中心: ⚫ 计算机理论和方法的研究,许多是由于语言发展的需求 ⚫ 许多理论研究成果体现到程序语言的设计中 ⚫ 实际应用中最本质的需要常反映到程序语言里,推动语言的演化和发展 ⚫ 语言实现的需要是推动计算机体系结构演化的一个重要因素(如RISC) ⚫ 计算机硬件的能力和特征也对程序语言的发展变化有着重要影响(今天和明天,并行性问题) ⚫ 理解程序设计语言,有助于提高对整个计算机科学技术领域的认识 推动语言演化发展的要素: 实际应用的需要,硬件的发展和变化,人们对于程序设计工作的认识发展,实现技术的开发, 理论研究的成果
重要性:图灵奖 19662010,45届图灵奖,有15届由于与程序设计语言有关的工作而获奖 1966 Alan J Perlis,早起语言和Agol1983, Dennis ritchie和 Thompson,C语言 60的贡献,图灵奖第一位获奖者 和UNIX 1971, John McCarthy,LISP语言,程序|1984, Niklaus wirth, Alogl W,PL360, 语义,程序理论 Pascal, Modula-1/2, Oberon,逐步求精, 972, E W.Dijkstra, algol编译,结构 结构化程序设计,语法图 化程序设计,并发概念和原语,形199, Robin milner,M语言,并发理论, 式化推到,卫式命令等 CCS 1977 John backus. Fortran语言,FP语言,200,0 le-Johan Dahl和 Kristen Nygaard BNF等 Simula语言,OO概念 1978, Robert floyd, Algol编译,编译2003 Alan Kay, Smalltalk语言,OO概念、 技术,程序优化,归纳断言法和前 语言和程序设计 后断言,程序正确性,编译生成200, Peter Naur,Alg0l60语言的设计和 1979, ELVerson,APL语言 定义,编译,程序设计的原理和实践 1980, C.A.R. Hoare,结构化程序设计,206, Frances Allen,优化编译和并行化 cas语句,公理语义学,并发程序的200, Barbara liskov,数据抽象/O0容 理论,CSP等 错/分布式计算程序的基础和语页」
第11页 重要性:图灵奖 1966-2010,45届图灵奖,有15届由于与程序设计语言有关的工作而获奖 1966,Alan J.Perlis,早起语言和Algol 60的贡献,图灵奖第一位获奖者 1971,John McCarthy,LISP语言,程序 语义,程序理论 1972,E.W.Dijkstra,Algol编译,结构 化程序设计,并发概念和原语,形 式化推到,卫式命令等 1977,John Backus,Fortran语言,FP语言, BNF等 1978,Robert Floyd,Algol编译,编译 技术,程序优化,归纳断言法和前 后断言,程序正确性,编译生成 1979,K.E.Iverson,APL语言 1980,C.A.R.Hoare,结构化程序设计, case语句,公理语义学,并发程序的 理论,CSP等 1983,Dennis Ritchie和Thompson,C语言 和UNIX 1984,Niklaus Wirth, Alogl W, PL360, Pascal, Modula-1/2, Oberon,逐步求精, 结构化程序设计,语法图 1991,Robin Milner, ML语言,并发理论, CCS 2001,Ole-Johan Dahl和Kristen Nygaard, Simula语言,OO概念 2003,Alan Kay, Smaltalk语言,OO概念、 语言和程序设计 2005,Peter Naur, Algol 60语言的设计和 定义,编译,程序设计的原理和实践 2006,Frances Allen,优化编译和并行化 2008,Barbara Liskov,数据抽象/OO/容 错/分布式计算程序的基础和语言
2005/2006/2008图灵奖 2005: Peter Naur, For fundamental contributions to programming language design and the definition of algol 60, to compiler design, and to the art and practice of computer programming 2006: Frances E. Allen,"pioneering contributions to the theory and practice of optimizing compiler techniques that laid the foundation for modern optimizing compilers and automatic parallel execution 2008: Barbara liskov, has led important developments in computing by creating and implementing programming languages, operating systems, and innovative systems designs that have advanced the state of the art of data abstraction, modularity, fault tolerance, persistence, and distributed computing systems The Clu programming language was one of the earliest and most complete programming languages based on modules formed from abstract data types and incorporating unique intertwining of both early and late binding mechanisms 第12页
第12页 2005/2006/2008图灵奖 2005:Peter Naur, “For fundamental contributions to programming language design and the definition of Algol 60, to compiler design, and to the art and practice of computer programming.” 2006:Frances E.Allen, “pioneering contributions to the theory and practice of optimizing compiler techniques that laid the foundation for modern optimizing compilers and automatic parallel execution.” 2008:Barbara Liskov, “has led important developments in computing by creating and implementing programming languages, operating systems, and innovative systems designs that have advanced the state of the art of data abstraction, modularity, fault tolerance, persistence, and distributed computing systems. ... The CLU programming language was one of the earliest and most complete programming languages based on modules formed from abstract data types and incorporating unique intertwining of both early and late binding mechanisms.
新趋势:并行 狭义的摩尔定律已失效,提 高主频的趋势已停止 100000 ●并行环境已逐渐成为我们周 围最常见计算机的基本结构 的一部分 000 如何做并行程序设计的问题 1000 变成对每个计算机工作者的 挑战 100 程序设计语言也需要反应这 方面的需求 ●有关并行语言、程序和程序 设计的问题,将在今后很多 Clock Speed (MHz) 年里成为程序设计语言研究 a Transistors (000) 领域里最重要的问题 13711975179198319871991199519920032007 第13页
第13 页 新趋势:并行 ⚫ 狭义的摩尔定律已失效,提 高主频的趋势已停止 ⚫ 并行环境已逐渐成为我们周 围最常见计算机的基本结构 的一部分 ⚫ 如何做并行程序设计的问题 变成对每个计算机工作者的 挑战 ⚫ 程序设计语言也需要反应这 方面的需求 ⚫ 有关并行语言、程序和程序 设计的问题,将在今后很多 年里成为程序设计语言研究 领域里最重要的问题
新趋势:并行 有关并行系统和并行程序设计的研究已经进行了近40年,但对并行系 统和如何设计实现并行系统的认识仍很不成熟 已开发的并行系统(及分布式系统)经常出现意料之外的错误 ●并行系统的开发方法很难使用,开发低效,对开发人员缺乏良好支 持 描述并发系统的记法形式过于低级和细节,缺乏有效抽象手段 并发系统的验证技术不成熟,系统缺乏可靠性的保证 对于上述问题的研究和并发程序开发实践将未来语言的发展影响有重 大影响 许多新语言里加入了并行特征,包括Java、C#等 些并行理论的研究成果被用于实践,如JCSP 人们重新开始重视无状态的程序设计,函数式程序设计(如 Erlang 语言受到许多人推崇),提出了一些新想法 ●这方面的理论和实际技术研究将成为很长时间的研究热点 第14页
第14页 新趋势:并行 有关并行系统和并行程序设计的研究已经进行了近40年,但对并行系 统和如何设计实现并行系统的认识仍很不成熟: ⚫ 已开发的并行系统(及分布式系统)经常出现意料之外的错误 ⚫ 并行系统的开发方法很难使用,开发低效,对开发人员缺乏良好支 持 ⚫ 描述并发系统的记法形式过于低级和细节,缺乏有效抽象手段 ⚫ 并发系统的验证技术不成熟,系统缺乏可靠性的保证 对于上述问题的研究和并发程序开发实践将未来语言的发展影响有重 大影响 ⚫ 许多新语言里加入了并行特征,包括Java、C# 等 ⚫ 一些并行理论的研究成果被用于实践,如JCSP ⚫ 人们重新开始重视无状态的程序设计,函数式程序设计(如Erlang 语言受到许多人推崇),提出了一些新想法 ⚫ 这方面的理论和实际技术研究将成为很长时间的研究热点