 |
[6 * 9 = 42] whileTrue: [World run]
Stopařův průvodce jedním převážně neškodným programovacím jazykem
|
 |
|
Neformální specifikace
Cíle: vytvořit kolekci tříd podporující testování nových algoritmů z oblasti teoretické informatiky; základ řešení musí t ořit lehce rozšiřitelný objektový návrh
(např. pokud bude chtít uživatel vyzkoušet nově navržený druh LR syntaktické analýzy, který se liší pouze novým tvarem LR-tabulky, tak musí stačit odvodit novou třídu s přetíženou metodou pro získávání operace z tabulky a třídu uchovávající tuto novou LR-tabulku apod. - dost se lze inspirovat např. knihovnou MFC)
Požadavky:
- třídy pro podporu měření paměťové a časové složitosti implementovaných algoritmů
- abstraktní třídy pro algoritmy a jiné časté matematické struktury
- grafická reprezentace (morphy) základních pojmů - neterminál, terminál, endmarker, množina, gramatika, zobrazování stromu (např. derivačního), stav, přechod, algoritmus
- třídy reprezentující základní automaty (konečné, zásobníkové, turingovy), jazyk (regulární, bezkontextové, kontextové, L0)
- algoritmy převodů (jazyk=stroj)
- algoritmy pro syntaktickou analýzu, generování syntaktického analyzátoru, derivace řetězce, konstrukce derivačního stromu
- návrh rozhraní pro možnost grafické reprezentace/zobrazení
- návrh rozhraní pro využití ve vyukových/demonstračních aplikacích
Závěrem:
Není nutno v rámci jednoho projektu implementovat všechny nastíněné myšlenky, ale je nutno aby byl výsledkem kvalitní návrh (k tomu lze právě využít prototypovací vlastnosti Smalltalku); vyžaduji tudíž kvalitní základ, na kterém bude možno vystavět všechny "moduly"
Odkaz na tuto stránku
|
|