zde - Univerzita Karlova
zde - Univerzita Karlova zde - Univerzita Karlova
Poznámka. Čtenář možná považuje za nevhodné použití globální proměnné ch, se kterou se pracuje zejména v syntaktické analýze. Máme pro její užití ale jeden pádný argument. Procedury analýzy se volají rekurzivně navzájem, a to mnohdy do velké hloubky vnoření (v závislosti na struktuře výrazu). Pokud bychom použili lokální proměnné, resp. parametry procedur, znamenalo by to alokaci paměti pro tyto proměnné. Takových alokací bychom udělali velmi mnoho podle počtu volání procedur pro neterminály. To by algoritmus zatížilo časově i prostorově. Závěr Na poměrně detailním textu jsme si ukázali, jak lze zapisovat syntaxi jazyka (výrazů), analyzovat je, překládat do jiných forem a také vyhodnocovat. Chtěli jsme ukázat, že zdánlivě složité úkoly lze dělat přehledně, ilustrativně a hlavně efektivně z hlediska časové a prostorové složitosti. Ukázali jsme, že teorie formálních jazyků a automatů je nám blíž, než bychom čekali. Úloha sestrojit jednoduchý analyzátor nebo překladač bezkontextového jazyka může potkat každého informatika, vždyť strukturované vstupy jsou součástí mnoha informačních systémů, včetně různých databázových aplikací. Lze to hezky ilustrovat na příkladu ze života. Jeden ze studentů autorů, který rozhodně nebyl nadšenec do teoretické informatiky, nás asi rok po státnicích potkal a uvedl, že nejdůležitější znalostí, kterou využil z naší školy v softwarové firmě, nebyla žádná moderní technologie, ale znalost tvorby analyzátorů bezkontextových jazyků! Jeho úkolem bylo přijímat na vstupu jistý strukturovaný vstup informací zaslaných podle síťového protokolu a překládat jej do jiného formátu. Metoda rekurzivního sestupu není sice tou nejefektivnější, spíše se používají přímo automatizované nástroje na tvorbu kódu analyzátoru, má ale výhodu v přehlednosti, jednoduchosti a kód lze lehce upravit. Pokud bychom chtěli třeba místo číslic používat v aritmetických výrazech nějakou složitější strukturu, není problém změnit pouze tuto malou část gramatiky a kódu a zbytek se nezmění. A možná nejdůležitější výhoda je, že si jej programujete zcela sami – tudíž máte nad kódem plnou kontrolu. Doufáme, že tento exkurz do světa překladačů je pro čtenáře poučný nejen teoreticky, ale i programátorsky. Tvorba složitějších překladačů samozřejmě obsahuje další důležité prvky, které zde nezmiňujeme (např. tabulky symbolů). 116
Literatura [1] Češka, M., Rábová, Z.: Gramatiky a jazyky. VUT, Brno, 1992, http://www.fit.vutbr.cz/study/courses/TI1/public/gj-1.3.pdf (2003). [2] Dvořák, S.: Dekompozice a rekurzivní algoritmy. Grada, Praha, 1992. [3] Hopcroft, J. E., Ullman, J. D.: Introduction to Automata theory, Languages and Computation. Addison-Wesley, Reading (Mass.), 1979. [4] Habiballa, H.: Formální úpravy ve výrokové logice (aplikace Bachelor). Bakalářská práce, Ostravská Univerzita, PřF, Ostrava, 1997, http://www1.osu.cz/home/habibal/publ/bachelor.zip [5] Habiballa, H.: Regulární a bezkontextové jazyky I. Ostravská univerzita, Ostrava, 2003, http://www1.osu.cz/home/habibal/kurzy/xrab1.pdf [6] Habiballa, H.: Regulární a bezkontextové jazyky II. Ostravská univerzita, Ostrava, 2005, http://www1.osu.cz/home/habibal/kurzy/rabj2.pdf [7] Habiballa, H.: Překladače. Ostravská univerzita, Ostrava, 2006, http://www1.osu.cz/home/habibal/kurzy/xprek.pdf [8] Habiballa, H.: Formální jazyky a automaty. MFI 13, 5–6 (2004). [9] Habiballa, H., Kmeť, T.: Vyčíslitelnost a složitost. MFI 14, 2–3 (2005). [10] Habiballa, H., Pavlisková, L., Kmeť, T.: Logika. MFI 15, 7–9 (2005/6). [11] Chytil, M.: Automaty a gramatiky. Matematický seminář SNTL, Praha, 1984. [12] Jančar, P.: Teorie jazyků a automatů. VŠB TU, Ostrava, 2003, http://www.cs.vsb.cz/jancar/ [13] Jinoch, J., Muller, K., Vogel, J.: Programování v jazyce Pascal. SNTL, Praha, 1988. [14] Lukasová, A.: Formální logika v umělé inteligenci. Computer Press, Brno, 2003. ❤❢ Matematicky nadaný žák pohledem budoucích učitelů Eva Hotová, PdF UP Olomouc 1 Abstrakt. Příspěvek seznamuje s výsledky dotazníkového šetření zaměřeného na povědomí studentů 1. a 2. ročníků oboru Učitelství matematiky pro 2. stupeň ZŠ a Učitelství 1. stupně ZŠ na PdF UP o problematice matematicky nadaných žáků. 1 e-mail: hotova@email.cz 117
- Page 65 and 66: 1 Vztah matematiky a fyziky Fyzika
- Page 67 and 68: řujeme platnost navržených hypot
- Page 69 and 70: 6,8 cm, pohybující se ve vzdálen
- Page 71 and 72: 5 Matematika a problémy astronomic
- Page 73 and 74: Úloha 6.2 Lyžař sjíždí po dlo
- Page 75 and 76: graficky. Z grafu 1 vidíme, že p
- Page 77 and 78: změn síly F = F (x), kde x je dé
- Page 79 and 80: Pokud jde o obor racionálních č
- Page 81 and 82: Dedekindova poznámka o tom, že al
- Page 83 and 84: taková úplná korespondence mezi
- Page 85 and 86: Nemoha se dočkat odpovědi, píše
- Page 87 and 88: soutěžích, vyjádřené 11 zlat
- Page 89 and 90: koslovenska nejprve do válkou rozb
- Page 91 and 92: Výpočetní technika dovoluje prov
- Page 93 and 94: obtížnosti, problém je proto vho
- Page 95 and 96: tohoto zařízení, ta jím prochá
- Page 97 and 98: v pracovních sešitech a knížká
- Page 99 and 100: Z výše uvedeného dělení lidsk
- Page 101 and 102: žáky nechat zakreslovat pohled do
- Page 103 and 104: http://hlavolamy.zde.cz (odtud je p
- Page 105 and 106: aby byl pro člověka příjemný.
- Page 107 and 108: matika (BKG) je jedním z možných
- Page 109 and 110: Velice oblíbenou, jednoduchou a p
- Page 111 and 112: if not((ch in [’0’..’9’])or
- Page 113 and 114: egin err:=0; {inicializace prom.} i
- Page 115: Náš kód už tedy zbývá jen obo
- Page 119 and 120: Nejčastěji respondenti uváděli,
- Page 121 and 122: v jakémkoliv oboru - umění, spor
- Page 123 and 124: • rozšiřování učiva (0/0)
- Page 125 and 126: Algoritmy a RVP Autoři článku pr
- Page 127 and 128: postupy, se kterými se v matematic
- Page 129 and 130: však právě srovnávat rychlost a
- Page 131 and 132: • Významný model pro hledání
- Page 133 and 134: 2. vnější - využití funkcí k
- Page 135 and 136: Dále je zde také uvedena historie
- Page 137 and 138: zkumu se v tomto případě ukázal
- Page 139 and 140: si lépe zapamatovat, snadněji neg
- Page 141 and 142: D5: „Už to zkouším počtvrté!
- Page 143 and 144: 2.5 Ukázky dialogů E: „Rozumít
- Page 145 and 146: pomocných záznamů, jen s dotýk
- Page 147 and 148: Vývoj nových forem péče o talen
- Page 149 and 150: 10. Která odpověď na otázku „
- Page 151 and 152: 18. Kolik litrů horké vody o tepl
- Page 153 and 154: Jeden žák naší školy stráví
- Page 155 and 156: v rovnici lze pouze veličiny stejn
- Page 157 and 158: oven −1, 0, +1. Můžeme si před
- Page 159 and 160: veličin, vystupujících v Maxwell
- Page 161 and 162: „sklepení odpustit. Obětujeme t
- Page 163 and 164: Tab. 2: Tabulka LTM 163
- Page 165 and 166: Tab. 4: Tabulka UILT 165
Poznámka. Čtenář možná považuje za nevhodné použití globální proměnné<br />
ch, se kterou se pracuje zejména v syntaktické analýze. Máme<br />
pro její užití ale jeden pádný argument. Procedury analýzy se volají rekurzivně<br />
navzájem, a to mnohdy do velké hloubky vnoření (v závislosti<br />
na struktuře výrazu). Pokud bychom použili lokální proměnné, resp. parametry<br />
procedur, znamenalo by to alokaci paměti pro tyto proměnné.<br />
Takových alokací bychom udělali velmi mnoho podle počtu volání procedur<br />
pro neterminály. To by algoritmus zatížilo časově i prostorově.<br />
Závěr<br />
Na poměrně detailním textu jsme si ukázali, jak lze zapisovat syntaxi<br />
jazyka (výrazů), analyzovat je, překládat do jiných forem a také vyhodnocovat.<br />
Chtěli jsme ukázat, že zdánlivě složité úkoly lze dělat přehledně,<br />
ilustrativně a hlavně efektivně z hlediska časové a prostorové<br />
složitosti. Ukázali jsme, že teorie formálních jazyků a automatů je nám<br />
blíž, než bychom čekali. Úloha sestrojit jednoduchý analyzátor nebo překladač<br />
bezkontextového jazyka může potkat každého informatika, vždyť<br />
strukturované vstupy jsou součástí mnoha informačních systémů, včetně<br />
různých databázových aplikací. Lze to hezky ilustrovat na příkladu ze<br />
života. Jeden ze studentů autorů, který rozhodně nebyl nadšenec do<br />
teoretické informatiky, nás asi rok po státnicích potkal a uvedl, že nejdůležitější<br />
znalostí, kterou využil z naší školy v softwarové firmě, nebyla<br />
žádná moderní technologie, ale znalost tvorby analyzátorů bezkontextových<br />
jazyků! Jeho úkolem bylo přijímat na vstupu jistý strukturovaný<br />
vstup informací zaslaných podle síťového protokolu a překládat jej do jiného<br />
formátu. Metoda rekurzivního sestupu není sice tou nejefektivnější,<br />
spíše se používají přímo automatizované nástroje na tvorbu kódu analyzátoru,<br />
má ale výhodu v přehlednosti, jednoduchosti a kód lze lehce<br />
upravit. Pokud bychom chtěli třeba místo číslic používat v aritmetických<br />
výrazech nějakou složitější strukturu, není problém změnit pouze tuto<br />
malou část gramatiky a kódu a zbytek se nezmění. A možná nejdůležitější<br />
výhoda je, že si jej programujete zcela sami – tudíž máte nad kódem<br />
plnou kontrolu.<br />
Doufáme, že tento exkurz do světa překladačů je pro čtenáře poučný<br />
nejen teoreticky, ale i programátorsky. Tvorba složitějších překladačů<br />
samozřejmě obsahuje další důležité prvky, které <strong>zde</strong> nezmiňujeme (např.<br />
tabulky symbolů).<br />
116