语言处理器


title: 2019-1-13
tags: 编译原理
grammar_cjkRuby: true

语言处理器

编译器 :

Created with Raphaël 2.2.0源程序编译器目标程序

可以发现源程序的错误

解释器 :

Created with Raphaël 2.2.0输入&执行源程序解释器输出

对比:
把用户输入映射为输出过程中,编译过的机器语言目标程序效率快于解释器,但诊断错误效果不如解释器(逐个语句执行源代码)

Java语言处理器

Created with Raphaël 2.2.0Java源程序翻译器中间程序(字节码)&输入JVM输出

一个语言处理系统

Created with Raphaël 2.2.0源程序预处理器预处理的源程序编译器目标汇编程序汇编器可重定位机器码链接器/加载器目标机器代码

汇编语言:容易调试输出
大程序分多个部分编译,因此,会多个可重定位机器码以及库文件链接到一起,形成机器码。一个文件中的代码可能指向另一个文件的位置,而链接器能够解决外部内存的问题。最后,加载器把所有可执行代码放入内存执行。

一个编译器的结构

一个编译器的各个步骤

Created with Raphaël 2.2.0字符流词法分析器符号流语法分析器语法树语义分析语法树中间代码生成器中间表示形式机器无关代码优化器中间表示形式代码生成器目标机器语言机器相关代码优化器目标机器语言

词法分析

亦称为“扫描”
在这里插入图片描述

语法分析

在这里插入图片描述

没有更多推荐了,返回首页