编译原理-第一章 引论-C和Java编译系统

Posted 方知有

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译原理-第一章 引论-C和Java编译系统相关的知识,希望对你有一定的参考价值。

C语言的编译系统:

  

  • 预处理:实现文件包含#include<stdio.h>;实现宏展开#define pi 3.1415926;条件编译#if、#ifdef
  • 汇编器:对输入进行两遍扫描。
    • 第一遍:汇编器扫描输入,将表示存储单元的所有标识符都存入符号表,并分配地址。
    • 第二遍:汇编器再次扫描输入,把每个操作码翻译成机器语言中代表那个操作的位串,并把代表存储单元的每个标识符翻译成为符号表中为这个标识符分配的地址。
  • 连接器:收集、组织程序所需的不同代码和数据。
    • 静态连接器:将多个可重定位目标文件组成一个可执行目标文件(也可以组成一个可重定位目标文件)。
    • 动态连接器:支持在内存中的可执行程序在执行时与共享目标文件进行动态的链接。

 

JAVA语言的编译系统:

         

  • 一般的高级语言程序如果要在不同的平台上运行,至少需要编译成不同的目标代码。
  • 既要编译,又要解释;编译只有一次,程序执行时解释执行;通过编译器,把Java程序翻译成一种中间代码——字节码,然后通过JVM解释成相应平台的语言。
  • Java虚拟机技术是实现Java的平台无关性特点的关键。
    • Java虚拟机语言(简称JVML)
    • JVML程序只需与虚拟机交互,不需要关心底层的硬件和操作系统。

 

参考-慕课-苏州大学-王中卿老师 

 

以上是关于编译原理-第一章 引论-C和Java编译系统的主要内容,如果未能解决你的问题,请参考以下文章

编译原理第一章学习(习题解答)

c++C++面试知识1——第一章 编译内存相关

三万五千字长文!让你懂透编译原理——第六章 属性文法和语法制导翻译

编译原理:引论

编译原理--引论

六万字长文!让你懂透编译原理——第七章 语义分析和中间代码产生