【问题标题】:Building code with a self-designed C compiler使用自行设计的 C 编译器构建代码
【发布时间】:2012-11-11 23:29:53
【问题描述】:

作为我大学项目的一部分,我们应该开发一个 C 编译器。词法分析器和解析器部分已经结束 - Flex 和 Bison 工具使我们的艰巨任务变得更加简单。现在我们陷入困境的是我们无法继续进行该项目。一旦我们掌握了这三个文件,具体如何进行:

  • y.tab.h
  • y.tab.c
  • lex.yy.c

我们还设法通过在 DOS 提示符下使用以下命令生成了一个可执行文件

gcc lex.yy.c y.tab.c -o 示例1

我得到了可执行的 example.exe... 现在如何继续让编译器运行?如何获取它来构建用户 C 代码?

【问题讨论】:

  • 您的编译器内部设计有问题吗?或者问题是如何将您的代码与 bison 和 flex 的输出链接?

标签: c compiler-construction


【解决方案1】:

您应该检查您的example.exe 是否可以读取 C 程序并报告任何语法错误。

如果不能,请修复您的 .y 和/或 .l 文件,然后重试。

如果可以的话,太好了,你有一个可以工作的解析器。现在把它变成一个工作编译器。继续向.y 文件添加代码(称为语义操作),实现越来越多的编译器功能。首先,确保您可以报告语义错误,例如无效类型或缺少声明。然后实现汇编代码生成。

.y 文件变得太大时,将一些代码转换为函数并将它们移动到单独的.c 文件中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 2022-01-18
    • 2014-08-22
    • 1970-01-01
    相关资源
    最近更新 更多