2012-08-08 92 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