编程语言的分类

编程语言的分类

标记语言

标记语言,是一种将文本(Text)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。不用于向计算机发出指令,常用于格式化链接

标记语言不算是编程语言!


语言处理器

  • 编译器

    • 编译器将源语言编写的程序,翻译成一个等价的、用另一种目标语言编写的程序。
    • 编译器生成的目标程序用来处理输入并产生输出。
    • 优点:将输入映射成为输出的过程更快。
  • 解释器

    • 解释器直接利用用户提供的输入执行源程序中指定的操作。
    • 逐个语句地执行源程序。
    • 优点:错误诊断效果好
  • 特别的:Java

    • Java语言处理器结合了编译和解释过程。
    • Java源程序首先被编译成字节码的中间表现形式,然后由一个虚拟机对字节码和输入加以解释执行。
    • 优点:在一台机器上编译得到的字节码可以在另一台机器上解释执行。即:一次编译,到处执行。

编程语言的分类

相关图书
  • Programming Languages: Application and Interpretation
  • Essentials of Programming Languages(EOPL)
  • Structure and Interpretation of Computer Programs(SICP)
通过语言的代类分类
  • 第一代语言:机器语言
  • 第二代语言:汇编语言
  • 第三代语言:高级程序设计语言(Fortran、Cobol、Lisp、C、C++、C#、Java等)
  • 第四代语言:为特定应用设计的语言(NOMAD、SQL、Postscript等)
  • 第五代语言:基于逻辑和约束的语言(Prolog、OPS5等)
另一种分类
  • 强制式语言:程序中指明如何完成一个计算任务的语言。(C、C++、C#、Java等)
    所有强制式语言中都有用于表示程序状态和语句的表示方法,这些语句都可以改变程序状态。
  • 声明式语言:程序中知名要进行哪些计算的语言。(ML、Haskell这样的函数式语言和Prolog这样的约束逻辑语言)
通过对数据类型的要求分类

参考链接:弱类型、强类型、动态类型、静态类型语言的区别是什么?

  • 强类型语言:偏向于不容忍隐式类型转换。
  • 弱类型语言:偏向于容忍隐式类型转换。
静态和动态策略分类
  • 静态策略(static policy):支持编译器静态决定某个问题,或者说这个问题可以在编译时刻(compile time)决定。
  • 动态策略(dynamic policy):只允许在运行程序的时候做出决定的策略,或者说这个问题需要在运行时刻(run time)决定。
另一种分类
  • 低级语言:机器语言、汇编语言和符号语言。
  • 高级语言:高级语言源程序可以用解释、编译两种方式执行。
  • 专用语言
  • 脚本语言
其它
  • 冯诺依曼语言:以冯诺依曼计算机体系结构为计算模型的程序设计语言。(Fortran、C)
  • 面向对象语言:支持面向对象编程的语言。(早期的有Simula67和Smalltalk,现在常用的有C++、C#、Java、Ruby等)
  • 脚本语言:具有高层次运算符的解释性语言。(Awk、Javascript、Perl、PHP、Python、Ruby、Tcl等)
    它通常用于将多个计算过程粘合在一起,这些计算过程被称为脚本。
    优点:通常比用其他语言写的等价程序短很多。

posted @ 2017-08-06 23:02  why2cs  阅读(316)  评论(0编辑  收藏  举报