הידור (Compilation)

הידור — Front end, IR, back end

איך מהדרים עובדים מקצה-לקצה: ניתוח לקסיקלי, parsing, ניתוח סמנטי, ייצוג ביניים, סביבת ריצה, ייצור קוד, ואופטימיזציה. כל מושג נלמד עם הדמיה ייעודית צעד-אחר-צעד.

10יחידות
35שיעורים
0%הושלם
פתחו את ה-Playground ←
יחידה 10/3

מבוא ומבנה המהדר

מהו מהדר, שלבי התרגום, ומקום המהדרים בין interpreters ל-JITs.

יחידה 20/5

ניתוח לקסיקלי

מתווים ל-tokens — שפות רגולריות, NFAs, DFAs, והמכניזם של scanners.

יחידה 30/3

דקדוקים ו-Parsing: תיאוריה

דקדוקים חופשי-הקשר, גזירות, עצי parse, ובעיית הרב-משמעות.

יחידה 40/4

Parsing מלמעלה-למטה (LL)

Parsing חיזוי: קבוצות FIRST/FOLLOW, טבלאות LL(1), recursive descent, ו-parsers מבוססי-טבלה.

יחידה 50/4

Parsing מלמטה-למעלה (LR)

אוטומטי shift-reduce, LR(0), SLR(1), LR(1), ו-LALR(1).

יחידה 60/4

ניתוח סמנטי

מתחביר למשמעות — ASTs, טבלאות סמלים, scope, טיפוסים, ו-syntax-directed translation.

יחידה 70/3

ייצוג ביניים (IR)

קוד שלושת-הכתובות, גרפי בקרת זרימה, ו-Static Single Assignment.

יחידה 80/3

סביבת ריצה

Activation records, calling conventions, ו-garbage collection.

יחידה 90/3

ייצור קוד והקצאת רגיסטרים

מ-IR לקוד מכונה: בחירת פקודות, הקצאת רגיסטרים, ו-spilling.

יחידה 100/3

אופטימיזציה

Peepholes לוקליים, ניתוחי dataflow, וטרנספורמציות לולאה.