2009-04-04 11 views
13

मैं इन सभी नई भाषाओं को .NET और JVM के लिए देख रहा हूं। एक कैसे बनाना शुरू कर देता है?नेट या जेवीएम भाषा कैसे बनाएं?

मुझे JVM या MSIL विनिर्देशों पर कोई अच्छा दस्तावेज़ नहीं मिल रहा है।

संपादित

मैं पहले से ही कैसे पार्स करने के लिए पता है, मैं में कैसे वहाँ इतने सारे नए भाषाओं कि उन प्लेटफार्मों पर आधारित हैं बनाने लोग हैं अधिक दिलचस्पी है।

उत्तर

7

आप किस्मत में हैं। .NET के लिए भाषाओं का एक विस्फोट विकसित किया जा रहा है, और आपके जैसे व्यक्तियों पर लक्षित लेख/संसाधन हैं (न केवल बड़े निगमों को निवेश के लिए बहुत सारे धन)।

"गतिशील भाषा रनटाइम" के लिए खोजें, और वहां से जाएं। एक सार्वजनिक मानक यह सीआईएल है (आम के रूप में,

Blog of the guy who is the brain behind IronPython

The home of the Dynamic Language Runtime

An article about how IronPython was implemented

A blog posting talking about abstract syntax trees and the DLR

4

Java Virtual Machine Specifications, Second Edition ऑनलाइन उपलब्ध है।

एक,

एक एक संकलक कि जावा बाईटकोड का उत्पादन लिख होने से JVM लक्षित कर सकते हैं (जो JVM विशिष्टताओं में परिभाषित किया गया है।) या, Apache BCEL रूप में इस तरह मौजूदा पुस्तकालयों का उपयोग करके एक के माध्यम से वैध class फ़ाइलों का उत्पादन कर सकते एक जावा प्रोग्राम वास्तव में बाइट-स्तर पर बाइटकोड में हेरफेर किए बिना।

3

MSIL किसी भी अधिक MSIL नहीं बुलाया जाता है:

यहाँ कुछ लिंक हैं इंटरमीडिएट भाषा), सीएलआई का हिस्सा (सामान्य भाषा इन्फ्रास्ट्रक्क इलाज) मानक।

यहां ECMA-335 CLI मानक विनिर्देश है।

0

.NET के लिए आप डीएलआर के अभिव्यक्ति पेड़ों का उपयोग कर सकते हैं या यहां तक ​​कि मौजूदा उच्च स्तरीय लैंगेज को सी # या जावा जैसे संकलित कर सकते हैं और उसके बाद संकलित कर सकते हैं। कुछ उच्च स्तरीय गैर-वीएम भाषाएं (लेक हास्केल और एफिल) सी को संकलित करती हैं। यदि आप एमएसआईएल या जेवीएम बाइटकोड को संकलित करना चाहते हैं, तो आप इसे आसान बनाने के लिए Mono.Cecil या BCEL का उपयोग कर सकते हैं।

1

अद्यतन सवाल का जवाब:

मैं पहले से ही पता है कि पार्स करने के लिए, मैं और अधिक में कैसे वहाँ इतने सारे नई भाषाएँ कि उन प्लेटफॉर्म पर आधारित हैं बनाने लोग हैं दिलचस्पी है।

क्या इतने सारे लोग इन प्लेटफार्मों के लिए भाषा को विकसित करने के लिए सक्षम बनाता है शायद सार्वजनिक रूप से उपलब्ध स्रोत कोड के साथ कई बहुत पूरा उदाहरण की उपलब्धता है।

प्लेटफॉर्म के विनिर्देश डाउनलोड करने के लिए उपलब्ध हैं, और उन लोगों के लिए लंबे समय तक नहीं लिया गया है जो पहले से ही अपने मौजूदा कंपाइलरों के लिए नए बैकएंड का उत्पादन करने के लिए कंप्यूटर्स लिखने में अनुभव करते हैं जो नए प्लेटफॉर्म को लक्षित करेंगे।

माइक्रोसॉफ्ट ने स्वयं Rotor प्रकाशित किया है, निश्चित रूप से Mono भी है। रनटाइम कोड पीढ़ी के लिए कई लोकप्रिय तकनीकें भी हैं जो फ्लाई पर सरल रैपर कक्षाएं बनाती हैं - ये भी मिनी कंपाइलर्स हैं।

सी # कंपाइलर बहुत तेज है और सीएलआर की अधिकांश सुविधाओं को सीधे तरीके से उजागर करता है, ताकि आप एक कंपाइलर लिख सकें जो केवल अस्थायी सी # फाइलें उत्पन्न करता है और फिर नौकरी को पूरा करने के लिए सी # कंपाइलर प्राप्त करता है।

0

ओला बिनी से this presentation पर एक नज़र डालें। स्लाइड भी डाउनलोड करें।

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