المفاهيم النظرية ومرجعها الكتاب التالي :
Compilers Principles, Techniques, and Tools
Authors: Alfred V.Aho, Ravi Sethi, Jeffrey D.Ullman
وأخذنا منه المواضيع التالية :
CH1: Introduction to Compiler
CH2: A Simple One-Pass Compiler
CH3: Lexical Analysis
CH4: Syntax Analysis
CH5: Syntax-Directed Translation
CH6: Type Checking
CH7: Run-Time Environments
arkred">القسم العملي :
والحمد لله كان الجانب العملي لا بأس فقد قمنا بتطوير مترجم لآلة حاسبة متطورة , تقبل تعليمات الآلة الحاسبة كلغة برمجة مكتوبة في ملف نصي , وتعطي الخطأ ونوعه ومكان وجوده ( في حال العثور على خطأ ).
arkblue">الفصل الثاني :
كانت المادة عبارة عن arkblue">مشروع بناء مترجم MiniJava Compiler وهو مترجم يأخذ كدخل ملف *.java مكتوب بلغة java ويقوم بترجمته إلى لغة الآلة Virtual Machine وهي لغة شبيهة بالـ Assembly , وعند تنفيذ كود لغة الآلة باستخدام الـ Virtual Machine يتم عندها تنفيذ البرنامج المكتوب بلغة Java المصدرية وإعطاء نتيجة التنفيذ.
تم استخدام إحدى اللغتين C أو Cpp في برمجة المترجم , وبالنسبة لي اخترت لغة Cpp للاستفادة من ميزات الـ OOP في المشروع ومكتبات الـ STL .
وقام الدكتور خليل العجمي بإعطائنا القسم الخاص بـ Code Generation وكيفية التعامل مع الآلة الإفتراضية VM .
هناك ملف ppt يوضح المفاهيم الأساسية بشكل مختصر عن المترجمات :
http://www.csc-sy.com/downloads/damascus/all/LECTURE1.PPT
أرجوا من يريد الاستفسار عن شيئ معين حول هذه المادة أن يطرح سؤاله وإن شاء الله سأجيبه (بحدود ما أعلم).


ساحة النقاش