【JavaScript执行原理浅析】程序设计语言及其翻译
程序设计语言
文章目录
机器语言(Machine Language)与汇编语言(Assemble Language)
- 0、 1代码与助记符:更接近于计算机硬件指令系统的工作
高级语言(High Level Language)
- 其表示方法更接近于待解问题的表示方法
- 定义数据、描述运算、控制流程、传输数据
如: C、 FORTRAN、 PASCAL、 C++、 JAVA、 SQL(数据定义、数据操作)
命令语言(Command Language)
- 控制系统的工作——以功能封装为特征如UNIX上的shell
强制式(命令式)语言(Imperative Language)
- 通过指明一系列可执行的运算及运算的次序来描述计算过程的语言;
- FORTRAN(段结构)、 BASIC、 Pascal(嵌套结构)、C……
- 程序的层次性和抽象性不高
申述式语言( Declarative Language)
- 着重描述要处理什么,而非如何处理的非命令式语言
- 函数(应用)式语言(Functional Language)
- 基本运算单位是函数,如LISP、 ML……
- 逻辑式(基于规则)语言(Logical Language)
- 基本运算单位是谓词,如Prolog, Yacc……
面向对象语言(Object-Oriented Language)
- 以对象为核心,如Smalltalk、 C++ 、 Java、Ada(程序包)……
- 具有识认性(对象)、类别性(类)、多态性和继承性
程序设计语言的翻译
翻译程序(Translator)
将某一种语言描述的程序(源程序——SourceProgram)翻译成等价的另一种语言描述的程序(目标程序——Object Program)的程序。
解释程序(Interpreter)
- 一边解释一边执行的翻译程序
- 口译与笔译(单句提交与整篇提交)
编译程序(Compiler)
- 将源程序完整地转换成机器语言程序或汇编语言程序,然后再处理、执行的翻译程序
- 高级语言程序→汇编/机器语言程序
其它翻译程序:
- 汇编程序(Assembler)
- 交叉汇编程序(Cross Assembler)
- 反汇编程序( Disassembler)
- 交叉编译程序( Cross Compiler)
- 反编译程序( Decompiler)
- 可变目标编译程序( Retargetable Compiler)
- 并行编译程序( Parallelizing Compiler)
- 诊断编译程序( Diagnostic Compiler)
- 优化编译程序( Optimizing Compiler)