Tým 32, varianta b/4/I
Jakub Kadlubiec Roman Pijáček Petr Pliska Jan Štourač Václav Tunka (vedoucí)
Interpret imperativního jazyk IFJ08 Podmnožina C++ Bez optimalizace Použití tříadresného kódu Implementováno v jazyce C ISO99
Tabulka symbolů – binární vyhledávací strom Vyhledávání – Boyer-Mooreův algoritmus Řazení – Merge sort
Řádkové komentáře Operace modulo Jednoduché zotavování z chyb Přehledné vypisování z chyb Cyklus do… while Znakové konstanty ve stylu jazyka C Porovnávání mezi double a integer Deklarace více proměnných stejného typu na jednom řádku
Vstup: zdrojový kód Graf, viz. dokumentace str. 16 Realizace pomocí konečného automatu Ukládá Id do tabulky symbolů Výstup: token
Vstup: jednotlivé tokeny SA shora dolů LL gramatika Rekurzivní sestup Pokud je očekáván výraz, volá výrazový SA Výstup: validita zdrojového kódu Po dokončení syntaxí řízeného překladu volá interpret
Vstup: Výraz Precedenční analýza zdola nahoru Využívá zásobník Pokud je kód validní, iniciuje sémantické akce Výstup: Chybový kód / Výsledek výrazu
Spouštěn při sémantických akcích syntaktickým analyzátorem Kontroluje vícenásobné deklarace Kontroluje správnost datových typů Provádí přetypování identifikátorů a výrazů Volá generátor tříadresného kódu
Volán sémantickým analyzátorem Postupně generuje instrukce Instrukce průběžně ukládá do seznamu instrukcí Posledním prvkem syntaxí řízeného překladu
Provádí seznam instrukcí Pracuje s vstup / výstupními operacemi Vrací návratový kód programu
Všechny algoritmy a datové struktury jsou generické Tabulka symblů - BVS Třídění - Merge sort a srovnání algoritmů Vyhledávání - Boyer –Moore algoritmus
Vývojová metodika Strategie vývoje Project hosting Administrativa
Agilní metodika Refaktoring KISS (Keep it simple as possible) Vývoj po iteracích
Včasný začátek Vývoj po milnících (agilní metodika) Jednotné nástroje Kolektivní rozhodování a plánování Zhodnocení práce po každém týdnu
SCM: Subversion Mechanismus řízení projektu (milestones, tickets, tasks) Systém zpráv Projektová wiki Jednotné úložiště souborů
Pravidelné schůzky (2h / týden) Sumarizace a nahrávky schůzek Pravidelné code review rozsáhlejších prací za uplynulý týden