Povaha kurzu
Pozadí kurzu
Světový počítačový vědec Alfred V.Aho napsal v první větě kapitoly 1 „Kompilátor“: „Psaní kompilátoru Princip a počítačové technologie mají univerzální význam, takže ve výzkumné kariéře každého informatika bude princip a technologie v této knize opakovaně využívána. Tato věta poukazuje na princip kompilace v kurzu informatiky. Důležitá pozice. Studenti, kteří používali programovací jazyky na vysoké úrovni k psaní programů, vědí, že když je program vložen do počítače, počítač může pracovat podle toho, strojový kód složený z 0 a 1 je jazyk, kterému může počítač přímo porozumět. Proto program napsaný v jazyce vysoké úrovně musí být nakonec „přeložen“ do strojového kódu složeného z 0 a 1 před tím. Tento proces překladu se nazývá kompilace.
Cíle adaptace
Principy sestavování jsou zaměřeny především na vysokoškolské studenty oboru informatika a odborníky na související technologie.
Informace o zahájení kurzu
Počet zahájených kurzů | Čas zahájení | Učitel | Počet účastníků |
---|---|---|---|
Začíná první lekce | 04. září 2017 ~ 31. prosince 2017 | Chen Yin, Guo Yong | 10399 |
Druhý začátek třídy | 5. března 2018~2018-07 31. den v měsíci | 16424 | |
Třetí začátek třídy | 03. září 2018 ~ 31. prosince 2018 | Chen Yin, Guo Yong, Tu Zhiying, Huang Cheng | 11272 |
Začíná 4. třída td> | 18. února 2019 – 31. července 2019 | Chen Yin, Guo Yong 、Tu Zhiying | 17757 |
Začíná 5. třída td> | 2. září 2019–31. prosince 2019 | 14153 | |
Začíná 6. třída | < td width="311" height="30">< p>14168 | ||
Začíná 7. třída | 31. srpna 2020 ~ 31. ledna 2021 | Bude určeno | |
Podle oficiálních stránek MOOC Čínské univerzity je rozvrh prvního až sedmého začátku kurzu 3~5 hodin týdně. |
Úvod do kurzu
Je zde 20 přednášek o principech kompilace, které vyučují především hlavní teorie a technologie návrhu a implementace kompilátoru. Mezi nimi první přednáška seznamuje s konceptuálními znalostmi principů kompilace; druhá a třetí přednáška představí programovací jazyk a jeho obsah gramatiky a lexikální analýzy; čtvrtá až 14. přednáška představuje gramatickou analýzu (1. až 4. část) a gramatický řízený překlad (1.-3. část), střední generování kódu (1.-4. část); Přednáška 15 seznamuje se znalostmi provozu počítače a alokací úložiště; Přednášky 16 až 20 představí pokročilý obsah optimalizace kódu (části 1 až 4) a realizaci generování kódu.
Osnova kurzu
Přednáška 1 Úvod | < td height="30">6-9 zpětné plnění příkazů řídicího toku | ||
1-1 Co je kompilace | 4-15 Nejednoznačná gramatická LR analýza | Překlad příkazu 6-10switch | |
1-2 Struktura kompilačního systému | Poznámky k této přednášce (dokument PPT) | Překlad 6–11 vět s voláním procedury | |
1-3 Přehled lexikální analýzy | Zpracování chyb v analýze 4-16LR | Simulační cvičení v této přednášce (bez započtení bodů) | |
1-4 Přehled syntaktické analýzy | Simulační cvičení pro tuto přednášku (bez bodování) | Poznámky k této přednášce (soubor PDF) | |
1-5 Přehled sémantické analýzy | Poznámky k přednášce (soubor PDF) | > p> | Kvíz z přednášky 14 (bodování) |
1-6 Přehled generování přechodného kódu a backendu kompilátoru | [Diskuse 7-1] Proč sloučení soustředných sad položek nevyvolává posun a návratnost O konfliktu? | Poznámky k této přednášce (dokument PPT) | |
Simulační cvičení v této přednášce (bez bodování) | [Diskuze 7-2] Proč metoda analýzy LALR neprovádí operaci nesprávného pohybu? | Přednáška 15 Spuštění přidělování úložiště | |
Poznámky k přednášce (soubor PDF) | Kvíz 7. přednášky (bodování) | 7-1 Přehled spuštěné alokace úložiště | |
【Diskuse 1-1 】Vztah mezi procesem kompilace a procesem ručního překladu | Přednáška 8 s průvodcem gramatiky 1 | td>7-2 Přidělení statického úložiště | |
【Diskuse 1-2 】Návrh pole NAME v tabulce symbolů | 5-1 Přehled překladu řízeného gramatikou | 7-3 Přidělení skládaného úložiště | |
Kvíz 1. přednášky (bodování) td> | 5-2 Definice pokynů pro syntaxi SDD | 7-4 Sekvence volání a návratová sekvence | |
Poznámky k přednášce (dokument PPT) | 5-3 pořadí vyhodnocení SDD | 7-5 Přístup k nemístním datům | |
Definice atributu 5-4S a definice atributu L | Tabulka symbolů 7-6 | ||
2-1 Základní pojmy | Simulační cvičení v této přednášce (bez bodování) | Vytvoření tabulky symbolů 7-7 | |
2-2 Definice práva | Poznámky k této přednášce (soubor PDF) | Tato přednáška o simulačních cvičeních (bez hodnocení) | |
2-3 definice jazyka | [Diskuze 8-1] Jak reprezentovat sémantické informace? | Poznámky k této přednášce (soubor PDF) | |
2-4 Klasifikace gramatiky | [Diskuze 8-2] Jak vypočítat sémantické atributy? | [Diskuse 15-1] Jak vytvořit přístupový řetězec založený na tabulce symbolů? | |
Strom analýzy 2-5CFG | [Diskuze 8-3] Jak určit, zda je atribut komplexním atributem nebo zděděným atributem? | [Diskuse 15-2] Jak získat přístup k nelokálním datům na základě tabulky symbolů? | |
Simulační cvičení pro tuto přednášku (bez bodování) | [Diskuse 8-4] Jaký druh SDD může zaručit pořadí, v jakém jsou počítány jeho atributy? | Kvíz 15. přednášky (bodování) | |
Poznámky k této přednášce (dokument PDF) | Poznámky k této přednášce (dokument PPT) | Poznámky k této přednášce (dokument PPT) | |
[Diskuze 2-1] Ano na počítači Jak vyjádřit jazyk? | [Diskuze 8-5] Proč mohou S-SDD a L-SDD zaručit existenci pořadí výpočtu atributů? | Lekce 16 Optimalizace kódu 1 | |
[Diskuse 2-2] Lze každý typ slova považovat za jazyk? | Kvíz 8. přednášky (bodování) | Poznámky k přednášce (dokument PPT) | |
Kvíz z přednášky 2 (bodování) | Přednáška 9 s průvodcem gramatiky 2 | 8-1 vývojový diagram < /td> | |
Poznámky k této přednášce (dokument PPT) | Tato přednáška Poznámky ke kurzu (dokument PPT) | 8-2 Běžně používané metody optimalizace kódu (1) | |
Lekce 3 Lexikální analýza | 5-5 SDT projektu řízeného překladu gramatiky | 8-3 Běžně používané metody optimalizace kódu (2) | |
3-1 regulární výraz | 5-6 překlad v procesu nerekurzivní prediktivní analýzy < /td> | 8-4 Optimalizace základních bloků | |
3-2 Běžná definice | Simulační cvičení pro tuto přednášku (bez bodování) | Tato přednáška o simulačních cvičeních (bez hodnocení) | |
3–3 konečné automaty | < td height="30">Poznámky k této přednášce (soubor PDF) < /td> | ||
Klasifikace 3–4 konečných automatů | 【 Diskuze 9-1] Proč lze SDT S-SDD implementovat současně v procesu syntaktické analýzy? | Kvíz z přednášky 16 (bodování) | |
3-5 Od regulárních výrazů ke konečným automatům | [Diskuze 9-2] Rozšíření nerekurzivního prediktivního analyzátoru | Přednáška 17 Optimalizace kódu 2 | |
Konverze 3–6 z NFA na DFA | Kvíz z lekce 9 (bodování) | < td height="30">||
3-7 Rozpoznávání slov DFA | Přednáška 10 řízený překlad gramatiky 3 | 8-5 analýza toku dat | |
Tato přednáška je simulační cvičení (není bodováno) td> | Poznámky k této přednášce (dokument PPT) | 8-6 Analýza definitivní hodnoty příjezdu | |
Poznámky k přednášce (soubor PDF) | 5-7 Překlad v procesu rekurzivní prediktivní analýzy | 8-7 Výpočet rovnice dosažení pevné hodnoty | tr>|
Kvíz lekce 3 (bodování) | Překlad zdola nahoru definovaný atributem 5-8L | Simulační cvičení pro tuto přednášku (bez bodování) | |
Poznámky k přednášce (dokument PPT) | Simulační cvičení pro tuto přednášku (nebodováno) td> | Poznámky k této přednášce (soubor PDF) | |
< p>Přednáška 4 Syntaktická analýza 1 | Poznámky k přednášce (soubor PDF) | Kvíz lekce 17 (bodování) | |
4-1 shora Přehled analýzy směrem dolů | [Diskuse 10-1] Rozšíření rekurzivního prediktivního analyzátoru | Lekce 18 Optimalizace kódu 3 | |
4-2 Převod gramatiky p> | [Diskuse 10-2] Úprava gramatického a překladatelského plánu | Tato přednáška Poznámky ke kurzu (dokument PPT) | |
4-3LL(1) Gramatika | Kvíz lekce 10 (bodování) | 8-8 Analýza aktivních proměnných | < /tr>|
Simulační cvičení pro tuto přednášku (bez bodování) | > Ne. 11 Mluvte o přechodném generování kódu 1 | 8-9 dostupných výrazových analýz | |
Poznámky k této přednášce (soubor PDF) | Výraz typu 6-1 td> | Simulační cvičení pro tuto přednášku (bez bodování) | |
4-4 Výpočet PRVNÍ množiny a NÁSLEDUJÍCÍ množiny | 6-2 Překlad vět vět | < p>Poznámky k přednášce (dokument PDF) | |
Poznámky k přednášce (dokument PPT) td> | Simulační cvičení pro tuto přednášku (bez bodování) | Kvíz 18. přednášky (bodování) | |
Kvíz 4. přednášky (bodování) < /td> | Poznámky k této přednášce (dokument PDF) | Přednáška 19: Optimalizace kódu 4 | |
Přednáška 5 Analýza syntaxe 2 | [Diskuse 11-1] Jak vypočítat typový výraz a šířku pole? | Poznámky k této přednášce (dokument PPT) | |
4-5 metoda rekurzivní prediktivní analýzy | Kvíz z přednášky 11 (bodování) | 8-10 Dominantních uzlů a zadních hran | |
4-6 Metoda nerekurzivní prediktivní analýzy | Tento leták kurzu přednášky (dokument PPT) | 8-11 Přirozená cirkulace a její rozpoznávání | |
4-7 Zpracování chyb v prediktivní analýze | Lekce 12 Střední generování kódu 2 | 8-12 Odstraňte globální společné podvýrazy a zkopírujte věty | |
Tato přednáška je simulační cvičení (není bodováno) | 6-3 překlad jednoduchých přiřazovacích vět | 8-13 pohyb kódu | tr>|
Poznámky k této přednášce (dokument PDF) | 6-4 Překlad referencí polí | 8-14 Oslabení intenzity působící na indukční změnu | |
Kvíz lekce 5 (bodování) | Simulační cvičení pro tuto přednášku (bez bodování) | < td height="30">||
Poznámky k této přednášce (dokument PPT) | Poznámky k této přednášce (soubor PDF) | Simulace této přednášky Cvičební otázky (nebodované) | |
Přednáška 6: Gramatická analýza 3 | [Diskuse 12-1] Překlad adresování prvků pole | Poznámky k přednášce (dokument PDF) | |
Poznámky k přednášce (dokument PPT) | Kvíz 12. přednášky (bodování) | Kvíz 19. přednášky (bodování) ) | |
4–8 přehled analýzy zdola nahoru | Poznámky k přednášce (dokument PPT) | Přednáška 20 Generování kódu | |
Přehled metody analýzy 4-9LR | Přednáška 13 Střední generování kódu 3 | Poznámky k této přednášce (dokument PPT) | |
4-10LR(0) analýza | Poznámky k této přednášce (dokument PPT) < /td> | Hlavní úkoly generátoru kódu 9-1 | |
4 -11LR (0) algoritmus konstrukce tabulky analýzy | 6-5 příkaz toku řízení a jeho SDT | 9-2 Jednoduchý model cílového stroje | |
Simulační cvičení pro tuto přednášku (nebodováno) | 6-6 Booleovský výraz a jeho SDT | 9-3 Výběr příkazu | |
Poznámky k přednášce (soubor PDF) | Příklad překladu toku řízení 6-7 | Výběr registru 9-4 Vyberte | |
[Diskuse 6-1] Vztah mezi zásobníkovými automaty a konečnými automaty | Simulační cvičení pro tuto přednášku (bez bodování) | 9-5 funkce výběru registru getReg Design | |
[Diskuze 6-2] Vztah mezi informací o stavu a informací o symbolu gramatiky v zásobníku analýzy gramatiky LR< /p> | Poznámky k této přednášce (soubor PDF) | Optimalizace 9-6 kukátek | |
Kvíz 6. přednášky (bodování) | Kvíz lekce 13 (bodování) | Simulační cvičení pro tuto přednášku (bez bodování) | tr>|
Přednáška 7 Analýza syntaxe 4 | Přednáška 14 Středně pokročilá generace kódu 4 | Poznámky k přednášce (dokument PDF) | |
4-12SLR analýza | Doplnění 6–8 booleovských výrazů | Kvíz 20. přednášky (bodování) | |
4 -13LR (1) analýza | (Poznámka: rozložení osnov je zleva doprava) |
Příprava před vyučováním
Předběžné znalosti
Než se naučíte principy kompilace, musíte si připravit pokročilé programovací jazyky, datové struktury, sbírky a odborné znalosti, jako je teorie grafů.
Učební materiály
Učební materiály o zásadách kompilace zahrnují „Principles of Compilation (2nd Edition): Undergraduate Teaching Edition“ a „Principles of Compilation“.
Název knihy | < p>Autor | ISBN | < p>Doba zveřejnění | Vydavatel |
---|---|---|---|---|
"Principy kompilace (druhé vydání): Edice pro vysokoškolské studium" | (USA) Alfred V.Aho | 9787111269298 | 2009 | Machinery Industry Press |
Alfred V. Aho atd. | ------ td> | 2006 | Pearson Education, Inc p> | |
"Zásady sestavování" | Jiang Zongli a kol. | 9787040290585 | 2010 | Vysokoškolský tisk |
Referenční materiály obsahu tabulky |
Získané vyznamenání
V roce 2018 byl princip kompilace schválen Čínskou lidovou republikou Uznáno ministerstvem školství jako „National Excellent Online Open Chod".
Profil učitele
Chen Yin, žena, docentka a učitelka katedry výpočetní techniky, Harbin Institute of Technology.
Guo Yong, muž, lektor na Harbin Institute of Technology.
Tu Zhiying, muž, národnost Han, narozen v roce 1983, doktor inženýrství, docent a magisterský učitel na School of Computer Science and Technology, Harbin Institute of Technology (Weihai).