Lexikální analýza (Obsah)
|
|
- Eva Kovářová
- před 6 lety
- Počet zobrazení:
Transkript
1 Lexikální analýza (Obsah) 1. Rekapitulace potřebných znalostí -Regulární jazyky, regulární výrazy -Pravé lineární gramatiky -Konečné automaty (tabulka přechodů, stavový diagram, stavový strom) -Převod gramatika konečný automat -Nedeterministický konečný automat, převod na deterministický 2. Levé lineární gramatiky 3. Korespondence gramatik typu3 a konečných automatů 4. Vytváření derivačního stromu v případě lineárních gramatik 5. Regulární atributované překladové gramatiky 6. Princip lexikální analýzy 7. Konstruktory lexikálního analyzátoru LEX, FLEX Úkoly lexikálního analyzátoru Čtení zdrojového textu, Nalezení a rozpoznání lexikálních symbolů ve volném formátu textu, včetně případného rozlišení klíčových slov a identifikátorů. Vyžaduje spolupráci s SA. Vynechání mezer a komentářů, Interpretace direktiv překladače, Uchování informace pro hlášení chyb, Zobrazení protokolu o překladu. Proč je LA samostatnou částí Jednodušší návrh překladače Zlepšení efektivity překladu Lepší přenositelnost
2 Lexikální analyzátor rozpoznává a zakóduje lexikální symboly jazyka (lexémy anglicky tokens) Zdrojový kód Lexikální analyzátor žádost o token token Syntaktický analyzátor Lexikální symboly jsou regulárním jazykem Regulární jazyk Lze definovat gramatikou typu 3 G = (N, T, P, S) kde P mají tvar X w Y nebo X w kde w є T * (velkými písmeny označujeme neterminální symboly) Př1. Př2. S 1A A 0A 1 S 1A 1B A 0A 0 B 1B 1 nebo konečným automatem formální popis je pětice KA = (Q, X, δ, q 0, F) způsoby reprezentace přechodové funkce -tabulka přechodů, -stavový diagram, 1 1 Př1 S A K 0 1 A 0 Př2 S K 1 B 1 0 Je nedeterministický 1
3 -stavový strom Př2 S 1 AB 0 1 KA KB 0 1 KA Teď je již deterministický KB nebo regulárním výrazem Př.2 1 ( 0 * 0 1 * 1 ) pozn.: také + také dtto je 1 ( )? ale co 1 ( 0 n 1 n ) pro n>=0? Pumping lemma: Nechť L je regulární množina (regulární jazyk), pak existuje konstanta p taková, že je-li w є L a w >= p, pak w lze zapsat ve tvaru xyz, kde 0 < y <= p a xy i z є L pro všechna i >= 0? je regulárním jazykem 1 0 n 1 pro n >= 0? je regulárním jazykem 1 n 0 n? je regulárním jazykem 1 n 2 n 3 n? je regulárním jazykem (1 2 3 ) n Konfigurace automatu je dvojice (stav, ještě nezpracovaný vstup) Počáteční konfigurace (S, věta), kde S je počáteční stav Koncová konfigurace (K, e), kde K je koncový stav a e je prázdný řetězec je znak přechodu mezi konfiguracemi Př. Analýza věty jazyka 1 0 n 1 (př.1) ( S, 1001) ( A, 001) ( A, 01) ( A, 1) ( K, e)
4 Převod KA na regulární výraz a b a b A B C a, b Eliminací stavú -eliminujeme stav A a*b B. -eliminujeme stav B a*b ( a + b ) C b a (a + b) -spojíme do konečného výsledku a*b ( a + b ) ((a (a + b))* + b*)* Řešením regulárních rovnic A = A a protože existuje hrana z A do A přes a B = A b C a protože existují hrany z A do B přes b a z C do B přes a C = B a B b C b A je počáteční stav, efektem rovnice pro A je hvězdičkování a*. Dosadíme za A a pak za B do dalších rovnic. A = a* B = a* b C a C = a* b a C a a a*b b C a b C b Řešíme hvězdičkováním rekurzivní rovnici pro C. Místo použijeme +. C = a* b ( a + b) { C [ a ( a + b ) + b ] } S výsledkem C = a*b ( a + b ) { [ a ( a + b ) ]* + b*}*
5 Levé a pravé lineární gramatiky Pravá lineární: G = (N, T, P, S) kde P mají tvar X w Y w T * X w Levá lineární: G = (N, T, P, S) kde P mají tvar X Y w w T * X w Lze převést na tvar X Y a a je term.symbol X a příp. X e Každou lineární gramatiku lze převést na regulární tvar Konstrukce ekvivalentního KA pro levou regulární gramatiku: Neterminálnímu symbolu odpovídá stav Počáteční stav nepatří do N (je jím i stav A, pro nějž A e P) Každému pravidlu odpovídá větev takto: 1) Z Y do X označená a, je-li X Ya P 2) Z počátečního stavu do X označená a. je-li X a P 3) Koncovým stavem je počáteční symbol gramatiky Př. Konstruujte KA pro G = ( N, T, P, Z), kde P: Z U0 V1 U Z1 1 S U V Z0 0 Jak by vypadala ekvival. pravá lin.g.? Doplňme (má poč. symbol S) V Z Generování věty (symbol => znamená derivuje) S => 1U => 10Z => 101U => 1010Z => 10100V => Z => Z => V1 => Z01 => U001 => Z1001 => U01001 =>
6 1 Výsledek: S U V 1 Z K Graficky zachycuje derivaci derivační strom S Z 1 U V 1 0 Z Z 0 1 U U 0 0 Z Z 1 0 V U 0 1 Z 1 e Vstupující řetězec vždy čteme zleva doprava (všimněte si jak se liší konstrukce derivačního stromu, princip expanze neterminálu při versus redukce na neterminál při, vstup se vždy zpracovává/čte z leva) Př.Zapište gramatiku identifikátoru a) pravou, b)levou lineární gramatikou Konstruujte ekvivalentní automat Zkuste derivovat nějakou větu a vykreslit její derivační strom
7 Regulární atributované a překladové gramatiky Atributovaná gramatika AG = ( G, Atributy, Sémantická pravidla) Atributy jsou přiřazeny symbolům gramatiky a sémantická pravidla jednotlivým přepisovacím pravidlům. Při aplikaci přepisovacího pravidla se provedou příslušná sémantická pravidla a vypočtou hodnoty atributů. Atributy vyhodnocované průchodem derivačním stromem zdola nahoru nazýváme syntetizované, shora dolů nazýváme dědičné. Překladová gramatika PG = ( N, T u D, P, S ) Obsahuje disjunktní množiny T a D, vstupních a výstupních terminálních symbolů Regulární pravá překladová gramatika má množinu pravidel tvaru X a w Y, X a w kde a T a w D *, a nebo S e, pokud se S nevyskytuje na pravé straně pravidel. Př. PG= ({S,A,B,C}, {i,+,*} u {i, +, * }, P, S) s pravidly S i i A S i i A * C A + B B i i + A B i i + C i i * A C i i * Derivujme vstupní řetězec i * i + i S => i i A => i i * C => i i * i i * A => i i * i i * + B => i i * i i * + i i + Derivací vstupního řetězce vznikl řetěz výstupních symbolů i i * i + Vidíme jej v řetězci i i * i i * + i i + brýlemi výstupního homomorfismu ( těmi vidíme jen výstupní symboly) Uvedená gramatika realizuje nedokonalý překlad z infixového zápisu do postfixového. V čem je jeho nedokonalost? Regulární překladové gramatice odpovídá konečný překladový automat KPA A B S C doplňme graf K
8 Výsledek: S i / i + / e A i / i + B * / e i / i * i / i + C i / i * i / i K
9 Atributovaná překladová gr. APG = ( PG, Atributy, Sémantická pravidla) Př. Popišme APG překlad znakového zápisu celých čísel do jeho hodnoty Gramatika celého čísla G[C]: C č C č je nedeterministické, spravíme to G[C]: C č Z Z č Z e je deterministické Překladová gramatika PG[C]: T = { č }, D= { výstup } C č Z Z č Z e výstup APG[C]: bude navíc obsahovat atributy symbolů a sémantická pravidla symbol atributy č C Z výstup dědičné hodnota hodnota hodnota syntetizované kód syntax C č Z Z 0 č Z 1 Z e výstup sémantická pravidla Z.hodnota = ord(č.kód) ord( 0 ) Z 1.hodnota = Z 0.hodnota * 10 + ord(č.kód) ord( 0 ) výstup.hodnota = Z.hodnota Pozn.: Horním indexem odlišujeme stejně pojmenované symboly v pravidle Př. Nakreslete ekvivalentní automat a interpretujte překlad věty 235
10 Princip lexikálního analyzátoru (Nalezení a rozpoznání lexikálního symbolu) Třídy symbolů: Identifikátory Klíčová slova (rezervované identifikátory) Celá čísla Jednoznakové omezovače Dvouznakové omezovače Gramatický popis tříd symbolů: <identifikátor> písmeno <id> <id> písmeno <id> číslice <id> e <klíčové slovo> begin end do while <celé číslo> číslice číslice <celé číslo> <jednoznakový omezovač> + - / * ( ) <dvouznakový omezovač> // ** := poznámky tvaru: /* poznámka */? co je počátečním symbolem? <Symbol> <identifikátor> <celé číslo> <jednoznakový omezovač> <dvouznakový omezovač> zakódování symbolů zvolme např.: symbol kód symbol kód symbol kód identifikátor 1 celé číslo 2 // 3 / ( 7 ) 8 := 9 ** 10 * 11 begin 12 end 13 do 14 while 15? jak vypadá konečný automat?
11 Zpracování začíná prvým dosud nezpracovaným znakem ze vstupu, Zpracování končí, je-li automat v koncovém stavu a pro další vstupní znak již neexistuje žádný přechod Pro každou kategorii předpokládáme samostatný koncový stav, Neohodnocená větev se vybere, pokud vstupujícímu znaku neodpovídá žádná z ohodnocených větví Při zpracování sémantiky symbolů Hodnoty atributů se vypočtou z lexému Klíčová slova / rezervované identifikátory rozlišíme za pomoci tabulky klíčových slov.
12 Symbol písmeno Písmeno/číslice Identifikátor 1 Číslice číslice Celé číslo 2 * / * * / LOM KOM KOM_END / ( ) : = Dvojt * * Hvězd Chyba chyba
13 Sémantické zpracování lexikálních elementů Kód lexémů představuje informaci o druhu lexému, ne plně o jeho významu. Rozdíl +, /, do, while 1415, x1, alfa LA musí předat i atributy lexému, tj. - u čísel jejich hodnotu - u identifikátorů textový tvar (či adresu / ukazatel do tabulky) Předp. Identifikátor předáván jako dvojice 1, text Číslo 2. hodnota Např. do /*dokud te to bavi*/ alfa := 10 * ( x + y ) převede na 14, 1, alfa, 9, 2, 10, 11, 7, 1, x, 5, 1, y, 8 nebo 14, -, 1, alfa, 9, -, 2, 10, 11, -, 7, -, 1, x, 5, -, 1, y, 8, - Automat LA bude rozšířen o funkce č ČTI čte jeden znak zdrojového textu (posouvá hlavičku KA) s SLOŽ zřetězuje znaky do proměnné TEXT p PROHLEDEJ hledá v tabulce rezervovaných slov a v případě nalezení vrací jeho kód v VYPOČTI po znacích vyčísluje hodnotu konstanty do proměnné HODNOTA? jak je zařadit do diagramu?
14 Symbol písmeno S ; č Písmeno/číslice S ; č Identifikátor p ano Našel? kód nalezeného 1/ TEXT ne Číslice V ; č číslice V ; č Celé číslo 2 / HODNOTA č * / * č * č / LOM č KOM č KOM_END č č / 3 č č č č č - + ( ) : = Dvojt č * * Č Hvězd č Chyba chyba
15 Nejednoznačnosti v lexikální analyze Nastává v případě, kdy jeden symbol je prefixem jiného symbolu ( == apod.) Pravidlo hledej nejdelší symbol Nedokonalosti některých jazyků Fortranské číslo versus relace 123. EQ. Y Nutno ukládat znaky do pomocného pole Příkaz cyklu DO 10 I = 1, 5 Vyžaduje nápovědu od syntaktického analyzátoru IF... ident, DO číslo ident. =..... číslo,. ident. =...
16 LEX/FLEX (Unix/Linux) Pro Windows lze stahnout "complete package, except sources" ze stránky: Generuje program v jazyce C do souboru lex.yy.c, který definuje funkci yylex(). Po přeložení generuje proveditelný kód. Manuál máte v souboru Flex.pdf lex popis_lex_pravidel: popis Lex lex.yy.c cc lex.yy.c -ll: lex.yy.c C a.out a.out: vstupní_text a.out výstup Obecný tvar vstupního souboru pro Lex: {definice použité v regulárních výrazech a C deklarace} %% {pravidla v podobě regulárních výrazů a příslušných akcí} %% {doplňkové procedury} -Definice zahrnují deklarace proměnných, konstant, regulárních definic. -Pravidla mají tvar p1 {akce1 v C notaci} P2 {akce2 } pn {akcen } pi jsou regulární výrazy {akcei} jsou programové fragmenty -Doplňkové procedury jsou pomocné, mohou obsahovat C rutiny volané akcemi
17 Regulární výrazy v pravidlech mohou mít podobu: je-li c jeden znak r reg. výraz s řetězec i identifikátor pak výrazu odpovídá např c libov. neoperátorový znak c a \c znak c literálně \* "s" řetězec s literálně "**". libov. znak mimo nový řádek a.*b ^ začátek řádky ^abc $ konec řádky abc$ [s] libov. znak z s [abc] [x-z] znaky x, y,... z. [0-9] [^s] " " " není-li z s [^abc] r* nula nebo více r a* r+ jeden nebo více r a+ r? nula nebo jeden r a? r{m,n} m až n výskytů r a{1,5} r1r2 r1 pak r2 ab r1 r2 r1 nebo r2 a b (r) r (a b) r1/r2 r1 je-li n sledováno r2 abc/123 {i} překlad i z definiční sekce {PISMENO} yylval proměnná pro předání tokenu do Yacc (ten provádí synt. analýzu) yytext proměnná obsahující text odpovídajícího reg.výrazu yyleng " " počet znaků " yyless(n) ubere n znaků z yytext[] yymore() přidá k obsahu yytext[] další koresp. část textu REJECT přejde na další pravidlo bez změny obsahu yytext[]
18 Příklad %{ /* definice manifestovych konstant LT, LE, EQ, NE, GT, GE, IF, THEN, ELSE, ID, NUMBER, RELOP */ %} /* regularni definice */ delim [ \t\n] ws {delim}* letter [A-Za-z] digit [0-9] id {letter}({letter} {digit})* number {digit}+(\.{digit}+)?(e[+\-]?{digit}+)? %% {ws} {/* zadna akce ani navrat */} if {return(if);} then {return(then);} else {return(else);} {id} {yylval=install_id(); return(id);} {number} {yylval=install_num(); return(number);} "<=" {yylval=le; return(relop);} "=" {yylval=eq; return(relop);} "<>" {yylval=ne; return(relop);} ">=" {yylval=ge; return(relop):} < {yylval=lt; return(relop);} > {yylval=gt; return(relop);} %% install_id() { /* vlozi do tabulky symbolu lex.elem.,jehoz prvy znak je urceny v yytext a delka je v yyleng. Vracenou hodnotou je ukazatel do tab.sym. NEROZEPSANA */ } install_num() { /*podobne, pro instalaci cisla*/ }
19 Prostředky pro regulární výrazy jiných programovacích jazyků jsou z Lex viz Př.1) [a-za-z][0-9a-za-z]* JavaScript "nejaky text".match(/[a-za-z][0-9a-za-z]*/g) re.exec("nejaky text") PHP preg_match_all('/[a-za-z][0-9a-za-z]*/', "nejaky text", $match) Python re.findall(r'[a-za-z][0-9a-za-z]*', "nejaky text") Ruby "nejaky text".scan(/[a-za-z][0-9a-za-z]*/) Použito v Python >>> re.findall(r'[a-za-z][0-9a-za-z]*', 'ab1 nic 44') ['ab1', 'nic'] Př. 2) ([+-]?\d*\.\d+([ee][+-]?\d+)?) JavaScript "-2.33e-2alfa11beta12e3?.12E3".replace(/([+- ]?\d*\.\d+([ee][+-]?\d+)?)/g, "'expcislo' ") PHP preg_replace('/([+-]?\\d*\.\d+([ee][+- ]?\d+)?)/', "'expcislo' ", "-2.33e- 2alfa11beta12e3?.12E3") Python re.sub(r'([+-]?\\d*\.\d+([ee][+-]?\d+)?)', "'expcislo' ", "-2.33e-2alfa11beta12e3?.12E3") Ruby "-2.33e-2alfa11beta12e3?.12E3".gsub(/([+- ]?\\d*\.\d+([ee][+-]?\d+)?)/, "'expcislo' ") Použito v Python >>> re.sub(r'([+-]?\d*\.\d+([ee][+-]?\d+)?)', "'expcislo' ", "-2.33e-2alfa11beta12e3?.12E3") "'expcislo' alfa11beta12e3?'expcislo' " >>> re.findall(r'([+-]?\d*\.\d+([ee][+-]?\d+)?)', "-2.33e-2alfa11beta12e3?.12E3") [('-2.33e-2', 'e-2'), ('.12E3', 'E3')]
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti LEXIKÁLNÍ ANALÝZA Kód ve vstupním jazyku Lexikální analyzátor
Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.
Virtuální počítač Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor Virtuální počítač Překladač Překladač : Zdrojový jazyk Cílový jazyk Analytická část:
Automaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.
BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 2/41 Formální překlady BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 4/41 Automaty a gramatiky(bi-aag) 5. Překladové konečné
Konstruktory překladačů
Konstruktory překladačů Miroslav Beneš Dušan Kolář Konstruktor Lex generátor lexikálních analyzátorů M. E. Lesk, 1975 - pro OS Unix flex - Vern Paxson, 1990 - GNU verze určeno pro generování výstupu v
Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů
BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické
Lexikální analýza. Rozhraní lexikálního analyzátoru. Miroslav Beneš Dušan Kolář. M. Beneš, D. Kolář: Lexikální analýza 1. Lexikální analýza 2
Lexikální analýza Miroslav Beneš Dušan Kolář Rozhraní lexikálního analyzátoru Lexikální analýza 2 M. Beneš, D. Kolář: Lexikální analýza 1 Úkoly Čtení zdrojového textu Sestavování symbolů Odstranění mezer
Lexikální analýza. Miroslav Beneš Dušan Kolář
Lexikální analýza Miroslav Beneš Dušan Kolář Rozhraní lexikálního analyzátoru Lexikální analýza 2 Úkoly Čtení zdrojového textu Sestavování symbolů Odstranění mezer a poznámek Normalizace symbolů (velká/malá
Lexikální analýza Teorie programovacích jazyků
Lexikální analýza Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Osnova dnešní přednášky 1 Úvod do teorie překladačů kompilátor a interpret
8) Jaké jsou důvody pro použití víceprůchodového překladače Dříve hlavně kvůli úspoře paměti, dnes spíše z důvodu optimalizace
1) Charakterizujte křížový překladač Překlad programu probíhá na jiném procesoru, než exekuce. Hlavním důvodem je náročnost překladače na cílovém stroji by ho nemuselo být možné rozběhnout. 2. Objasněte
Implementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNAKICKÁ ANALÝZA DOKONČENÍ, IMPLEMENACE. VLASNOSI LL GRAMAIK A JAZYKŮ. 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Gramatika
Poslední aktualizace: 14. října 2011
Lexikální analýza Překladače, přednáška č. 2 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 14. října 2011 Symboly Co je to
Programovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
2 Formální jazyky a gramatiky
2 Formální jazyky a gramatiky 2.1 Úvod Teorie formálních gramatik a jazyků je důležitou součástí informatiky. Její využití je hlavně v oblasti tvorby překladačů, kompilátorů. Vznik teorie se datuje přibližně
Formální jazyky a překladače
Formální jazyky a překladače Přednášky: -Typy překladačů, základní struktura překladače -Regulární gramatiky, konečné automaty a jejich využití v lexikální analýze -Úvod do syntaktické analýzy, metoda
Konečný automat. Jan Kybic.
Konečný automat Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 33 Konečný automat finite state machine Konečný automat = výpočetní model, primitivní počítač Řídící jednotka s
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Programová realizace DKA typedef enum {q0, q1,... qn,
Syntaktická analýza. Implementace LL(1) překladů. Šárka Vavrečková. Ústav informatiky, FPF SU Opava
Implementace LL(1) překladů Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 6. ledna 2012 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory
Plán přednášky Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory Obecný algoritmus pro parsování bezkontextových jazyků dynamické programování 1 Zásobníkový
Překladač a jeho struktura
Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice
Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:
IB102 Automaty, gramatiky a složitost, 6. 10. 2014 1/29 Regulární výrazy Definice 2.58. Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: 1 ε, a a pro každé a
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE FORMALISMY PRO SYNTAXÍ ŘÍZENÝ PŘEKLAD: PŘEKLADOVÉ A ATRIBUTOVÉ GRAMATIKY.
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE FORMALISMY PRO SYNTAXÍ ŘÍZENÝ PŘEKLAD: PŘEKLADOVÉ A ATRIBUTOVÉ GRAMATIKY. 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Formální
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
Syntaxí řízený překlad
Syntaxí řízený překlad Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 27. listopadu 2008 Definice Překlad z jazyka L 1 do jazyka L 2 je definován množinou
Vlastnosti Derivační strom Metody Metoda shora dolů Metoda zdola nahoru Pomocné množiny. Syntaktická analýza. Metody a nástroje syntaktické analýzy
Metody a nástroje syntaktické analýzy Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 14. října 2011 Vlastnosti syntaktické analýzy Úkoly syntaktické
Automaty a gramatiky
Automaty a gramatiky Roman Barták, KTIML bartak@ktiml.mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Co bylo minule Úvod do formálních gramatik produkční systémy generativní gramatika G=(V N,V T,,P) G =
Naproti tomu gramatika je vlastně soupis pravidel, jak
1 Kapitola 1 Úvod V přednášce se zaměříme hlavně na konečný popis obecně nekonečných množin řetězců symbolů dané množiny A. Prvkům množiny A budeme říkat písmena, řetězcům (konečným posloupnostem) písmen
1. Definujte překladač. Jaký je rozdíl mezi interpretačním a kompilačním překladačem? Co je to konverzační překladač?
1. Definujte překladač. Jaký je rozdíl mezi interpretačním a kompilačním překladačem? Co je to konverzační překladač? 2. Charakterizujte lexikální analýzu(vstup, výstup, lexikální chyby). 3. Definujte
Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)
Programovací jazyk - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Odlišnosti implementace od normy - odchylky např.: nepovinná hlavička programu odlišná
Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
Jednoznačné a nejednoznačné gramatiky
BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 2/36 Jednoznačné a nejednoznačné gramatiky BI-AAG (2011/2012) J. Holub: 11. Bezkontextové gramatiky p. 4/36 Automaty a gramatiky(bi-aag) 11.
Množinu všech slov nad abecedou Σ značíme Σ * Množinu všech neprázdných slov Σ + Jazyk nad abecedou Σ je libovolná množina slov nad Σ
Abecedou se rozumí libovolná konečná množina Σ. Prvky abecedy nazýváme znaky (symboly) Slovo (řetězec) v nad abecedou Σ je libovolná konečná posloupnost znaků této abecedy. Prázdné posloupnosti znaků odpovídá
Turingovy stroje. Teoretická informatika Tomáš Foltýnek
Turingovy stroje Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Teoretická informatika strana 2 Opakování z minulé přednášky Jaké znáte algebraické struktury s jednou operací? Co je to okruh,
Vztah jazyků Chomskeho hierarchie a jazyků TS
Vztah jazyků Chomskeho hierarchie a jazyků TS Jan Konečný; (přednáší Lukáš Havrlant) 15. října 2013 Jan Konečný; (přednáší Lukáš Havrlant) Chomskeho hierarchie a jazyky TS 15. října 2013 1 / 23 Rychlé
Západočeská univerzita v Plzni Dokumentace překladače PL/0 v PHP Předmět KIV/FJP
Západočeská univerzita v Plzni Dokumentace překladače PL/0 v PHP Předmět KIV/FJP Petr Sládek slady@slady.cz 27. ledna 2005 Zadání Cílem této semestrální práce je kontrola zdrojového kódu překladače jazyka
GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK)
GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK) 2011 Jan Janoušek MI-GEN Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Úvod
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento
doplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je
28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci
Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i,
[161014-1204 ] 11 2.1.35 Konstrukce relace. Postupně konstruujeme na množině všech stavů Q relace i, kde i = 0, 1,..., takto: p 0 q právě tehdy, když bud p, q F nebo p, q F. Dokud i+1 i konstruujeme p
Čísla značí použité pravidlo, šipka směr postupu Analýza shora. Analýza zdola A 2 B 3 B * C 2 C ( A ) 1 a A + B. A Derivace zleva:
1) Syntaktická analýza shora a zdola, derivační strom, kanonická derivace ezkontextová gramatika gramatika typu 2 Nechť G = je gramatika typu 1. Řekneme, že je gramatikou typu 2, platí-li: y
FAKULTA INFORMAČNÍCH TECHNOLOGIÍ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS OBECNÝ SYSTÉM
Obsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9
Začínáme programovat v Ruby on Rails 9 O autorovi 9 Poděkování 9 Úvod 11 Komu je kniha určena 11 Jak je kniha uspořádána 11 Co ke knize potřebujete 12 Konvence 12 Zdrojový kód 13 Poznámka redakce českého
Úvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
Teoretická informatika - Úkol č.1
Teoretická informatika - Úkol č.1 Lukáš Sztefek, xsztef01 18. října 2012 Příklad 1 (a) Gramatika G 1 je čtveřice G 1 = (N, Σ, P, S) kde, N je konečná množina nonterminálních symbolů N = {A, B, C} Σ je
Sémantika Tabulka symbolů Intermediální kód Typová kontrola, přetypování Statická a dynamická sémantika. Sémantická analýza.
Sémantická analýza Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 19. listopadu 2009 Definice (Sémantická analýza) Vstup: konstrukce symbolů vytvořená
1.Charakterizujte křížový překladač 2.Objasněte pojem silikonový překladač 3.Co to jsou formátory textu? Uveďte příklad
1.Charakterizujte křížový překladač Překlad pro jiný počítač, než na kterém je vytvářen. 2.Objasněte pojem silikonový překladač Pro návrh logických obvodů. Proměnné představují logické signály. Výsledkem
A Tutorial. George J. Klir State University of New York (SUNY) Binghamton, New York 13902, USA
A Tutorial Generování syntaktických analyzátorů George J. Klir Jan Konečný State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu Palacky University, Olomouc, Czech Republic
Regulární výrazy. M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března / 20
Regulární výrazy M. Kot, Z. Sawa (VŠB-TU Ostrava) Úvod do teoretické informatiky 14. března 2007 1/ 20 Regulární výrazy Jako například v aritmetice můžeme pomocí operátorů + a vytvářet výrazy jako (5+3)
Formální jazyky a gramatiky Teorie programovacích jazyků
Formální jazyky a gramatiky Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Připomenutí základních pojmů ABECEDA jazyk je libovolná podmnožina
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz
Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz (2 + 5) * (13-4) * + - 2 5 13 4 - listy stromu obsahují operandy (čísla) - vnitřní uzly obsahují operátory (znaménka)
Interpret jazyka IFJ2011
Dokumentace projektu Interpret jazyka IFJ2011 Tým číslo 093, varianta b/3/i: 20 % bodů: Cupák Michal (xcupak04) vedoucí týmu 20 % bodů: Číž Miloslav (xcizmi00) 20 % bodů: Černá Tereza (xcerna01) 20 % bodů:
Bezkontextové gramatiky. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května / 49
Bezkontextové gramatiky Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 6. května 2018 1/ 49 Bezkontextové gramatiky Příklad: Chtěli bychom popsat jazyk aritmetických výrazů obsahující výrazy jako například:
Maturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
Jazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory
Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální
AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace
AUTOMATY A 11 GRAMATIKY Pavel Surynek Univerzita Karlova v Praze Matematicko-fyzikální fakulta Katedra teoretické informatiky a matematické logiky Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně
Kapitola 6. LL gramatiky. 6.1 Definice LL(k) gramatik. Definice 6.3. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo.
Kapitola 6 LL gramatiky 6.1 Definice LL(k) gramatik Definice 6.1. Necht G = (N, Σ, P, S) je CFG, k 1 je celé číslo. Definujme funkci FIRST G k : (N Σ) + P({w Σ w k}) předpisem FIRST G k (α) = {w Σ (α w
Syntaxí řízený překlad
Syntaxí řízený překlad Překladový automat Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 27. listopadu 2008 Zobecněný překladový automat Překladový automat
Bezkontextové jazyky. Bezkontextové jazyky 1 p.1/39
Bezkontextové jazyky Bezkontextové jazyky 1 p.1/39 Jazyky typu 2 Definice 4.1 Gramatika G = (N, Σ, P, S) si nazývá bezkontextovou gramatikou, jestliže všechna pravidla z P mají tvar A α, A N, α (N Σ) Lemma
Sudý počet jedniček: S 1 0S 1 1S 2 e S 2 1S 1 0S 2
Otázky ke zkoušce 1. Charakterizujte pojem křížový překladač Provádí překlad na počítači pro jiný počítač (např. pračky, myčky, automobily). Generuje kód pro jiný počítač, než na kterém probíhá překlad.
Základy teoretické informatiky Formální jazyky a automaty
Základy teoretické informatiky Formální jazyky a automaty Petr Osička KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI Outline Literatura Obsah J.E. Hopcroft, R. Motwani, J.D. Ullman Introduction to
Úvod do informatiky. Miroslav Kolařík
Úvod do informatiky přednáška desátá Miroslav Kolařík Zpracováno dle R. Bělohlávek, V. Vychodil: Diskrétní matematika 2, http://phoenix.inf.upol.cz/esf/ucebni/dm2.pdf P. Martinek: Základy teoretické informatiky,
- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku
Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová
Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
Úvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie
Úvod z historie RNDr. Miroslav Benedikovič John Louis von Neumann r. 1946 nová koncepce počítače (společná paměť pro kód programu a zpracovávaná data) vytvořila podmínky pro vznik softvéru na přípravu
/1: Teoretická informatika(ti) přednáška 4
456-330/1: Teoretická informatika(ti) přednáška 4 prof. RNDr Petr Jančar, CSc. katedra informatiky FI VŠB-TUO www.cs.vsb.cz/jancar LS 2009/2010 Petr Jančar (FI VŠB-TU) Teoretická informatika(ti) LS 2009/2010
ALGORITMIZACE A PROGRAMOVÁNÍ
Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení
Západočeská univerzita FAKULTA APLIKOVANÝCH VĚD
Západočeská univerzita FAKULTA APLIKOVANÝCH VĚD Obsah: 1 Struktura a princip činnosti překladače... 3 2 Regulární gramatika, konečný automat a jejich ekvivalence... 5 3 Lexikální analýza... 8 4 Bezkontextová
GENEROVÁNI KÓDU jazyk Mila
Czech Technical University in Prague Faculty of Information Technology Department of Theoretical Computer Science GENEROVÁNI KÓDU jazyk Mila Jan Janoušek Evropský sociální fond. Praha & EU: Investujeme
NPRG030 Programování I, 2015/16 1 / :25:32
NPRG030 Programování I, 2015/16 1 / 21 22. 10. 2015 13:25:32 Podprogramy Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X
Uplatnění metod na zvolený jazyk
Uplatnění metod na zvolený jazyk Při výběru mezi metodami výše popsanými se řídíme především podle typu symbolů, které jazyk obsahuje. Výhodná bývá často kombinace těchto metod nejdřív použijeme metodu
Programovací jazyky, syntaxe, sémantika, zpsoby popisu
Sémantika programovacích jazyk: Syntaxe a sémantika Syntaxe a sémantika Programovací jazyky, syntaxe, sémantika, zpsoby popisu Ti hlavní charakteristiky jazyka (sémiotika) jsou: - syntax, sémantika a pragmatika
Algoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘEKLADAČE HASHIM HABIBALLA OSTRAVA 2005 Recenzenti: RNDr. PaedDr. Eva Volná, PhD. Mgr. Rostislav Fojtík Název: Překladače Autoři: Dr. Hashim Habiballa, PhD. Vydání: první,
NPRG030 Programování I, 2010/11
Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE když X, Y jsou (číselné) výrazy, potom X = Y X Y X < Y X > Y X = Y jsou
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE PŘEKLADY TYPICKÝCH JAZYKOVÝCH KONSTRUKCÍ PROGRAMOVACÍCH JAZYKŮ.
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE PŘEKLADY TYPICKÝCH JAZYKOVÝCH KONSTRUKCÍ PROGRAMOVACÍCH JAZYKŮ. 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Dva základní
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS PARALELNÍ SYNTAKTICKÁ
Rozšíření ksh vůči sh při práci s proměnnými
Rozšíření ksh vůči sh při práci s proměnnými (X36UNX, Jan Skalický, 2006) Pole homogenní lineární struktura implicitn ě s číselným rozsahem index ů 0...1023 (někde 4095) implicitn ě řetězcov ě orientovaná
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA BAKALÁŘSKÁ PRÁCE 2002 SEDLÁK MARIAN - 1 - OSTRAVSKÁ UNIVERZITA PŘÍRODOVĚDECKÁ FAKULTA KATEDRA INFORMATIKY A POČÍTAČŮ Vizualizace principů výpočtu konečného
dovolují dělení velkých úloh na menší = dekompozice
Podprogramy dovolují dělení velkých úloh na menší = dekompozice Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
NPRG030 Programování I, 2016/17 1 / :58:13
NPRG030 Programování I, 2016/17 1 / 31 10. 10. 2016 10:58:13 Podmínka = něco, co JE, nebo NENÍ splněno typ Boolean hodnoty: TRUE pravda FALSE lež domluva (optimistická): FALSE < TRUE NPRG030 Programování
Náznak ukázky syntaxe a sémantiky pro projekt. 1 Syntaktické prvky. Poslední aktualizace: 8.
Jednoduchý interpretační překladač Náznak ukázky syntaxe a sémantiky pro projekt Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 8. ledna 2008 1 Syntaktické
3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA
Jan Schmidt 2011 Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze Zimní semestr 2011/12 MI-PAA EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI
Algoritmizace. 1. Úvod. Algoritmus
1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá
Bezkontextové jazyky 2/3. Bezkontextové jazyky 2 p.1/27
Bezkontextové jazyky 2/3 Bezkontextové jazyky 2 p.1/27 Transformace bezkontextových gramatik Bezkontextové jazyky 2 p.2/27 Ekvivalentní gramatiky Definice 6.1 Necht G 1 a G 2 jsou gramatiky libovolného
DSL manuál. Ing. Jan Hranáč. 27. října 2010. V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v
DSL manuál Ing. Jan Hranáč 27. října 2010 V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v současné době krátký) seznam vestavěných funkcí systému. 1 Vytvoření nového dobrodružství Nejprve
TÉMATICKÝ OKRUH TZD, DIS a TIS
TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 27. Otázka : Principy moderních překladačů, virtuální stroj. Obsah : 1.Překladač a jeho struktura 2.Druhy překladačů 3.Hlavní části překladače 3.1 Lexikální
Pumping lemma - podstata problému. Automaty a gramatiky(bi-aag) Pumping lemma - problem resolution. Pumping lemma - podstata problému
BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 2/22 Pumping lemma - podstata problému BI-AAG (2011/2012) J. Holub: 10. Vlastnosti regulárních jazyků p. 4/22 Automaty a gramatiky(bi-aag)
Generování vnitřní reprezentace programu
Generování vnitřní reprezentace programu Miroslav Beneš Dušan Kolář Možnosti překladu Interpretace Okamžité provádění programu Překlad do instrukcí procesoru Závislost na konkrétním typu procesoru Překlad
Semestrální práce z předmětu Teorie programovacích jazyků
Vysoké učení technické v Brně Fakulta informačních technologií Semestrální práce z předmětu Teorie programovacích jazyků Roman Lukáš 2003-2004 1 Jazykové procesory (Language Processors) 1.1 Překladače
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS MODIFIKACE SYNTAKTICKÉ
type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;
Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá
EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI
EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!
Vztah teorie vyčíslitelnosti a teorie složitosti. IB102 Automaty, gramatiky a složitost, /31
Vztah teorie vyčíslitelnosti a teorie složitosti IB102 Automaty, gramatiky a složitost, 2. 12. 2013 1/31 IB102 Automaty, gramatiky a složitost, 2. 12. 2013 2/31 Časová složitost algoritmu počet kroků výpočtu
1. Charakterizujte pojem křížový překladač Překlad na jiném procesoru než exekuce (viz zabudované systémy (např. pračky, myčky, automobily)).
Otázky ke zkoušce KIV/FJP 1. Charakterizujte pojem křížový překladač Překlad na jiném procesoru než exekuce (viz zabudované systémy (např. pračky, myčky, automobily)). 2. Objasněte pojem silikonový překladač
2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
3 Co je algoritmus? 2 3.1 Trocha historie... 2 3.2 Definice algoritmu... 3 3.3 Vlastnosti algoritmu... 3
Obsah Obsah 1 Program přednášek 1 2 Podmínky zápočtu 2 3 Co je algoritmus? 2 3.1 Trocha historie............................ 2 3.2 Definice algoritmu.......................... 3 3.3 Vlastnosti algoritmu.........................
Vlastnosti regulárních jazyků
Vlastnosti regulárních jazyků Podobně jako u dalších tříd jazyků budeme nyní zkoumat následující vlastnosti regulárních jazyků: vlastnosti strukturální, vlastnosti uzávěrové a rozhodnutelné problémy pro
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY SYNTAKTICKÁ ANALÝZA ZALOŽENÁ NA MULTIGENEROVÁNÍ PARSING BASED ON MULTIGENERATION
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS SYNTAKTICKÁ ANALÝZA
Přijímací zkouška na navazující magisterské studium 2018
Přijímací zkouška na navazující magisterské studium 2018 Řešení příkladů pečlivě odůvodněte. Příklad 1 (2 bodů) Studijní program: Studijní obory: Varianta A Matematika MMUI Navrhněte deterministický konečný