2012-08-08 61 views
0

我一直在环顾四周,可能只是无法在我的搜索中放入正确的术语,因为我不知道这会被称为什么。我翻译了大量的口译员,但我不认为这就是我想要的。假设我想在Visual C++(2010,如果真的很重要)中使用C++的基本语法,但是将它编译成我自己的格式。所以,我会带:更改Visual C++编译

if(myVar == 1) 

而不是让VC++组装的话,我可以以某种方式重写(而无需建立自己的该死的编译器),以我自己的字节码是这样的:

1F00EE01 

在我虚构的字节码语言中,1F表示IF,00是变量号(按某些确定的变量顺序),EE是运算符'等于',01是自然角色。

显然它会比这更复杂一点,但现在我只是猜测。只是寻找任何方式来使用VC++解析已经很好建立的语言,而不是创建自己的语言并改变编译结果。现在我把它写下来了,但这个想法看起来很荒谬,但希望尽管答复仍然会很有趣。

+0

如果你想玩编译器,看看它是如何工作的,用gcc这样的开源编译器会更好。但是如果你对编译器和解释器感兴趣,我认为你最好找一本书或者一本教程,然后试着写一本书。 MSVS真的是一个“黑盒子”(而且是一个非常大,复杂而复杂的)!开放源代码编译器不是“黑色” - 但可以是每一个一样大而复杂。从小开始,从头开始。恕我直言... – paulsm4 2012-08-08 02:37:47

+0

试图从小开始是有意向的。我试图不必建立一个编译器(认识到关键字,缩进,值等,对我来说似乎都太过分了)。我在想,如果使用#define作为一个宏(我听说可能)会'超载'一个IF,它可以将它变成一个函数,在那里我可以编写代码来编写正确的字节码(所以有点像构建一个应用程序用另一种语言编译)。功能会很容易。这只是关键字和运营商,这将是一个痛苦的变化。 – Deji 2012-08-08 02:48:08

+0

您可以告诉Visual Studio使用任何您想要的编译器,但是不会有任何编译器可以轻松更改输出格式。即使你使用像GCC这样的开源和体系结构,它也会涉及到编码的问题。 – 2012-08-08 06:55:53

回答

0

MSVC有一个内置的编译器,没有办法改变它。

它有一个不可扩展的可能的目标平台的列表。

+0

对,我想我会更好地更换cl.exe并从头构建我自己的编译器,然后......但它对我来说似乎有点太大了。 – Deji 2012-08-08 02:50:07

+0

写几句话,你想达到什么目的。新语言?新的目标平台?例如:我有我自己的编译器前端。这听起来有趣吗? – 2012-08-08 02:51:43

+0

我基本上迎合了游戏中预先存在的字节码解析器。在逐字节地读取一个文件以确定在游戏中做什么是非常基本的。所以我们在这里不是在讲一种编程语言。但是我希望能够用基本C++编写的编码语言。 – Deji 2012-08-08 02:59:32