Мова для кампілятара LLVM асновы

Я гляджу на рабіць некаторыя пачатковыя тэсты і эксперыменты з цацачным мовай і пабудовай кампілятара LLVM асновай, каб атрымаць некаторыя benchmarkable вынікаў.

Я разумею, што C ++ з'яўляецца «родным» і найбольш падтрымоўваным мовай LLVM, але я сапраўды не жадае выкарыстоўваць C ці C ++. Таму я шукаю на мове высокага ўзроўню, які мае стабільную і ўсталяваную падтрымку для працы з API LLVM.

Мая першая праца з Python LLVM бібліятэкі быў трохі расчаравання, так як праект, здаецца, быў пакінуты, хоць я чуў шматабяцаючыя навіны пра PyPy інтэграцыі падтрымкі LLVM ў іх рамкі, але я хацеў бы ведаць, які вопыт людзей з'яўляецца, перш чым тоне шмат часу ў любой зададзеным маршрут.

Так што маё пытанне, ёсць якія-небудзь з вас быў станоўчы досвед працы з LLVM, выкарыстоўваючы мову больш высокага ўзроўню і/або рамкі? І калі так, то якія? Ці ёсць якія-небудзь, што вы сказалі б пазбегнуць?

6
PyPy адмовіўся LLVM даволі даўно. І нават калі PyPy выкарыстоўваецца LLVM, ён будзе выкарыстоўвацца толькі як <�я> бэкенд для перакладчыкаў і JIT-кампілятары, створаных перакладчыцкай набору інструментаў, які прымае інтэрпрэтатар </я> напісана ў RPython і кампілюе гэта код нізкага ўзроўню (неабавязкова, даданне JIT і іншыя прымочак па шляху).
дададзена аўтар delnan, крыніца

1 адказы

Падмноства LLVM API падвяргаецца з дапамогай простых абгортак C. Гэта дастаткова для генерацыі коды, і можа быць выкарыстана практычна з любой мовы высокага ўзроўню. Ёсць OCaml прывязак даступныя з скрынкі (гл гэты падручнік ), а Haskell вокладкі досыць сталыя, а таксама (напрыклад, сам GHC можа скампіляваць з дапамогай LLVM). Я выкарыстаў LLVM з моў .NET на базе таксама без якіх-небудзь прывязак (толькі P/Invoke упакоўшчыкі аўтаматычна генеруецца з загалоўкаў).

6
дададзена