编译原理-第一章 引论-1.3 程序设计语言的发展历程
1.走向高级程序设计语言
- 通过语言的代来分类:
- 第一代:机器语言
- 第二代:汇编语言
- 第三代:Fortran、Cobol、Lisp、C、C++、Java这样的一些高级程序设计语言
- 第四代:为特定应用设计的语言,比如用于生成报告的NOMAD,用于数据库查询的SQL和用于排版的Postscript
- 第五代:指基于逻辑和约束的语言,比如Prolog和OPS5
- 通过语言的运行方式分类:
- 强制式:程序中指明如何完成一个计算任务的语言,语言中有用于表示程序状态和语句的表示方法,这些语句可以改变程序状态,比如C、C++、C#和Java等
- 声明式:程序中指明要进行哪些计算的语言,比如ML、Haskell这样的函数式语言和Prolog这样的约束逻辑语言
- 冯·诺伊曼语言:指以冯·诺伊曼计算机体系结构为计算模型的程序设计语言,现在的大部分语言都是冯·诺伊曼语言
- 面向对象语言:指支持面向对象编程的语言,面向对象编程是指用一组相互作用的对象组成程序的编程风格,比如Smalltalk、C++、C#、Java、Ruby等
- 脚本语言:指具有高层次运算符的解释型语言,它常被用于把多个计算过程“粘合”在一起。这些计算过程被称为脚本,脚本语言程序通常比其他语言写的等价程序短很多。如Javascript、Perl、Python、Ruby等
高级语言翻译成为机器语言,计算机才能执行高级语言编写的程序,翻译有两种方式:
-
- 编译:一次性编译成机器语言文件,不用重新编译,效率高。
- 解释:每个语句都是执行时才翻译,每执行一次就翻译一次,效率比较低。
2.对编译器的影响
程序设计语言与编译器密切相关,编译器应有相应的算法和表示方式来翻译和支持新的语言特征,编译器通过降低高级语言程序的执行开销,可以推动高级语言的使用。
参考-《编译原理(第二版)》
作者:方知有
Motto: 热爱可抵岁月漫长
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
所有评论和私信都会在第一时间处理,如有问题或建议,请多多赐教!
支持博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!