上一页 下一页 目录

1. 简介

本文档介绍了创建新的 GCC 前端所需的步骤。它将帮助您借助 GNU 编译器套件创建自己的编译器。文档中还提供了关于 Bison 和 Flex 等工具的基本信息,以使文档成为独立的整体。

我假设您对 C 编程语言有扎实的知识。对编译器的一般概念将有助于您更好地理解本文档。如果您希望进行自己的实验,请从 http://gcc.gnu.org 下载 GCC 的源代码。

1.1 文档的新版本

本文档的这个版本将帮助您开发基本的语言结构。后续修订版将侧重于更复杂的问题。

1.2 反馈和更正

本文档可能存在错误,因为我是根据我对前端的实际实验编写的。可能在我理解事物的方式上存在错误。请告知我有关错误的信息,以便我可以在下一个版本中更正它们。我始终欢迎建议和批评。您可以通过 sreejithkmenon@yahoo.com 联系我

1.3 我为什么写这篇文章

我最初尝试向 GNU 编译器套件添加一种小型语言。即使有一本优秀的manual描述了 GCC 内部结构,我仍然觉得它对新手黑客来说有点吓人。我考虑记录我的实验,以便即使是新手程序员也可以开始摆弄复杂的 GCC 代码库。

1.4 发行政策

版权所有 (C)2002 Sreejith K Menon。

本文档是自由的;您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新发布和/或修改它;无论是许可证的第 2 版,还是(根据您的选择)任何后续版本。

发布本文档是希望它能有用,但**不提供任何担保**;甚至不提供关于适销性或针对特定用途适用性的暗示担保。有关更多详细信息,请参阅 GNU 通用公共许可证。

1.5 致谢

本文档是在 Government Engineering College, Trichur (GECT) 进行的密集型“代码阅读”实验的副产品。学生们被要求阅读和摆弄相当复杂的系统软件的源代码,以便让他们了解大型系统是如何设计和维护的 - 我们中的一些人专注于 GCC 前端,另一些人专注于后端(我们希望很快能有一份关于破解 GCC 后端的文档!)。那些对操作系统有天赋的人有机会研究 Linux 文件系统、调度器、VM 子系统和网络堆栈。

我感谢整个自由软件社区,感谢他们给我机会使用有用(且令人兴奋!)的程序的源代码。我感谢 GECT 计算机科学系教职员工对教育的投入。感谢 Pramode C.E 先生引导我了解 Linux 和编译器。

我感谢 Tim Josling,他创建了一个小巧而美观的前端,这在我的所有实验中都对我有很大帮助。


上一页 下一页 目录