Tag: 编译器构造

编译器testing用例或如何testing编译器

编译器像所有的软件一样,也容易出现错误,逻辑错误。 如何validation编译器生成的输出。 通常,我的问题是(是) 如何validation生成的机器码是否正确? 如何确保生成的机器码符合语言规范。 仅仅select一个开源项目(在C语言中,如果一个人正在用C编写一个编译器)只是通过“编译器”编译它是否有意义。 在这种情况下,如何判断编译器是否按预期运行。 是否有语言标准委员会提供的正式testing用例(文献)是“符合语言的”编译器必须满足的? 什么是肯定的“放弃”,编译器编译的程序中的问题是编译器错误,而不是程序错误。 – 主stream编译器混淆并编译错误的例子? 链接到任何文学将不胜感激。

parsing树和抽象语法树有什么区别?

我在一本编译器devise书中find了这两个术语,我想知道它们各自的含义,以及它们的不同之处。 我在互联网上search,发现parsing树也被称为具体语法树(CST)。

Python编译/解释过程

我试图更清楚地了解Python编译器/解释器的过程。 不幸的是,我还没有在翻译课上课,也没有多读这些课。 基本上,我现在明白的是,.py文件中的Python代码首先被编译成python字节码(我认为它是偶尔看到的.pyc文件)。 接下来,字节码被编译成机器代码,这是处理器实际理解的一种语言。 很多,我读过这个线程为什么Python解释之前编译源代码字节码? 有人能够对我的整个过程给予一个很好的解释,记住我对编译器/解释器的知识几乎是不存在的? 或者,如果这是不可能的,也许给我一些资源,快速浏览编译器/口译? 谢谢

禁用g ++的返回值优化

我需要在命令行上使用哪些标志来禁用g ++编译器自动启用的返回值优化?

什么是“堆栈alignment”?

什么是堆栈alignment? 为什么使用? 它可以通过编译器设置来控制吗? 这个问题的细节是从尝试使用msfc使用ffmpeg库时面临的一个问题,但是我真正感兴趣的是解释什么是“堆栈alignment”。 细节: 当运行我的msvc complied程序链接到avcodec我得到以下错误:“编译器没有alignment堆栈variables。libavcodec已被编译错误”,其次是在avcodec.dll崩溃。 avcodec.dll没有编译与msvc,所以我无法看到里面发生了什么。 当运行ffmpeg.exe和使用相同的avcodec.dll一切正常。 ffmpeg.exe没有用msvc编译,它被编译为gcc / mingw(与avcodec.dll相同) 谢谢, 担

JavaScriptparsing器生成器

我见过一些JavaScriptparsing器生成器: Jison( http://zaach.github.com/jison/ ) PEG.js( http://pegjs.majda.cz/ ) ANTLR( http://www.antlr.org/ ) JS / CC( http://jscc.jmksf.com/ ) 有没有人有任何经验? 优缺点都有什么? 这些库准备好了吗? 和性能? 编辑 : 我想parsing和运行在JavaScript中的另一种语言

如何创build自定义CPU的C编译器?

假设我已经有了一个汇编器,那么为自定义CPU创build一个C编译器最简单的方法是什么? 由于C编译器生成汇编,有没有办法为各种C语言定义标准位和汇编代码段,重新编译编译器,从而获得目标硬件的交叉编译器? 编译器本身最好用C语言编写,构build为Linux或Windows的本地可执行文件。 请注意:我不问如何编写自己的编译器。 我在大学里学过这门课程,我知道一般的编译器编译器等等。在这种情况下,我只想configuration一些现有的框架,如果可能的话。 我不想修改语言,我只想要能够针对任意的架构。 如果答案是“这种方式不行”, 那么这些信息对于我自己和其他任何可能作出类似假设的人都是有用的。

多行DEFINE指令?

我不是专家,所以对我很容易。 这两个代码段有什么区别? #define BIT3 (0x1 < < 3) static int a; 和 #define BIT3 (0x1 << 3) static int a; 另外,有没有办法在一行写第一个? 这种多线式的点是什么? 下面的代码好吗? #define BIT3 (0x1 << 3) static int a;

有一个简单的编译器为小语言

我正在寻找一个简单的编译器,编译一个简单的语言,我需要它写一个关于它的文件,并学习编译器如何工作,我不是一个简单的语言寻找一个复杂的东西(简单来说,我的意思是一个小代码,因为例如海湾合作委员会太toooooo大)。 任何帮助表示赞赏。

将JavaScript代码转换为C代码

有什么办法将C代码转换为JavaScript,并从JavaScript转换为C? 我发现了可以从C ++生成JavaScript-side类的V8 juice ,但它只是一种方式(C ++到JavaScript)。 我不是在寻找一个软件。