Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Rok: 2022
Trvanie: 3 hodiny
Pokyny:
Všetky otázky sú povinné.
Všetky otázky nesú rovnaké známky.
Časť 1:
Opíšte Chomského hierarchiu s odkazom na konečné automaty, zásobníkové automaty a Turingove stroje.
Uveďte stručný prehľad hlavných funkcií a komponentov lexikálneho analyzátora.
Diskutujte o rôznych technikách analýzy používaných v kompilátoroch, pričom osobitnú pozornosť venujte metódam analýzy zhora nadol a zdola nahor.
Vysvetlite na relevantných príkladoch pojem L-atribútových a S-atribovaných gramatík.
Ukážte, ako medziproduktová reprezentácia hrá kľúčovú úlohu v procese kompilácie.
Časť 2:
Navrhnite lexikálny analyzátor na identifikáciu identifikátorov a kľúčových slov v programovacom jazyku.
Napíšte regulárny výraz na kontrolu platných e-mailových adries.
Vysvetlite, ako kompilátor vykonáva kontrolu typu a konverzie typu údajov.
Zostavte tabuľku analýzy LR(0) pre danú gramatiku.
Vytvorte algoritmus na zostavenie grafov toku riadenia pre prechodnú reprezentáciu.
Časť 3:
Poskytnite prehľad rôznych typov techník optimalizácie kódu vykonaných počas kompilácie.
Diskutujte o dôležitosti a výzvach generovania efektívneho strojového kódu.
Vysvetlite koncepty alokácie lokálnych premenných, spill kódu a alokácie registra v kontexte generovania kódu.
Zvýraznite kompromisy medzi optimalizáciou priestoru alebo rýchlosti počas generovania kódu.
Napíšte krátke poznámky k nasledujúcemu:
Skladanie kódu
Ovládajte sploštenie toku
Odstránenie mŕtveho kódu
Rozvíjanie slučky
Pridelenie registra
Veľa šťastia!