|
السلام عليكم ورحمة الله وبركاته
مادة المترجمات في قسم هندسة البرمجيات تم إعطاؤها على مدار السنة الرابعة كما يلي :
الفصل الأول :
القسم النظري :
المفاهيم النظرية ومرجعها الكتاب التالي :
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
القسم العملي :
والحمد لله كان الجانب العملي لا بأس فقد قمنا بتطوير مترجم لآلة حاسبة متطورة , تقبل تعليمات الآلة الحاسبة كلغة برمجة مكتوبة في ملف نصي , وتعطي الخطأ ونوعه ومكان وجوده ( في حال العثور على خطأ ).
الفصل الثاني :
كانت المادة عبارة عن مشروع بناء مترجم 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
أرجوا من يريد الاستفسار عن شيئ معين حول هذه المادة أن يطرح سؤاله وإن شاء الله سأجيبه (بحدود ما أعلم).
وياريت تكون الأسئلة خاصة وليست عامة لأن الإجابة على الأسئلة العامة ستكون طويلة وغير مركزة نحو موضوع معين وشكراً لكل من يريد المساهمة .
والسلام عليكم ورحمة الله وبركاته
|