目录
计算机程序设计语言及编译
计算机程序设计语言的三个层次:机器语言、汇编语言和高级语言。
机器语言:可以被计算机直接理解,由于计算机只能识别0和1,所以机器语言编写的程序就是由0和1组成的序列,因此编写和阅读程序十分困难。
汇编语言:引入助记符,更加直观。但依赖于特定机器,非计算机专业人员使用受限制,编写效率低。
高级语言:类似于数学定义或自然语言的简洁形式,接近人类表达习惯,不依赖于特定机器,编写效率高。
高级语言和汇编语言只有翻译成机器语言才可以被计算机执行。
汇编:将汇编语言转换成机器语言的过程。
编译:将高级语言翻译成汇编语言或者机器语言的过程。
编译器在语言处理系统中的作用
源程序->预处理器(Preprocessor)
->经过预处理的源程序->编译器
->汇编语言程序->汇编器(Assembler)
->可重定位的机器代码->链接器(Linker)/加载器(Loader)
->目标机器代码
预处理器
:
-
把存储在不同文件中的源程序聚合在一起
-
把被称为
宏
的缩写语句转换为原始语句
可重定位(Relocatable)
:在内存中存放的起始位置不是固定的。起始位置+相对地址=绝对地址。
链接器(Linker)
:
-
将多个可重定位的机器代码文件(包括库文件)连接到一起。
-
解决外部内存地址问题,所谓外部内存地址指的是一个文件中的代码可能会引用另一个文件中的数据对象或过程,那么这些对象和过程地址相对于这个文件来说就是外部内存地址。
加载器(Loader)
:修改可重定位地址,将修改后的指令和数据放到内存中适当的位置。
留言