可以用 LLVM 實現 C 嗎?

時間 2021-06-01 14:59:42

1樓:陸明非

llvm ir其實是另外一門更low level的語言,它提供了強大的指令集給大家用.理論上它可以用來作為大部分靜態語言的後端,因為他抽象的夠好.唯一的問題是如何把語言轉化為llvm ir,這就需要寫乙個前端來parse,生成ast,最後codegen成llvm-ir.

2樓:RednaxelaFX

LLVM只管編譯器後端;編譯器前端還得自己解決。

「用LLVM實現C#」,就是說要基於LLVM寫乙個C#編譯器。這當然是可以的,啥編譯器都需要乙個後端。

但題主所想像的編譯器到底是以什麼為編譯目標的呢?是以MSIL為編譯目標,還是以native code?

如果是以MSIL為編譯目標,那對比物件就是微軟的csc / Roslyn。它們讀取C#原始碼文字,編譯生成MSIL。這種場景其實不咋需要LLVM出場。

如果是以native code為編譯目標,那對比物件就是例如CLR裡的JIT編譯器(們)。它們讀取MSIL,編譯生成native code。

在第二種場景裡,其實已經有好些實際專案了。

乙個是最近正新鮮出爐的、微軟自家產的LLILC。我在這裡寫了問題和回答:如何看待微軟新出的LLILC,乙個新的基於LLVM的CoreCLR JIT/AOT編譯器?

- RednaxelaFX 的回答

然後Mono也有基於LLVM的JIT編譯器後端:Mono LLVM | Mono

還有一大堆愛好者們寫的版本,例如這個C# Native

3樓:羊牮

不明白你指的是什麼,你知道這個嗎?

如何看待微軟新出的LLILC,乙個新的基於LLVM的CoreCLR JIT/AOT編譯器? - 即時編譯(JIT)

大學學C 可以用mac嘛?

學什麼語言跟用什麼系統沒有必然關係 如果只是學習,又沒接觸過unix 類unix系統,例如完全沒用過macOS或者linux,建議還是從windows入手,畢竟大部分大學教材都是用windows 逸塵風 可以的,不過確實是配環境比較麻煩勸退一些。不過你經歷過這些之後,以後你學習其他語言進行配環境的時...

可以用c4d做室內效果圖嗎?

Sebastian 我就是用c4d做室內的,做圖沒有任何問題,軟體用熟練速度都差不太多。唯一的問題可能就是別人用3d你用c4d沒法一起工作.另外模型資源這種,盡量少用。用多了你自己的設計就做不出來了。 海盜盜 完全可以,C4D也可以裝VR渲染木得問題。而且操作上個人感覺C4D可操作性更強,更有優勢些...

欲 可以用 欲 嗎?

欲 應該是正確的 雖然我也不明白 欲 可以用助詞 霓虹人經常使用 欲 這種用法 就算你告訴 欲 用法是錯誤的,但無論是辭典上的記錄還是霓虹人的用法都告訴我們的確可以這樣用,很 迷惑 啊!真的很迷惑! 有個未經證實或證偽的猜想,分享一下 欲 在搶占 欲 的定義域,原因是和英語want的雙語互譯。在一般...