2010-08-24 7 views
7

क्या सी # में एलएलवीएम फ्रंट एंड कंपाइलर लिखने का कोई तरीका है?क्या सी # में एलएलवीएम फ्रंट एंड कंपाइलर लिखने का कोई तरीका है?

+8

सी # या सी # –

+1

सी # # सी # (एफटीएफई) – leppie

+0

सी # में सी # में। [15 वर्ण] –

उत्तर

9

मैं क्यों नहीं दिखाई नहीं देता। वहाँ एक language reference for LLVM है और जब तक आप भाषा के अनुरूप थी, वहाँ कोई कारण नहीं है कि आप सी # में जो कुछ है कि भाषा और या तो पार्स होगा नहीं लिख सकता है: (क तरह भाषा के आधार पर

  • उत्पादन उत्पादन वास्तविक समय दुभाषिया)
  • सी # में एक विधानसभा जो LLVM निर्देश

यह हो जाएगा आसान कहने के लिए नहीं है निष्पादित करेंगे बनाएं, लेकिन यह किया जा सकता है।

+3

अपडेट हटा दूंगा: सी # के लिए बिटकोड/ll पार्सर/लेखक लिखने की कोशिश न करें, इसके बजाय कुछ bindings जैसे [llvm-fs] (https: // github.com/keithshep/llvm-fs) या [LLVM.NET] (https://github.com/aaronrandolph/LLVM.NET) (जो मैंने कोशिश नहीं की है)। –

+1

http://www.llvmsharp.org - अस्वीकरण, मैं इनके लेखक हूं। – mjsabby

1

आप सी # के लिए एक LLVM संकलक के लिए देख रहे हैं, Mono 2.6 can use LLVM

+1

नहीं, मैं एक एलएलवीएम कंपाइलर इन सी # लिखना चाहता हूं। –

+0

यदि आप चाहते हैं, तो मैं भविष्य में लोगों के लिए यह anwser –

3

दो तरीके हैं। आप एलएलवीएम के सी बाइंडिंग को पी/आमंत्रित कर सकते हैं (एक कंपाइलर बैकएंड लागू करने के लिए पर्याप्त से अधिक), या आप सी ++/सीएलआई के साथ अपना खुद का रैपर लिख सकते हैं।

मैंने एलएलवीएम के सी बाइंडिंग हेडर के लिए क्लैंग-जेनरेट एक्सएमएल एएसटी डंप का इस्तेमाल स्वचालित रूप से उनके लिए .NET बाइंडिंग जेनरेट करने के लिए किया था। लेकिन अब ऐसा करना संभव नहीं है, क्योंकि एक्सएमएल एएसटी प्रिंटर को क्लैंग से हटा दिया गया था, जिसमें कोई प्रतिस्थापन उपलब्ध नहीं था।

संबंधित मुद्दे