2012-05-16 6 views
7

मैं जैक क्रेन्शॉ के उत्कृष्ट कंपाइलर प्रोग्रामिंग ट्यूटोरियल "लेट्स बिल्ड ए कंपाइलर" के माध्यम से काम करने की कोशिश कर रहा हूं और दो बाधाओं में फंस गया हूं। सबसे पहले कोड पास्कल में लिखा गया है, एक महान भाषा जिसके लिए मेरे पास 1 9 80 के दशक के मध्य में एक संक्षिप्त संपर्क से सम्मान और प्रेम दोनों हैं, लेकिन जो मैंने तब तक छुआ नहीं है। मैं वर्तमान में सीक्रेन्शॉ की "चलो एक कंपाइलर बनाएं": सी और x86 असेंबलर के लिए ट्रांसक्रिप्शन?

अन्य बाधा यह है कि उत्पन्न असेंबलर मोटोरोला 68000 प्रोसेसर की लाइन के लिए है। जबकि मैं इसके लिए एक अनुवादक ढूंढ सकता हूं, यह बेहतर होगा अगर मैं इंटेल x86 असेंबलर (या तो इंटेल या AT & टी शैली) उत्पन्न कर सकता हूं।

मैं लिनक्स, मैक ओएसएक्स या विंडोज 7 पर कोड के माध्यम से काम कर सकता हूं, अगर यह कुछ भी आसान बनाता है। मेरे पास सभी नामित ऑपरेटिंग सिस्टम तक पहुंच है।

मुझे ट्रांसक्रिप्शन करने के लिए पूरी तरह योग्य नहीं लगता है। क्या किसी ने पहले से ही यह काम किया है, या क्या आपके पास अन्य सुझाव हैं?

कोई भी विचार, प्रतिक्रिया या सुझाव स्वागत है।

+1

मैंने जैक के कोड का सी/x86 रूपांतरण लिखा था। जब मैं इसे जारी करता हूं, कोड को रूपांतरित करता हूं, और इसे कंप्यूसर्व पर पोस्ट करता हूं, तो मैं प्रत्येक किस्त को पढ़ता हूं। मुझे नहीं पता कि मेरे पास अभी भी वह सामान है या नहीं। यदि आप मुझे अपने अभिलेखागार से खोजना चाहते हैं तो मुझसे सीधे संपर्क करें (मेरा ईमेल पता मेरी प्रोफ़ाइल में है)। मैं कोई वादा नहीं करता, क्योंकि यह 20 साल पहले कुछ था। –

उत्तर

1

आप उत्पन्न कोड को 68K emulator पर चला सकते हैं-उस पृष्ठ पर प्रविष्टियों का सेवकाल ओपन-सोर्स है।

1

देशी प्रोसेसर की बजाय JVM को लक्षित करना आसान हो सकता है। पास्कल से सी का अनुवाद करने के लिए ... यह नहीं होगा वास्तव में एक बाधा है।

+3

जटिल ढांचे में खींचना contraproductive है। ट्यूटोरियल का लक्ष्य अंतर्दृष्टि प्रदान करना है, "आसान" नहीं। –

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