2012-05-30 17 views
5

क्या एडा (95, 2005) से सी तक कोई स्रोत-टू-सोर्स कनवर्टर (अनुवादक) है? वे कितने पूर्ण हैं (क्या वे एडीए की प्रत्येक सुविधा को gnu c99 + pthreads + POSIX में परिवर्तित कर सकते हैं)?आधुनिक एडी सी/सी ++ अनुवादक

क्या महत्वपूर्ण अनुप्रयोगों में ऐसे एडीए-सी-सी अनुवादक का उपयोग करना संभव है?

पीएस: अनुवादक सी ++ (2003 तक gnu एक्सटेंशन के साथ) भी स्वागत है।

पीपीएस: जब "gnu c99" कहा जाता है, तो इसका मतलब है कि केवल C99 + अधिकांश gnu एक्सटेंशन समर्थित हैं, लेकिन इसका मतलब GCC नहीं है।

+0

क्यों एडीए संकलक का उपयोग सीधे नहीं करें? – Mat

+3

क्योंकि कुछ हार्डवेयर के लिए कोई एडीए नहीं है। – osgx

+0

कौन सा हार्डवेयर? –

उत्तर

7

मुझे किसी भी ओपन सोर्स एडा-टू-सी अनुवादक के बारे में पता नहीं है। केवल एक ही जिसे मैं जानता था वह सोफ चेक था, जो कि काफी अच्छा था।

SofCheck के बाद से AdaCore द्वारा खरीदा गया है, और मैं एक बहुत अनुवादक के लिए AdaCore वेबसाइट के संक्षिप्त खोज किया था, और कुछ भी नहीं है बाहर कूद गया। वाणिज्यिक समाधान का पीछा करते हुए आप उनके लिए एक व्यवहार्य विकल्प है, तो आप [email protected] पर उनसे पूछ सकते हैं। (कम से कम एक कीमत प्राप्त करें।)

+1

धन्यवाद। आप इसके बारे में क्या कह सकते हैं: http://adatoccpp.sourceforge.net (अपूर्ण?) और http://mapusoft.com/products/ada-changer/? – osgx

+0

एफडब्ल्यूआईडब्लू: http://www.adacore.com/press/adacore-sofcheck-merge –

+0

ध्यान दें कि उस अनुवादक के लेखक को भी एडाकोर द्वारा किराए पर लिया गया था, इसलिए किसी को जवाब देना चाहिए। –

1

जब तक इस एप्लिकेशन के लिए एडा का उपयोग करने का अविश्वसनीय रूप से मजबूत कारण नहीं है (उदाहरण के लिए, ग्राहक इसकी मांग करता है, या आपके पास पहले से ही एडा में कोड किया गया एक बड़ा एप्लीकेशन है जिसे आप उपयोग करना चाहते हैं), यह यदि आप फिट बैठते हैं तो आप बुलेट को काटते हैं और अच्छी तरह से तैयार किए गए सी 99 या सी ++ में अपना समाधान कोड करते हैं तो बहुत कम दर्दनाक होगा।

यदि आप जोर देते हैं, तो सोफचेक का अनुवादक सबसे अच्छा हो सकता है; वे लंबे समय से इस पर काम कर रहे हैं।

ऐसा विफल होने पर, आप (ए) एक एडीआई संकलक के एएसआईएस आउटपुट के साथ शुरू होने वाले अनुवादक का निर्माण कर सकते हैं। यह संभवतः बहुत सख्त काम है क्योंकि एडा के पास बहुत सटीक अर्थशास्त्र है, यदि आप अडा में लापरवाही से कोड करना चाहते हैं, अनुवाद और दौड़ना चाहते हैं तो आप बेहतर ढंग से संरक्षित रहेंगे। अगर आप अंतिम ग्राहक के लिए आउटपुट "सुंदर" होना चाहते हैं तो यह और भी काम करेगा। (दीर्घकालिक रखरखाव पर विचार किया जाना चाहिए)। मुझे संदेह है कि एडा के मिलनसार को अनुकरण करने के लिए कोड को कार्यान्वित करना मुश्किल हो सकता है, दोनों एक ही समय में अर्थात् जटिल और असीमित दोनों होने के नाते। इस दृष्टिकोण के साथ वास्तविक दोष यह है कि यह बहुत काम है; हो सकता है कि बस अपने जीवन के साथ आगे बढ़ें और कुछ भी गैर-एडा में आवेदन कोडिंग कम प्रयास करें।

language translation done poorly और वैकल्पिक तरीकों पर मेरी चेतावनियां देखें।

+1

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

+0

... + आधा है कि पुन: लेखन आमतौर पर हाथ-अनुवाद करने की कोशिश करने से बेहतर है। आप अभी भी कुछ ऐसी चीज के साथ समाप्त हो जाएंगे जिसे हर बार डिबग किया जाना चाहिए और मूल उत्पाद के रूप में उतना ही परीक्षण किया जाना चाहिए जब यह बिल्कुल नया था। –

+0

मुझे यह इंगित करने का इरादा नहीं था कि उसे आवेदन को फिर से लिखना चाहिए। असल में, ओपी ने यह नहीं कहा कि क्या उसके पास * एडा प्रोग्राम था, केवल वह एक एडी संकलक का उपयोग करना चाहता था; मेरे पास (गलती से?) माना जाता है कि वह एक नया आवेदन लिखने जा रहा था। यदि उसके पास एडा प्रोग्राम है, तो किसी भी गुणवत्ता का स्वचालित अनुवाद एक हाथ फिर से लिखने की तुलना में बेहतर (कम महंगा, तेज़, कम जोखिम) होने की संभावना है। मैंने यह स्पष्ट करने के लिए उत्तर संशोधित किया। –

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