CS432 : تصميم مترجم

القسم العلمي

قسم الحاسب الآلي

البرنامج الدراسي

بكالوريوس في علوم الحاسب الآلي

نوع المقرر

إختياري

الوحدات

04

الاسبقيات

CS437

نظرة عامة

  • تعلم الأسس النظرية والعملية لبناء محلل لغوي (Lexical Analyser) لمترجمات للغات البرمجة المستخدمة في علم الحاسب الآلي.
  • تعلم ومناقشة تكوين مرحلة التحليل النحوي للغات البرمجة والطرق المختلفة لبناء المترجمات ووظائفها
  • تعليم الطالب كيفية تشخيص مشاكل قواعد اللغات وبناء جداول رموز ومفردات البرامج واستخدامها في إنشاء البرنامج الوسيط.

المخرجات التعليمية المستهدفة من دراسة المقرر

‌أ. المعرفة والفهم

1

يتعلم الطالب المراحل المختلفة للمترجمات وطرق وصف لغات البرمجة وكيفية إعداد مرحلة المحلل اللغوي للمترجم.

2

يتمكن الطالب من معرفة المشاكل المختلفة التي تواجه مصمم المترجمات في مرحلة المحلل النحوي للمترجمات وحلها.

3

يتعرف الطالب على مشاكل قواعد اللغات وبالتالي اقتراح حلول لها والتعرف على كيفية بناء جدول الرموز حسب شروط لغات البرمجة وإنشاء البرنامج الوسيط (Intermediate Code) الذي يمكن تنفيذه او تحويله الى لغة الالة.

‌ب. المهارات الذهنية

1

يكتسب الطالب مهارات في وصف لغات البرمجة وتحليلها لغويا.

2

يفهم القواعد النحوية للغات فهما جيدا والمشاكل التي تواجه بناء محلل نحوي لمترجمات لغات البرمجة.

3

يصمم قواعد إنشاء البرنامج الوسيط للتوافق مع فواعد اللغة اللغوية والنحوية.

‌ج. المهارات العملية والمهنية

1

يميز ويستطيع قراءة وصف لغات البرمجة وتحليل المشاكل والمعوقات في تطبيق المحلل اللغوي للمترجم.

2

يشخص المشاكل المختلفة التي تواجه تصميم المحلل النحوي للغات البرمجة.

3

يصمم ويقترحالتحسينات على البرامج الوسيطة الناتجة عن المترجم.

‌د. المهارات العامة والمنقولة

1

يتعامل مع برامج المترجمات والبرامج والمكتبات المساعدة لتصميم المترجمات

2

يتواصل بشكل مناسب لمناقشة التصاميم ومكونات مترجمات للغات البرمجة

3

يعمل ضمن فريق عمل

طرق التعلم والتعليم

· المحاضرات النظرية

· حلقات النقاش

· الساعات المكتبية

طرق التقييم

رقم التقييم

أساليب التقييم

مدة التقييم

وزن التقييم

النسبة المئوية

تاريخ التقييم (الأسبوع)

التقييم الأول

الامتحان الأول

ساعة و نصف

(من 5-6 أسئلة)

15%

الأسبوع 5

التقييم الثاني

الامتحان الثاني

ساعة و نصف

(من 5-6 أسئلة)

20%

الأسبوع 10

التقييم الثالث

واجبات و مشاريع

على الفصل

15%

كل اسبوع

التقييم النهائي

الامتحان النهائي

ساعتين

كل المقرر

50%

الأسبوع 16

المجموع

100 درجة

100%

محتوى المقرر

الاسبوع

الموضوع العلمي

الساعات

محاضرة

1

Introduction to Compilers:

Overview of Compilation, Analysis of source program, phases of compiler.

4

4

2-4

Lexical Analysis:

1. Specification and recognizing of tokens, Regular Expressions, Finite Automata (NFA, DFA), Algorithms for conversion from regular expression to NFA and from NFA to DFA. Implementation of Lexical Analyzer from DFA

12

12

5

Syntax Analysis:Context-free grammars, ambiguity specifying operator precedence.

4

4

6-7

Syntax Analysis:)تكملة )Overview of Parsing, Types of parsing including Top-down parsing, Bottom-up parsing, Operator-precedence parsing, LR parsers etc.

8

8

8-9

Symbol Table Construction and Issues:

1. Organization, operations issues such as scope and overloading and their effect on symbol table design, implementation, and operations.

8

8

10-11

Intermediate Code Generation:Three-address code for expressions and statements including assignments, conditionals, loops, procedure calls and generation of temporary variables and tables

8

8

12-14

Code Optimization:

Principal sources of optimization, Introduction to data flow analysis and equations, code improving transformations.

12

12

المراجع

عنوان المراجع

اسم المرجع

الناشر

النسخة

المؤلف

مذكرات المقرر

--------

--------

--------

--------

الكتب الدراسية المقررة

1.Compilers: Principles, Techniques, & Tools

2.Modern Compiler Design

Addison-Wesley 2007

Addison-Wesley 2005

(2nd Edition)

1stEdition

Alfred V. Aho, Ravi Sethi, Jeffrey D.

David Galles

كتب مساعدة

--------

--------

--------

--------

مجلات علمية

--------

--------

--------

--------

مواقع إنترنت

--------

--------

--------

--------

الذكاء الاصطناعي (CS456)
البرمجة الشيئية باستخدام الجافا (CS439)
البرمجة المرئية (CS435)
تصميم مترجم (CS432)
تنظيم حاسب 2 (CS440)
برمجة الويب 2 (CS416)
هندسة الويب (CS412)
إدارة المشاريع (CS411)
تصميم وتطوير تطبيقات الأجهزة المحمولة (CS410)
نظرية الاتمتة واللغات الصيغية (CS441)
بحوث العمليات (CS442)
تحليل عددي (CS448)
لغة انجليزية 1 (EL101)
رياضة 1 (MA100)
هندسة تحليلية مستوية (MA101)
مقدمة في الإحصاء (ST101)
أساسيات البرمجة (CS100)
لغة عربية 1 (AR051)
رياضة 2 (MA102)
هندسة تحليلية فراغية (MA103)
فيزياء عامة 1 (PH112)
مقدمة في الاحتمال (ST102)
البرمجة الهيكلية I (CS111)
لغة عربية 2 (AR052)
التركيبات المتقطعة (CS200)
تنظيم الحاسب الآلي (CS207)
البرمجة الهيكلية 2 (CS214)
البرمجة بلغة الاسمبلي (CS211)
البرمجة الشيئية (CS215)
لغة انجليزية 2 (EL102)
هياكل بيانات وخوارزميات1 (CS331)
برمجة الويب (CS315)
تحليل وتصميم النظم (CS319)
طرق عددية (CS323)
هياكل بيانات وخوارزميات2 (CS332)
لغات البرمجة (CS336)
أمن نظم الحاسب (CS340)
شبكات الحاسب الآلي (CS343)
نظم تشغيل (CS437)
برمجة نظم (CS431)
قواعد البيانات (CS436)
مشروع تخرج (CS450)
استرجاع المعلومات (CS444)
هندسة البرمجيات (CS438)