语言的总体体系:

1. 编译型语言:做好一桌饭菜,再开吃。首先将源代码编译,再生成机器语言。

                       编译型语言快,但缺点是跟平台关联性强。


         上图为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

     是一种解释性的语言,有解释器来解释,不需编译,可直接使用。

     程序代码是脚本程序,亦是最终可执行文件。




















Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐