高级语言分为静态语言和脚本语言,静态编程语言和动态编程语言的区别

  高级语言分为静态语言和脚本语言,静态编程语言和动态编程语言的区别

  

语言的总体体系:

  00:

1.编译型语言:

开始吃饭前做好饭。先编译源代码,再生成机器语言。

  c语言编译速度快,但缺点是与平台相关性强。

  

上图为C程序在Windows下的编译过程,其中exe为Windows的可执行文件,并不是其他系统的可执行文件

  

1)预处理:

读取c/c源程序,处理以#开头的指令。删除所有评论。

  

2)编译:

生成汇编代码文件。

  

3)汇编:

将汇编代码文件翻译成机器指令。

  

4)链接:

通过连接器将目标文件链接在一起,形成一个完整的可执行程序。

  

2. 解释型语言

:吃火锅,煮着吃。翻译成中间代码,通过解释器运行。源代码不直接翻译成机器语言。

  

扩展一:

  

1.跨平台:

即不依赖于操作系统,也不依赖于硬件环境。泛指程序语言

,软件或硬件设备可以运行在具有多个操作系统或不同硬件架构的计算机上。在一个操作系统下开发的应用程序仍然可以在另一个操作系统下运行。

  2.虚拟机:

通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整的计算机系统(系统软件)。

  

3.JVM(Java Virtual Machine):

也是一个计算机软件,不同平台有不同的版本。JVM负责将.class字节码文件解释成特定平台下的机器码,然后运行。在不同平台下安装对应的JVM,就可以运行字节码文件,因此,运行Java程序必须要有JVM的支持。不同平台下编译生成的字节码是一样的,但由JVM解释生成的机器码是不一样的。所以说,跨平台的是Java程序,而不是JVM。

  

  

JVM实现跨平台

  

扩展二:

  

  (注:此图来自《Struts2技术内幕——深入解析Struts2架构设计与实现原理》 P44)

  

扩展三:编译器与解释器

  解释器不生成目标程序,它直接执行源程序或源程序的内部形式。解释器和编译器的主要区别在于是否生成了目标程序。编译器将高级语言程序处理成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。说明解释性语言和编程语言之间的区别;

  

3.脚本语言:

Python、JavaScript、PHP

  它是一种解释性语言,可以用解释器解释,不需要编译就可以直接使用。

  代码是一个脚本程序和最终的可执行文件。

  

  

高级语言分为静态语言和脚本语言,静态编程语言和动态编程语言的区别