编译原理-第一章 引论-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.对编译器的影响

  程序设计语言与编译器密切相关,编译器应有相应的算法和表示方式来翻译和支持新的语言特征,编译器通过降低高级语言程序的执行开销,可以推动高级语言的使用。

 

参考-《编译原理(第二版)》

posted @ 2020-03-04 21:09  方知有  阅读(534)  评论(0编辑  收藏  举报