2

我一直在編寫一些verilog代碼來創建具有自己的指令集的簡單微處理器模擬。到目前爲止,我一直在編譯我的所有代碼,並使用十六進制編輯器生成可用作啓動程序內存的二進制文件。現在我需要將一些流行的語言(如C或BASIC)編譯到我的指令集中,並且由於編寫自己的編譯器似乎是非常困難和長期的任務,我正在尋找可以以某種方式擴展的編譯器, s源代碼可以簡單地重寫爲不同的指令。擴展編譯器以獲取自己的彙編輸出

有沒有辦法做到這一點?這種編譯器是否存在?

+0

你有沒有考慮過? – thebjorn

+0

我沒有,我從來沒有用過任何編譯器。 – user35443

+1

它可能會花費你不到一天的時間來充分學習這種項目。這是什麼擅長的。有關更多信息,請訪問www.forth.com。 – thebjorn

回答

2

像C這樣的東西,這將是一個非常複雜的任務。比編寫一些簡單語言的編譯器更復雜。但是,如果你想這樣,看看GCC。它是開源的,旨在爲新平臺提供可擴展性。此外,它支持組合多個前端(編程語言)和後端(針對目標平臺的生成器)。但是,如果您的活動只是爲了學習某些東西而不是實際設計新的生產微處理器,我寧願選擇一些簡單語言的子集(如Pascal)並編寫一個簡單的編譯器。你最終可能會得到一些10k-20k的代碼,並且會很有趣。

+0

謝謝。我會用GCC和LLVM來嘗試。 – user35443