مادة المترجمات Compiler ومشروعها

أرسل من قبل simulous في الثلاثاء, 2004/06/08 - 4:43pm.

تاريخ التسجيل: 2004-06-05
مشاركات: 134

السلام عليكم ورحمة الله وبركاته

مادة المترجمات في قسم هندسة البرمجيات تم إعطاؤها على مدار السنة الرابعة كما يلي :

الفصل الأول :

القسم النظري :

المفاهيم النظرية ومرجعها الكتاب التالي :
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

أرجوا من يريد الاستفسار عن شيئ معين حول هذه المادة أن يطرح سؤاله وإن شاء الله سأجيبه (بحدود ما أعلم).

وياريت تكون الأسئلة خاصة وليست عامة لأن الإجابة على الأسئلة العامة ستكون طويلة وغير مركزة نحو موضوع معين وشكراً لكل من يريد المساهمة Wink .

والسلام عليكم ورحمة الله وبركاته

 
دخول أو تسجيل لإرسال التعليقات | قراءة: 2768

خيارات عرض التعليقات

اختر طريقتك المفضلة لعرض التعليقات و اضغط "حفظ الإعدادات" لتفعيل تغييراتك.
الأربعاء, 2007/04/04 - 2:47pm

تاريخ التسجيل: 2007-04-04
مشاركات: 1

الجامعة: غير ذلك
الكلية: غير ذلك
المرحلة: السنة الرابعة
الاختصاص: غير ذلك

الله يعطيك العافيه وشكرا لك
بس الرابط ما بشتغل

ممكن ترسلي على ايميلي المادة ولك جزيل الشكر

a161sawsan@yahoo.com
ولك جزيل الشكر

سوسن

 
دخول أو تسجيل لإرسال التعليقات
السبت, 2007/04/21 - 6:03pm

تاريخ التسجيل: 2007-04-12
مشاركات: 17

الجامعة: البعث
الكلية: الهندسة المعلوماتية
المرحلة: السنة الرابعة
الاختصاص: هندسة برمجيات

و بكون ممنونة لك إذا بترسل المادة على ايميلي لأ كمان اللينك ماعم يشتغل وشكررررا كتير لأن أنا دايخة بمقرر المترجمات عنا النظري والعملي

 
دخول أو تسجيل لإرسال التعليقات
الثلاثاء, 2007/10/09 - 3:03pm

تاريخ التسجيل: 2007-10-09
مشاركات: 5

الجامعة: البعث
الكلية: الهندسة المعلوماتية
المرحلة: السنة الأولى
الاختصاص: هندسة برمجيات

أرسل المادة على إيميلي
mh2000m2000@yahoo.com

 
دخول أو تسجيل لإرسال التعليقات
الأربعاء, 2007/11/07 - 2:19pm

تاريخ التسجيل: 2007-11-07
مشاركات: 1

الجامعة: البعث
الكلية: الهندسة المعلوماتية
المرحلة: السنة الرابعة
الاختصاص: هندسة برمجيات

أرجو أن يرسل المادة على اميلي
وإن كان بإمكانك أن ترسل لي الكتاب الإلكتروني:
Compilers Principles, Techniques, and Tools
أكون لك من الشاكرين.
بريدي هو
mtelej82@hotmail.com
وفقك الله.

 
دخول أو تسجيل لإرسال التعليقات
الإثنين, 2007/11/19 - 6:52pm

تاريخ التسجيل: 2007-11-13
مشاركات: 1

الجامعة: غير ذلك
الكلية: هندسة النظم المعلوماتية
المرحلة: ماجستير
الاختصاص: هندسة برمجيات

شكرا حزيلا واكون شاكرا لو ارسلتم لي المنهاج العملي لمادة المترجمات لسنة كاملة لاننا نفتقر اليها في الوقت الحاضر رغم تقديمنا اجتهادات نعتقد انها لا تفي بالغرض
ارجو ارسالها الى الايميل
sabbarjan@yahoo.com

انا اشكركم اني استاذ جامعي ويمكن ان افيد واستفيد من موقعكم فشكرا لكم

 
دخول أو تسجيل لإرسال التعليقات
الثلاثاء, 2007/11/27 - 10:25pm

تاريخ التسجيل: 2007-11-27
مشاركات: 1

الجامعة: غير ذلك
الكلية: غير ذلك
الاختصاص: غير ذلك

الرابط لا يعمل و لدي سؤال في ch2 من الكتاب

 ماذا يعمل هذا الكود ؟ و ما هي مهمته في مادة الكمبايلر ؟

و كيف استطيع تحويله إلى ++C

 

 

procedure match(t : token);
begin
    if
lookahead = t
then
       
lookahead := nexttoken()

    else error()
end;

procedure type();
begin
    if
lookahead in { ‘integer’, ‘char’, ‘num’ }
then
       
simple()
    else if lookahead = ‘^
then
       
match(‘^’); match(id)
    else if lookahead = ‘array
then
       
match(‘array’); match(‘[‘); simple();
        match(‘]’); match(‘of’); type()
    else error()
end;

procedure simple();
begin
    if
lookahead = ‘integer
then
       
match(‘integer’)
    else if lookahead = ‘char
then
       
match(‘char’)
    else if lookahead = ‘num
then
       
match(‘num’);
        match(‘dotdot’);
        match(‘num’)
    else error()
end;

أتمنى ألقى شرح له و لو بسيط Smile  

 
دخول أو تسجيل لإرسال التعليقات
الإثنين, 2007/12/03 - 4:56pm

تاريخ التسجيل: 2007-12-03
مشاركات: 2

الجامعة: غير ذلك
الكلية: غير ذلك
المرحلة: السنة الرابعة
الاختصاص: غير ذلك

كتب Dalya:

الرابط لا يعمل و لدي سؤال في ch2 من الكتاب

 ماذا يعمل هذا الكود ؟ و ما هي مهمته في مادة الكمبايلر ؟

و كيف استطيع تحويله إلى ++C

 

 

procedure match(t : token);
begin
    if
lookahead = t
then
       
lookahead := nexttoken()

    else error()
end;

procedure type();
begin
    if
lookahead in { ‘integer’, ‘char’, ‘num’ }
then
       
simple()
    else if lookahead = ‘^
then
       
match(‘^’); match(id)
    else if lookahead = ‘array
then
       
match(‘array’); match(‘[‘); simple();
        match(‘]’); match(‘of’); type()
    else error()
end;

procedure simple();
begin
    if
lookahead = ‘integer
then
       
match(‘integer’)
    else if lookahead = ‘char
then
       
match(‘char’)
    else if lookahead = ‘num
then
       
match(‘num’);
        match(‘dotdot’);
        match(‘num’)
    else error()
end;

أتمنى ألقى شرح له و لو بسيط Smile  

......السلام عليكم ورحمة الله وبركاته

أنا عضو جديد هنا..زشاب مصري أدرس في كلية العلوم قسم فيزياء وحاسب آلي جامعة عين شمس....ممكن أساعدكم قليلا لإن يدرست تلك المادة

أولا:كلمة match الموجودة في هذا الكود..تعني أن يقارن الtokenمن خلال الملف الأصلي المكتوب بالtokenالموجودة في لغة الwarn ...وغذا كانت متطابقة تبقى من ناحية الsyntexصحيحة..وإلا فهي syntax errorمثل....var x,y;>>فيقارن الvarب ال token var_symboleوهكذا بالنسبة للXو ال Yوال ,وال ;

هذا أولا

 
دخول أو تسجيل لإرسال التعليقات
السبت, 2008/08/02 - 4:28pm

تاريخ التسجيل: 2008-08-02
مشاركات: 5

الجامعة: المأمون
الكلية: هندسة النظم المعلوماتية
المرحلة: السنة الثالثة
الاختصاص: غير ذلك

مرحبا
ارجو ان ترسال لي بعض التمارين في هذه المادة و خاصة عن
follow & first & dll1
و اكون ممتنا لك
و هذا ايميلي :
altshiftdelite@yahoo.com

 
دخول أو تسجيل لإرسال التعليقات
السبت, 2008/08/02 - 4:31pm

تاريخ التسجيل: 2008-08-02
مشاركات: 5

الجامعة: المأمون
الكلية: هندسة النظم المعلوماتية
المرحلة: السنة الثالثة
الاختصاص: غير ذلك

حاولت اشغل الرابط ما اشتغل
اذا ما كان فيها ازعاج
ارجو ان ترسل لي هذا الملف

 
دخول أو تسجيل لإرسال التعليقات