我一直在环顾四周,可能只是无法在我的搜索中放入正确的术语,因为我不知道这会被称为什么。我翻译了大量的口译员,但我不认为这就是我想要的。假设我想在Visual C++(2010,如果真的很重要)中使用C++的基本语法,但是将它编译成我自己的格式。所以,我会带:更改Visual C++编译
if(myVar == 1)
而不是让VC++组装的话,我可以以某种方式重写(而无需建立自己的该死的编译器),以我自己的字节码是这样的:
1F00EE01
在我虚构的字节码语言中,1F表示IF,00是变量号(按某些确定的变量顺序),EE是运算符'等于',01是自然角色。
显然它会比这更复杂一点,但现在我只是猜测。只是寻找任何方式来使用VC++解析已经很好建立的语言,而不是创建自己的语言并改变编译结果。现在我把它写下来了,但这个想法看起来很荒谬,但希望尽管答复仍然会很有趣。
如果你想玩编译器,看看它是如何工作的,用gcc这样的开源编译器会更好。但是如果你对编译器和解释器感兴趣,我认为你最好找一本书或者一本教程,然后试着写一本书。 MSVS真的是一个“黑盒子”(而且是一个非常大,复杂而复杂的)!开放源代码编译器不是“黑色” - 但可以是每一个一样大而复杂。从小开始,从头开始。恕我直言... – paulsm4 2012-08-08 02:37:47
试图从小开始是有意向的。我试图不必建立一个编译器(认识到关键字,缩进,值等,对我来说似乎都太过分了)。我在想,如果使用#define作为一个宏(我听说可能)会'超载'一个IF,它可以将它变成一个函数,在那里我可以编写代码来编写正确的字节码(所以有点像构建一个应用程序用另一种语言编译)。功能会很容易。这只是关键字和运营商,这将是一个痛苦的变化。 – Deji 2012-08-08 02:48:08
您可以告诉Visual Studio使用任何您想要的编译器,但是不会有任何编译器可以轻松更改输出格式。即使你使用像GCC这样的开源和体系结构,它也会涉及到编码的问题。 – 2012-08-08 06:55:53