Domov Technika Princip kompilace (MOC poskytuje Harbin Institute of Technology)

Princip kompilace (MOC poskytuje Harbin Institute of Technology)



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

< td width="311" height="30">

24. února 2020 – 31. července 2020

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

< 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

< td height="30">

4-14LALR metoda analýzy

td>< td height="30">

Přednáška 2 Programovací jazyk a jeho gramatika

< td height="30">

Poznámky k této přednášce (soubor PDF)

< td height="30">

Poznámky k této přednášce (dokument PPT)

tr>< /tr> tr>< td height="30">

8-15 Smazání indukčních proměnných

tr>

Přednáška 1 Úvod

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

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

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í)

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

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

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

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í)

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í)

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“.

< td width="261" height="30">

"Kompilátory: principy, techniky a nástroje(druhé vydání)"

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).

Tento článek je ze sítě, nereprezentuje pozici této stanice. Uveďte prosím původ dotisku
HORNÍ