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

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

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

  • 相关阅读:
    csp-s考试总结
    一种贪心
    P2463 [SDOI2008]Sandy的卡片
    P3294 [SCOI2016]背单词
    *UOJ#164. 【清华集训2015】V
    P5503 [JSOI2016]灯塔
    *P3515 [POI2011]Lightning Conductor
    P4585 [FJOI2015]火星商店问题
    求最短路必经边
    P1903 [国家集训队]数颜色 / 维护队列
  • 原文地址:https://www.cnblogs.com/fangzhiyou/p/12407873.html
Copyright © 2020-2023  润新知