书小宅之编程语言——编译与执行

  • 计算机语言主要分为三类:1)低级语言包括机器语言、汇编语言、符号语言等;2)高级语言包括BASIC、C、PASCAL、FORTRAN、智能化语言等等;3)专业语言包括CAD系统中的绘图语言和DBMS的数据库查询语言。
  • 高级程序设计语言编写的源程序需要先经过 编译 转换成机器语言的目标程序,然后再把目标程序和各种的标准库函数 链接 装配成一个完整的可执行的机器语言程序才能执行。
  • 汇编语言依赖于机器,高级程序设计不依赖于机器,有良好的可移植性。
  • 用0、1编制的机器语言是计算机能够直接识别和处理的语言,汇编语言和高级语言都必须先翻译成机器语言程序(目标程序)才能被执行。

编译型和解释型语言

1、编译型语言:首先通过编译器将源代码编译(compile)生成机器指令,链接(linker)把各个模块的机器码和依赖库串连起来生成可执行文件,再由机器运行机器指令 (二进制)。
运行时不需要进行编译,有修改则需要重新编译,执行效率高。【C、Visual C++、Visual Basic】
2、释型型语言:源代码不是直接翻译成机器指令,而是先翻译成中间代码,在运行程序的时候才逐行翻译。
有良好的平台兼容性,执行效率较低。【JavaScript、Python、PHP】
3、混合型语言:**【Java】**先生成字节码再在Java虚拟机中解释执行。

C语言的翻译层次

书小宅之编程语言——编译与执行_第1张图片
链接器:将多个模块和库程序组合在一起解析所有的引用。
加载器:将可执行程序加载到内存的适当位置,然后处理器可以执行。加载器调用一个动态链接器,使用文件中的额外信息来倒找适当的库并且更新所有外部引用。

  • 静态链接库:库程序成为可执行代码的一部分,不便于程序的更新。尽管不会使用库中的某些部分,库中的所有内容会被加载进程序。
  • 动态链接库:直到程序运行的时候,库的例程才会被链接并加载。

Java的翻译层次

书小宅之编程语言——编译与执行_第2张图片
java程序首先被编译成一个二进制版本的java字节码形式,其中由编译器定义所有的地址。字节码文件可以在解释器(java虚拟机上运行),运行时,java虚拟机链接java库中一些需要调用的函数。及时编译器在运行它的电脑上能够选择性地把一些方法编译成宿主机上地本地机器语言,以此得到更高的性能。
书小宅之编程语言——编译与执行_第3张图片

你可能感兴趣的:(概念论述,解释型语言,编译型语言,混合型语言,动态链接,静态链接)