Electronic Joint Business

Solution for E-Business

编写 GCC 前端

文章评价: 一、简介 这篇文章演示了如何为 GCC 创建新的前端的基本步骤,它可以帮你在 GCC 编译工具链的基础上创建自己的编译器。另外本文还囊括了一些基础工具的使用方法,如 Bison 和 Flex。阅读本文需要 C 语言的基础知识。你还可以参考介绍编译器基本原理的文章,这可以让你更好地理解相关的内容。1 本文会演示如何在 GCC 编译工具链中添加一种新的迷你语言。虽然 GNU Internal 这部手册已经详细介绍了 GCC 的内部机理,但对新手来说,其内容实在多得可怕。通过本文中的例子,新手也可以开始着手摆弄复杂的 GCC 基础代码。 二、编译器基础知识 编译器本质上就是个翻译器,它读入程序的源代码并将其转换成目标语言,目标语言通常是真实(或虚拟)处理器的汇编代码。设计一个真正的编译器是项复杂的工作,需要有计算机科学和数学的正规课程的背景。 整个编译过程可分为一定量的子任务,也被称为阶段(phase)。通常会涉及以下阶段: 词法分析 – Lexical analysis 语法分析 – Syntax analysis 生成中间代码 – Intermediate code generation 代码优化 – Code Optimization 代码生成 – Code generation 上述所有阶段都会用到符号表和错误处理器。我们先来看一下这些阶段: 词法分析 词法分析会读入源程序并产生标记(token)。标记是不可分割的单元,具体表现为字符的某种序列。它们可被视为单一逻辑实体。标识符、关键字、常数、操作符、标点符号等都是一些具体的标记。比方说下面这条 C 语句。 return 5; 该语句有 3 […]

, , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.