C语言程序设计_优秀讲义
a.1967年时已出版并被使用。 b.1977年仍在使用。 c.在计算领域有很大影响。选出的语言有:Algol, Apl, APT, Basic, Cobol, Fortran, GPSS, Joss,Jovial, Lisp, PL/I, Simula, Snobol。80年代的两个重要语言PASCAL(Niklaus Wirth, 1968)和Ada未列入。 PASCAL在70年代后期成为非常重要的语言,特别是在计算机教学方面。 程序设计语言的发展 E.Sammet在“Programming Language: History and Future”,Communications of the ACM中列出了若干代表性语言: APT 1956,第一个专用领域语言 Fortran 1956,第一个广泛使用的高级语言,为大量的科学和工程人员打开了使用计算机的大门 Flow-Matic 1956,第一个商业数据处理语言 IPL-V 1958,第一个表处理语言 Comit 1957,第一个实用的串处理和模式匹配语言。 Cobol 1960,最广泛使用的数据处理语言。具有类英文的语法和机器独立性。 程序设计语言的发展 Algol60 1960,用于刻划算法。形式化语法定义,带动了语言的理论和实现技术研究。 Lisp 1960,引入了函数程序设计概念,基于表处理。 Jovial 1960,第一次包含了科学计算,I/O信息的逻辑操作、数据存贮和处理等能力。大多数Jovial编译器用Jovial书写。 GPSS 1961,第一个仿真语言。 Joss 1964,第一个交互式语言。 程序设计语言的发展 Formac 1964,第一个广泛使用的形式代数操作语言。 APL/360 1967,引入了许多高级操作子,允许很短的算法,产生了看问题的新方式。 Pascal 1971,在一个小语言中引入了如赋类型的新概念,并以优美方式组合了各种著名结构。 程序设计语言的发展 Formac 1964,第一个广泛使用的形式代数操作语言。 APL/360 1967,引入了许多高级操作子,允许很短的算法,产生了看问题的新方式。 Pascal 1971,在一个小语言中引入了如赋类型的新概念,并以优美方式组合了各种著名结构。 程序设计语言的发展 早期,计算机非常昂贵,语言设计是为了更高效地执行程序,高级语言需和汇编语言竞争。 60年代中期,程序设计发生了变化,机器价格下降,程序设计价格上升。程序移植的需求越来越多,软件的维护占用了大量的计算资源。此时的目标不再是编译程序后使其高效地运行,高级语言的任务变成使其易于开发正确的程序以解决某给定应用领域中的问题。 编译技术成熟于60、70年代,语言技术以解决特定领域问题为中心,如:Fortran用于科学计算,COBOL用于商业应用,JOVIAL用于军事应用,LISP用于人工智能应用,以及Ada用于嵌入式军事应用等。 程序设计语言的作用 程序设计语言也会进化和消亡,如:Algol已不再使用,Cobol使用正在下降,Pascal的很多结构仍在Ada中存在,但其黄金时代已过去。 仍在使用的旧语言也经历了不断的修订以反应来自其他计算领域的影响,Fortran和Cobol已有多个标准化标本。Ada有1995年新标准。Lisp修订后有Scheme和Common Lisp。C++和ML则反应了人们在设计和使用语言中获得的经验的混合。 程序设计语言的作用 影响语言发展的因素主要有:计算机能力、应用、程序设计方法、实现方法和标准化等,以下是相关的技术影响。 1951-55: 硬件:电子管计算机,水银延迟线内存 方法:汇编语言,基础概念:子程序,数据结构 语言:表达式编译器的实验性使用 1956-60: 硬件:磁带存储器,磁芯内存,晶体管电路 方法:早期编译技术,BNF文法,代码优化,解释器,动态存储方法和表处理 语言:FORTRAN,ALGOL 58,ALGOL 60,COBOL,LISP 程序设计语言和硬件的关系 1961-65 硬件:可兼容的体系结构家族,磁盘存储器 方法:多道程序设计操作系统,语法制导的编译器 语言:COBOL 61,ALGOL 60(修订),SNOBOL,JOVIAL,APL符号体系 1966-1970 硬件:增加尺寸和速度并降低成本,小型计算机,微程序设计,集成电路 方法:分时和交互式系统,优化编译器,翻译器书写系统 语言:APL,FORTRAN 66,COBOL 65,ALGOL 68,SNOBOL 4,BASIC,PL/1,SIMULA 67,ALGOL-W 程序设计语言和硬件的关系 1971-75 硬件:微型计算机,小型计算机时代,小型大规模存储系统,磁性内存的