VOJENSKÁ AKADÉMIA V LIPTOVSKOM MIKULÁŠI PREKLADAČE

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "VOJENSKÁ AKADÉMIA V LIPTOVSKOM MIKULÁŠI PREKLADAČE"

Transcript

1 VOJENSKÁ AKADÉMIA V LIPTOVSKOM MIKULÁŠI Fakulta zabezpečenia velenia Katedra informatiky a výpočtovej techniky RNDr. Ľubomír Dedera, PhD. PREKLADAČE Prvá kniha Skriptá Liptovský Mikuláš 2002

2 RNDr. Ľubomír Dedera, PhD. Recenzent: pplk. doc. RNDr. Milan Lehotský, CSc. Za odbornú a jazykovú stránku tohto vysokoškolského učebného textu zodpovedá autor. Rukopis neprešiel redakčnou ani jazykovou úpravou. ISBN

3 3 PRVÁ KNIHA Obsah OBSAH... 3 PRVÁ KNIHA... 3 ZOZNAM POUŢITÝCH SKRATIEK A SYMBOLOV... 6 PREDSLOV... 7 PRVÁ ČASŤ: TEORETICKÉ VÝCHODISKÁ FORMÁLNE JAZYKY A GRAMATIKY ZÁKLADNÉ POJMY KLASIFIKÁCIA GRAMATÍK Cvičenia REGULÁRNE JAZYKY A KONEČNÉ AUTOMATY REGULÁRNE JAZYKY DETERMINISTICKÉ KONEČNÉ AUTOMATY NEDETERMINISTICKÉ KONEČNÉ AUTOMATY VZŤAH MEDZI DETERMINISTICKÝMI A NEDETERMINISTICKÝMI KONEČNÝMI AUTOMATMI MINIMALIZÁCIA POČTU STAVOV DETERMINISTICKÝCH KONEČNÝCH AUTOMATOV VZŤAH MEDZI KONEČNÝMI AUTOMATMI A REGULÁRNYMI GRAMATIKAMI Cvičenia BEZKONTEXTOVÉ JAZYKY A ZÁSOBNÍKOVÉ AUTOMATY BEZKONTEXTOVÉ JAZYKY TRANSFORMÁCIE BEZKONTEXTOVÝCH GRAMATÍK Odstránenie nadbytočných symbolov gramatiky Odstránenie -pravidiel Odstránenie jednoduchých pravidiel Odstránenie ľavej rekurzie Greibachovej normálny tvar gramatiky ZÁSOBNÍKOVÉ AUTOMATY VZŤAH MEDZI ZÁSOBNÍKOVÝMI AUTOMATMI A BEZKONTEXTOVÝMI GRAMATIKAMI Cvičenia DRUHÁ ČASŤ: VŠEOBECNÉ ASPEKTY TVORBY KOMPILÁTOROV ŠTRUKTÚRA KOMPILÁTORA A LEXIKÁLNA ANALÝZA ŠTRUKTÚRA KOMPILÁTORA LEXIKÁLNY ANALYZÁTOR GENERÁTOR LEXIKÁLNEHO ANALYZÁTORA LEX Cvičenia SYNTAKTICKÁ ANALÝZA DETERMINISTICKÝCH BEZKONTEXTOVÝCH JAZYKOV DETERMINISTICKÉ BEZKONTEXTOVÉ JAZYKY A DETERMINISTICKÉ ZÁSOBNÍKOVÉ AUTOMATY ALGORITMY PRE ANALÝZU GRAMATÍK CIELE SYNTAKTICKEJ ANALÝZY SYNTAKTICKÁ ANALÝZA ZHORA-NADOL... 94

4 Teoretický model LL(1) syntaktické analyzátory Úpravy bezkontextových gramatík na LL(1) gramatiky Problém if-then-else pri LL syntaktickej analýze SYNTAKTICKÁ ANALÝZA ZDOLA-NAHOR Teoretický model Všeobecný algoritmus LR syntaktických analyzátorov LR(0) syntaktické analyzátory LR(1) syntaktické analyzátory SLR(1) syntaktické analyzátory LALR(1) syntaktické analyzátory Problém if-then-else pri LR syntaktickej analýze Cvičenia SPRACOVANIE SÉMANTIKY MEDZIKÓD SÉMANTICKÉ PODPROGRAMY VOLANIE SÉMANTICKÝCH PODPROGRAMOV V LL SYNTAKTICKÝCH ANALYZÁTOROCH VOLANIE SÉMANTICKÝCH PODPROGRAMOV V LR SYNTAKTICKÝCH ANALYZÁTOROCH GENERÁTOR LALR(1) SYNTAKTICKÉHO ANALYZÁTORA YACC Cvičenia TABUĽKY SYMBOLOV ZÁKLADNÉ IMPLEMENTAČNÉ TECHNIKY ŠPECIÁLNE PRÍPADY Cvičenia ORGANIZÁCIA PAMÄTI POČAS BEHU PROGRAMU PRIDEĽOVANIE PAMÄTI PREMENNÝM JEDNOTLIVÝCH ÚDAJOVÝCH TYPOV ORGANIZÁCIA PAMÄTI PRIDELENEJ PROGRAMU Cvičenia OBSAH DRUHÁ KNIHA TRETIA ČASŤ: SPRACOVANIE JAZYKOVÝCH KONŠTRUKCIÍ A GENEROVANIE KÓDU SPRACOVANIE DEKLARÁCIÍ ZÁKLADNÉ TECHNIKY A ÚDAJOVÉ ŠTRUKTÚRY DEKLARÁCIE PREMENNÝCH DEKLARÁCIE TYPOV TYP ZÁZNAM TYP POLE Cvičenia SPRACOVANIE VÝRAZOV A ÚDAJOVÝCH ŠTRUKTÚR SPRACOVANIE JEDNODUCHÝCH IDENTIFIKÁTOROV A KONŠTÁNT PREKLAD VÝRAZOV PREKLAD ODKAZOV NA POLOŢKY ZÁZNAMOV PREKLAD ODKAZOV NA PRVKY POĽA S KONŠTANTNÝMI HRANICAMI Cvičenia SPRACOVANIE RIADIACICH ŠTRUKTÚR SPRACOVANIE ZLOŢENÉHO PRÍKAZU, PRÁZDNEHO PRÍKAZU A SEKVENCIE PRÍKAZOV PREKLAD PRIRAĎOVACÍCH PRÍKAZOV PREKLAD PODMIENENÝCH PRÍKAZOV Preklad príkazu if Preklad príkazu case

5 PREKLAD CYKLOV Preklad príkazu while Preklad príkazu for SKRÁTENÉ VYHODNOCOVANIE LOGICKÝCH VÝRAZOV Cvičenia SPRACOVANIE PROCEDÚR A FUNKCIÍ SPRACOVANIE DEFINÍCIÍ JEDNODUCHÝCH PODPROGRAMOV BEZ PARAMETROV SPRACOVANIE FORMÁLNYCH A SKUTOČNÝCH PARAMETROV SPRACOVANIE HLAVNÉHO PROGRAMU Cvičenia GENEROVANIE A OPTIMALIZÁCIA KÓDU ZÁKLADNÉ ÚLOHY JEDNODUCHÝ GENERÁTOR KÓDU INTERPRETATÍVNY PRÍSTUP KU GENEROVANIU KÓDU A LOKÁLNA OPTIMALIZÁCIA Optimalizácia výpočtu adresy Eliminácia redundantných výpočtov Prideľovanie registrov GLOBÁLNA OPTIMALIZÁCIA Cvičenia LITERATÚRA PRÍLOHA SYNTAX POUŢITÉHO JAZYKA... I

6 6 Zoznam použitých skratiek a symbolov AZ aktivačný záznam podprogramu AP ukazovateľ na aktivačný záznam (activation pointer) AST abstraktný syntaktický strom (abstract syntax tree) CFSM charakteristický automat syntaktického analyzátora (characteristic finite state machine) CSE spoločný podvýraz (common subexpression) DKA deterministický konečný automat DZA deterministický zásobníkový automat GNT Greibachovej normálny tvar (bezkontextovej gramatiky) KA konečný automat (deterministický alebo nedeterministický) NKA nedeterministický konečný automat OP podľa kontextu buď operačná pamäť alebo operátor PT prechodová tabuľka konečného automatu RT rozkladová tabuľka LL(1) syntaktického analyzátora SP ukazovateľ na vrchol zásobníka (stack pointer) SZ sémantický záznam ST skoková tabuľka TS tabuľka symbolov ZA zásobníkový automat (nedeterministický) # a (w) počet výskytov symbolu a v slove w Q počet prvkov mnoţiny Q w dĺţka reťazca w prázdne slovo prázdna mnoţina relácia derivácie (v gramatike) x R relácia prechodu automatu obrátený reťazec k reťazcu x prechodová funkcia (konečného alebo zásobníkového) automatu

7 7 Predslov Problematika prekladačov a kompilátorov je súčasťou študijných programov inţinierskych resp. magisterských odborov zameraných na informatiku na elektrotechnických resp. matematicko-fyzikálnych fakultách v ČR a SR. Hlavným cieľom tejto publikácie je preklenúť medzeru v dostupnej literatúre a poskytnúť pedagógom a študentom, ako aj odbornej verejnosti prakticky orientovanú učebnicu zameranú na túto problematiku. U čitateľa sa na začiatku predpokladá znalosť základov algebry (pojmy ako sú mnoţina, binárna relácia, relácia ekvivalencie, zobrazenie apod.), dobrá znalosť nejakého vyššieho procedurálneho programovacieho jazyka (najlepšie PASCALu, na príklade riadiacich a údajových štruktúr ktorého sa problematika vysvetľuje), znalosť základných údajových štruktúr a algoritmov (zásobník, front, lineárny zoznam resp. binárny vyhľadávací strom) a aspoň pasívna znalosť prog. jazyka C, pretoţe algoritmy v tejto publikácii sú zostavené v pseudokóde zaloţenom na tomto jazyku. Pre čitateľa je tieţ výhodou, ak aspoň pasívne ovláda nejaký strojovo orientovaný jazyk. Znalosť problematiky formálnych jazykov a automatov nie je na začiatku potrebná, nakoľko tie aspekty, ktoré sa priamo dotýkajú prekladačov, sú prebraté v kap. 1-3 a čiastočne 5. Na druhej strane, táto publikácia si nerobí nárok na to, aby bola plnohodnotnou učebnicou teórie formálnych jazykov a automatov, pokiaľ sa táto problematika vyučuje ako samostatný predmet. Pri výklade problematiky sa učebnica snaţí byť algoritmicky orientovanou, čím by mala významne pomôcť pri tvorbe vlastného kompilátora, či uţ ako semestrálnej práce alebo aj komerčne orientovaného. Do tohto rámca spadá aj orientácia na prostriedky pre podporu tvorby kompilátorov programy lex a yacc, ktoré sú súčasťou vývojových prostredí unixovských operačných systémov. Keďţe tieto prostriedky sú úzko viazané na prog. jazyk C, v záujme jednotného spôsobu vyjadrenia sú algoritmy v tejto učebnici prezentované v pseudokóde zaloţenom na prog. jazyku C, resp. priamo v ňom. Pre dobré zvládnutie tejto problematiky je preto potrebné mať k dispozícii nejaký počítač s UNIXom plne postačuje bezplatný LINUX. Na druhej strane, pri výklade problematiky kompilátorov sa v prevaţnej miere opierame o jazykové konštrukcie vychádzajúce z prog. jazyka PASCAL, a to pre ich jednoduchosť a všeobecnú známosť ich syntaxe a sémantiky.

8 8 Publikáciu moţno logicky rozčleniť na tri časti. Prvá časť nazvaná Teoretické východiská je zameraná teoreticky a jej cieľom je zoznámiť čitateľa so základmi teórie formálnych jazykov a automatov, ktorá je fundamentálna pre konštrukciu praktických prekladačov. V rámci toho je kap. 1 venovaná základným pojmom teórie formálnych jazykov a gramatík, kap. 2 sa zaoberá regulárnymi jazykmi a konečnými automatmi a kap. 3 sa venuje bezkontextovým jazykom a zásobníkovým automatom. Druhá časť nazvaná Všeobecné aspekty tvorby kompilátorov logicky predstavuje rozhranie medzi teoretickou prvou časťou a praktickejšou treťou časťou. V rámci toho sa kap. 4 venuje štruktúre kompilátora a lexikálnej analýze, kap. 5 syntaktickej analýze deterministických bezkontextových jazykov, kap. 6 spracovaniu sémantiky na všeobecnej úrovni, kap. 7 tabuľkám symbolov a kap. 8 organizácii pamäti počas behu programu. Tretia časť nazvaná Spracovanie jazykových konštrukcií a generovanie kódu je obsahovo zameraná na popis spracovania sémantiky najdôleţitejších údajových a riadiacich štruktúr procedurálne orientovaných programovacích jazykov (PASCAL): spracovanie deklarácií (kap. 9), výrazov a údajových štruktúr (kap. 10), riadiacich štruktúr (kap. 11), procedúr a funkcií (kap. 12). Záverom sa v kap. 13 venujeme základom generovania a optimalizácie cieľového kódu. Všetky kapitoly obsahujú na záver cvičenia, ktorých vyriešenie resp. programová realizácia napomáha úspešnému zvládnutiu problematiky. Príloha publikácie obsahuje syntax pouţitej podmnoţiny prog. jazyka PASCAL, pomocou ktorej je vedený výklad. Prílohu moţno vyuţiť aj pri zadaní semestrálnej práce. Záverom by som chcel poďakovať recenzentovi pplk. doc. RNDr. Milanovi Lehotskému, CSc. za jeho ochotu a cenné pripomienky, ktoré prispeli ku obsahovej kvalite tejto učebnice. Autor

9 9 Prvá časť: TEORETICKÉ VÝCHODISKÁ Cieľom tejto časti je zoznámiť čitateľa so základmi teórie formálnych jazykov a automatov, na ktorej je zaloţená konštrukcia moderných kompilátorov. V rámci toho je kap. 1 venovaná základným pojmom teórie formálnych jazykov a gramatík, kap. 2 sa zaoberá regulárnymi jazykmi a konečnými automatmi a kap. 3 sa venuje bezkontextovým jazykom a zásobníkovým automatom. 1. Formálne jazyky a gramatiky 1.1. Základné pojmy Formálne jazyky a gramatiky predstavujú teoretické prostriedky, pomocou ktorých je moţné popísať syntax programovacích jazykov a ako uvidíme neskôr, zohrávajú kľúčovú úlohu aj pri konštrukcii praktických prekladačov. Najprv si ale musíme vybudovať nevyhnutný pojmový aparát. Podobne ako u prirodzených jazykov aj tu je potrebné začať s prvotnými pojmami ako sú písmeno (symbol) a abeceda, z ktorých sa vytvárajú vyššie jednotky slová resp. vety [2]. Definícia 1.1 [2] Abeceda je konečná mnoţina prvkov, ktoré sa nazývajú symboly. Príklad 1.1 Abecedou môţe byť: {A, B,..., Z latinka; {0, 1,..., 9 abeceda desiatkových číslic; {and, array, begin, end, case, div, do,... mnoţina kľúčových slov jazyka PASCAL. Zo symbolov sa vytvárajú vyššie jednotky reťazce (resp. slová alebo vety všetky tri pojmy predstavujú v tomto kontexte synonymá) ako vhodné postupnosti prípustných symbolov. Definícia 1.2 Nech A je abeceda. Potom ľubovoľnú konečnú postupnosť pozostávajúcu zo symbolov z A nazývame reťazec (slovo, veta) nad abecedou A. Počet symbolov v reťazci x nazývame dĺţka reťazca a označujeme x. Ďalej si zavedieme niekoľko pojmov, ktoré priamo súvisia s reťazcami.

10 10 Definícia 1.3 Nech A je abeceda. Potom: Reťazec s nulovou dĺţkou sa nazýva prázdny reťazec a označuje sa. Ak x = a 1...a n je reťazec nad abecedou A, potom obrátený reťazec k reťazcu x je reťazec x R = a n...a 1. Ak u = a 1...a k a v = b 1...b l sú reťazce nad abecedou A, potom zreťazenie dvoch reťazcov u, v je reťazec u.v (alebo skrátene uv), u.v = a 1...a k b 1...b l. Ak x, y, z sú tri reťazce, potom x je predponou, y je podreťazcom a z je príponou reťazca xyz. Symbolom A * označujeme mnoţinu všetkých reťazcov nad abecedou A a symbolom A + = A * { mnoţinu všetkých neprázdnych reťazcov nad abecedou A. Pre prázdny reťazec je charakteristické, ţe nezávisí od abecedy. Z reťazcov môţeme ďalej vytvárať formálne jazyky, ktoré budú ďalej predmetom hlbšieho štúdia. Definícia 1.4 Ak je daná abeceda A, tak ľubovoľnú podmnoţinu L mnoţiny A * nazývame formálny jazyk nad abecedou A. Ak L =, tak L nazývame prázdny jazyk, ak L obsahuje konečný počet slov, tak L nazývame konečný jazyk. Podobne ako v prípade reťazcov môţeme definovať nad formálnymi jazykmi niektoré operácie. Definícia 1.5 Ak L 1, L 2 sú jazyky, potom ich zreťazením je jazyk L = L 1 L 2 = {xy, x L 1 y L 2. Ak L je jazyk, potom jeho n-tá mocnina L n je jazyk definovaný takto: a) L 0 = { ; b) L k+1 = LL k. Iteráciou jazyka L nazývame mnoţinu L * n L n 0 a pozitívnou iteráciou mnoţinu L 1 n n L. V tomto prípade platí, ţe L * = L + {. Príklad 1.2 Nech A = {a, b, c, d je abeceda, x, y, z sú reťazce, x = aba, y = bcd, z = a, L 1 = {a a L 2 = {ba, bb, bc, bd sú jazyky. Potom a) xy = ababcd; b) x = 3; c) y R = dcb; d) z je predponou (aj príponou) x;

11 11 e) A * = {, a, b, c, d, aa, ab, ac, ad, ba, bb, bc, bd, ca, cb, cc, cd, da, db, dc, dd, aaa, aab,...; * f) λ, a, aa,,... L1 aaa ; g) L 1 L 2 = {aba, abb, abc, abd. Ďalej sa budeme zaoberať tzv. generatívnym spôsobom špecifikácie jazyka [2], ktorý je reprezentovaný formálnym systémom gramatikou. Okrem generatívneho spôsobu špecifikácie jazyka existuje aj tzv. akceptačný spôsob špecifikácie jazyka, ktorý je zaloţený na rozličných typoch automatov a bude vysvetlený neskôr (kap. 2.2, 2.3, 3.3). Z hľadiska prekladačov je generatívny spôsob vhodný na popis syntaxe programovacích jazykov, akceptačný sa vyuţíva ako teoretický model niektorých súčastí prekladačov (lexikálny a syntaktický analyzátor, kap. 4, 5). V tejto súvislosti je treba zdôrazniť, ţe pri danom formálnom jazyku (zatiaľ chápanom ako mnoţina slov) sa môţeme podľa potreby rozhodnúť buď pre jeho špecifikáciu pomocou gramatiky alebo pomocou automatu, resp. k špecifikácii pomocou gramatiky nájsť ekvivalentnú špecifikáciu vo forme automatu a naopak (kap. 2.6, 3.4). Skôr ako pristúpime k formálnej definícii gramatiky, rozoberieme si spôsob špecifikácie jazyka generatívnym spôsobom na prirodzenom jazyku. Ako abeceda bude slúţiť mnoţina slov a bude nás zaujímať štruktúra vety. Symbolu z predchádzajúcich riadkov bude preto zodpovedať slovo jazyka a reťazcu veta jazyka. Štruktúra vety prirodzeného jazyka je definovaná gramatickými pravidlami. Beţná (zjednodušená) slovenská veta sa skladá z podmetovej časti, po ktorej nasleduje prísudková časť. Vetu teda definujeme pomocou ďalších dvoch jednotiek, ktorých význam zatiaľ nepoznáme, a preto ich musíme definovať. Podmetovú časť moţno definovať ako podstatné meno a prísudkovú časť ako sloveso, za ktorým nasleduje predmetová časť. Aby bol jazyk správne definovaný, musí tento proces byť taký, aby sme v konečnom dôsledku definovali kaţdú jednotku pomocou veličín, ktoré sú známe, prvotné, ktoré sa nakoniec objavia v skutočnej vete. Tak by sme mohli podstatné meno nahradiť skutočným podstatným menom, sloveso konkrétnym slovesom atď. [2]. Celý proces moţno pre vetu Milan píše úlohu graficky zobraziť podľa Obr Ako vidieť z obrázka, prvotné jednotky sú na najniţšej úrovni. Na odlíšenie prvotných jednotiek od jednotiek definovaných pomocou iných jednotiek pouţívame zvyčajne špeciálne ohraničujúce symboly, odlišné typy písma apod. V príklade uvedenom na Obr. 1.1 sú definované jednotky uzatvorené do zátvoriek <, >.

12 12 <veta> <podmetová časť> <prísudková časť> <podstatné meno> <sloveso> <predmetová časť> Milan píše <podstatné meno> úlohu Obr. 1.1 Gramatická štruktúra vety prirodzeného jazyka Gramatické pravidlá, pomocou ktorých definujeme jednotlivé jednotky, budeme písať v tomto tvare: <jednotka, ktorú definujeme> postupnosť (reťazec) jednotiek, pomocou ktorých definujeme jednotku na ľavej strane Vetu prirodzeného jazyka môţeme teraz definovať nasledujúcimi gramatickými pravidlami: 1. <veta> <podmetová časť> <prísudková časť> 2. <podmetová časť> <podstatné meno> 3. <podstatné meno> Milan 4. <prísudková časť> <sloveso> <predmetová časť> 5. <sloveso> píše 6. <predmetová časť> <podstatné meno> 7. <podstatné meno> úlohu Mnoţina všetkých gramatických pravidiel tvorí gramatiku jazyka. Gramatika jazyka nám umoţňuje generovať vety jazyka, ktoré sú gramaticky (syntakticky) správne. Gramatikou určujeme iba syntax jazyka, tzn. ţe určujeme prípustnú štruktúru viet jazyka a prvotné jednotky, ktoré môţeme na danom mieste pouţiť. Ak ľubovoľná veta spĺňa podmienky definované gramatikou, patrí do daného jazyka. Význam viet určuje sémantika. Syntax a sémantika navzájom súvisia. Syntax definuje štruktúru vety, ktorá je zasa základom pri určovaní jej významu [2]. Syntakticky správna veta ešte ne-

13 13 musí byť sémanticky správna. Ako uvidíme ďalej, to isté platí aj pre programovacie jazyky a ich prekladače. Podobne pri formálnych jazykoch a gramatikách budeme pracovať s objektmi, ku ktorým môţeme prísť na základe analýzy prirodzeného jazyka: sú to prvotné symboly, ktoré sa nazývajú terminálne symboly (terminály), ďalej jednotky definované pomocou iných jednotiek, ktoré sa nazývajú neterminálne symboly (neterminály) a gramatické pravidlá, ktoré sa nazývajú prepisovacie pravidlá. Okrem uvedených objektov vystupuje ešte v gramatike jeden neterminálny symbol, ktorý má význačné postavenie v tom, ţe sa z neho začína generovanie všetkých viet (v príklade na Obr. 1.1 je to <veta>). Preto sa nazýva začiatočný symbol gramatiky alebo začiatočný neterminál. Definícia 1.6 [2] Gramatika je usporiadaná štvorica G = (N, T, P, S), kde N je konečná mnoţina neterminálnych symbolov, T je konečná mnoţina terminálnych symbolov, pričom N T =, S N je začiatočný symbol gramatiky a P je mnoţina prepisovacích pravidiel, ktorá je konečnou podmnoţinou mnoţiny (N T) * N(N T) * (N T) *. Symboliku (N T) * N(N T) * (N T) * je potrebné čítať takým spôsobom, ţe ľavá strana kaţdého pravidla ((N T) * N(N T) * ) je reťazec obsahujúci aspoň jeden neterminálny symbol a pravá strana je reťazec zloţený z terminálnych aj neterminálnych symbolov, resp. pravou stranou môţe byť aj prázdny reťazec. Z dôvodu zrozumiteľnejšieho čítania ďalšieho textu, pokiaľ nebude vyslovene stanovené inak, bude platiť nasledujúca konvencia v symbolike: neterminály A, B, C, <slovo>,... (veľké písmená zo začiatku abecedy); terminály a, b, c,... (malé písmená zo začiatku abecedy); reťazce zloţené z terminálov w, x, y, z,... (malé písmená z konca abecedy); reťazce zloţené z terminálov aj neterminálov,,,... (malé grécke písmená okrem ); jeden terminálny alebo neterminálny symbol X, Y, Z,... (veľké písmená z konca abecedy); prepisovacie pravidlá ( je ľavá strana a je pravá strana pravidla);

14 14 niekoľko prepisovacích pravidiel so spoločnou ľavou stranou a jednotlivými pravými stranami 1, 2,..., n n (spoločná ľavá strana sa v zápise uvedie len raz). Príklad 1.3 Usporiadaná štvorica G = ({A, B, {a, b, P, A) s mnoţinou pravidiel P: A aab B B bba aab a aa bb b bba bbaaa je v zmysle definície Definícia 1.6 gramatika. Mnoţina {A, B je mnoţina neterminálov, mnoţina {a, b je mnoţina terminálov, mnoţina P obsahuje všetky pravidlá gramatiky a neterminál A je začiatočný symbol gramatiky. Ak si zoberieme, napríklad, pravidlo bba bbaaa, potom v súlade s definíciou pravidiel v definícii Definícia 1.6 jeho ľavú stranu (bba) môţeme formálne vyjadriť napríklad v tvare 1 A 2 ( 1 = bb, 2 = ), pričom reťazec 1 ({A, B {a, b) *, neterminál A {A, B a reťazec 2 ({A, B {a, b) * ; podobne pri pravej strane pravidla (reťazec = bbaaa) je ({A, B {a, b) *. Ďalej nás bude zaujímať, ako môţeme v gramatike odvodzovať vety z nejakého jazyka. K tomu si najprv potrebujeme zaviesť niekoľko ďalších pojmov. Definícia 1.7 Nech G = (N, T, P, S) je gramatika. Na mnoţine reťazcov zloţených z terminálnych aj neterminálnych symbolov gramatiky (N T) * definujeme reláciu derivácie (alebo krok odvodenia) nasledujúcim spôsobom: (čítaj: z reťazca je moţné priamo derivovať reťazec ), ak v P existuje pravidlo, pričom,, (N T) *, (N T) * N(N T) * Inverzná relácia k relácii derivácie sa nazýva redukcia, tzn. ţe reťazec je moţné priamo redukovať (pomocou pravidla ) na reťazec. Keďţe deriváciou reťazca dostávame ďalší reťazec, má význam hovoriť o mocnine (viacnásobnej kompozícii) relácie derivácie; týmto sa formalizuje postupná viacnásobná aplikácia prepisovacích pravidiel na nejaký reťazec. Definícia 1.8 Nech G = (N, T, P, S) je gramatika a i (N T) * pre i = 0, 1,... k. Potom hovoríme, ţe k sa dá derivovať z 0 (na k krokov), ak platí, ţe i i+1 pre

15 15 i = 0, 1, 2,... k 1. Postupnosť reťazcov 0, 1,..., k sa nazýva derivácia k z 0. Vyjadrovať ju budeme vo forme mocniny relácie v tvare 0 k k. Poznámka. Pre kaţdé (N T) * triviálne platí, ţe sa dá derivovať z (na 0 krokov). Túto skutočnosť vyuţijeme pri zostavovaní reflexívneho a tranzitívneho uzáveru relácie derivácie. Definícia 1.9 Nech G = (N, T, P, S) je gramatika. Potom tranzitívnym uzáverom relácie derivácie nazývame reláciu + definovanú na mnoţine (N T) * nasledovne: + práve vtedy, keď existuje n 1 také, ţe n a reflexívnym a tranzitívnym uzáverom relácie derivácie reláciu * definovanú * práve vtedy, keď existuje n 0 také, ţe n,, (N T) *. V prípade tranzitívneho uzáveru sú dva reťazce, zloţené z terminálnych a neterminálnych symbolov danej gramatiky v relácii (zapisujeme + ) práve vtedy, ak môţeme derivovať z na minimálne jeden krok (tzn. minimálne raz sa pouţije nejaké prepisovacie pravidlo). V prípade reflexívneho a tranzitívneho uzáveru pripúšťame aj deriváciu na 0 krokov, tzn. kaţdý reťazec (N T) * bude naviac vţdy aj v relácii sám so sebou ( * ). Príklad 1.4 Uvaţujme o gramatike z príkladu Príklad 1.3. Potom: a) A aab priama derivácia pomocou pravidla A aab; b) aab bbb priama derivácia pomocou aa bb; c) aab 3 aaaabba derivácia aab aaabb aaaabbb aaaabba; d) A + ab existuje n = 2 a derivácia A aab ab (posledný krok pomocou pouţitia pravidla A ); e) A * aabb existuje n = 3 a derivácia A aab aaabb aabb; f) aab * aab lebo aab 0 aab, avšak neplatí aab + aab, pretoţe v danej gramatike nenájdeme ţiadnu deriváciu aab z aab na minimálne jeden krok (preverte). Definícia 1.10 Nech G = (N, T, P, S) je gramatika. Potom kaţdý reťazec (N T) *, ktorý je moţno derivovať zo začiatočného neterminálu gramatiky G, sa nazýva vetná forma; formálne, je vetná forma práve vtedy, keď S *.

16 16 Príklad 1.5 V predchádzajúcom príklade sú vetnými formami napr. reťazce A, aab, aaabb, ab, aabb. Teraz uţ konečne môţeme pristúpiť k definícii jazyka špecifikovaného (alebo generovaného) formálnou gramatikou. Je to mnoţina tých reťazcov (zloţených len s terminálnych symbolov), ktoré je moţné derivovať zo začiatočného neterminálu gramatiky. Definícia 1.11 Nech G = (N, T, P, S) je gramatika. Jazykom L(G) generovaným gramatikou G nazývame mnoţinu L(G) = {w S * w, w T *. Reťazec patriaci do daného jazyka sa nazýva slovo alebo veta jazyka. Príklad 1.6 Nájdite gramatiku, ktorá generuje jazyk obsahujúci všetky správne uzátvorkované výrazy, tzn. L = {, (), (()), ()(), ((())), (())(), ()(()), ()()(), (((()))),... (vo výrazoch musí ku kaţdej ľavej zátvorke existovať zodpovedajúca pravá zátvorka). Uvaţujme o gramatike G = {{S, A, {(, ), P, S s pravidlami P: 1. S AS 2. S 3. A (S) Je zrejmé, ţe L(G) L, pretoţe v procese derivácie sa vţdy ku kaţdej ( súčasne vygeneruje zodpovedajúca ) (pravidlo 3), čo znamená, ţe kaţdé slovo, ktoré je moţné odvodiť v gramatike G, je správne uzátvorkovaný výraz. Na druhej strane musíme ešte ukázať, ţe ku kaţdému správne uzátvorkovanému výrazu vieme nájsť jeho deriváciu v gramatike G. Tu si pomôţeme matematickou indukciou vzhľadom na maximálnu úroveň vnorenia l výrazu (napr. výrazy (), ()() majú l = 1, (()()), (())(), l = 2 apod.). Nech l = 0. Potom zodpovedajúci výraz musí byť a zodpovedajúca derivácia v gramatike G je S. Predpokladajme teraz, ţe deriváciu vieme nájsť ku všetkým výrazom s maximálnou úrovňou vnorenia l k (indukčný predpoklad). Nech w je výraz s l = k + 1. w si najprv rozdelíme na segmenty w 1...w n, pričom kaţdý segment predstavuje správne uzátvorkovaný výraz a úroveň vnorenia aspoň jedného segmentu je k + 1. Bez straty na všeobecnosti budeme predpokladať, ţe je to segment w 1. Slovo w potom môţeme vygenerovať nasledujúcou deriváciou:

17 17 S AS AAS... AA... A (S)A...A... w 1 A...A... w 1...w n n Vyuţili sme pri tom skutočnosť, ţe po odstránení krajných zátvoriek zo segmentu w 1 sa jeho úroveň zmenší o 1, čo znamená, ţe na generovanie jeho vnútra z neterminálu S vo vetnej forme (S)A...A môţeme pouţiť indukčný predpoklad. Ak je úroveň vnorenia ďalšieho segmentu k + 1, pouţijeme rovnaký postup, ak je menšia alebo rovná k, môţeme priamo pouţiť indukčný predpoklad atď. Napríklad, ku výrazu (()())() moţno zostrojiť deriváciu S AS AAS AA (S)A (AS)A (AAS)A (AA)A... ((S)(S))(S)... (()())(). Jeden jazyk nemusí byť generovaný len jedinou gramatikou, preto má zmysel na základe toho zaviesť pojem ekvivalentnej gramatiky. Ekvivalentné gramatiky budeme vyuţívať v kapitolách 3.2 a Definícia 1.12 Gramatiky G 1, G 2, pre ktoré platí L(G 1 ) = L(G 2 ), sa nazývajú ekvivalentné gramatiky Klasifikácia gramatík Na základe tvaru prepisovacích pravidiel sú definované určité hierarchické triedy gramatík a jazykov. Definícia 1.13 [2] Nech G = (N, T, P, S) je gramatika. Potom hovoríme, ţe G je a) bez ohraničenia alebo typu 0, ak na prepisovacie pravidlá nekladieme ţiadne obmedzenia; b) kontextová alebo typu 1, ak kaţdé prepisovacie pravidlo z P má tvar, kde (N T) * N(N T) *, (N T) + a platí (dĺţka pravej strany pravidla nesmie byť menšia ako dĺţka ľavej strany); Iná definícia pripúšťa pravidlá tvaru A γ,,, γ (N T) *, A N; v tomto prípade reťazce, predstavujú kontext, pri ktorom sa neterminál A môţe prepísať na reťazec γ; c) bezkontextová alebo typu 2, ak kaţdé prepisovacie pravidlo z P má tvar A, kde A N, (N T) * ; názov pramení z toho, ţe pri výbere pravidla pre neterminál A sa neberie do úvahy jeho aktuálny kontext vo vetnej forme;

18 18 d) regulárna alebo typu 3, ak kaţdé prepisovacie pravidlo z P má jeden z tvarov A bb alebo A b, kde A, B N, b T. Niekedy je potrebné špecifikovať jazyk L {, teda jazyk s prázdnym slovom, aj pre jazyky špecifikované typmi gramatík, v ktorých sme nepripustili pouţitie na pravej strane pravidiel (regulárne a kontextové). Tento problém sa zvykne riešiť pouţitím rozšírenej gramatiky, ktorú k danej gramatike zostrojíme pridaním nového začiatočného symbolu S a prepisovacích pravidiel S S a S. V tomto zmysle, ak je jazyk L kontextový, bezkontextový alebo regulárny, aj jazyk L { je kontextový, bezkontextový alebo regulárny. Gramatika uvedená v príklade Príklad 1.3 je gramatika bez obmedzení, v príklade Príklad 1.6 bezkontextová gramatika. Z hľadiska konštrukcie prekladačov nás budú zaujímať regulárne a bezkontextové gramatiky. Keďţe týmito gramatikami sa budeme podrobne zaoberať v kapitolách 2 a 3, ďalšie príklady na ne na tomto mieste vynechávame, resp. nechávame ako cvičenie. Vzťahy gramatík podľa uvedenej klasifikácie sú nasledovné: a) kaţdá regulárna gramatika je bezkontextová; b) kaţdá bezkontextová gramatika je kontextová; c) kaţdá kontextová gramatika je gramatika bez obmedzení. Definícia 1.14 Jazyk nazývame postupne regulárny, bezkontextový, kontextový alebo bez obmedzení, ak ho moţno generovať regulárnou, bezkontextovou, kontextovou gramatikou alebo gramatikou bez obmedzení. Cvičenia 1. Je daná gramatika G = ({S, A, B, {a, b, c, P, S) s pravidlami P: S BAB ABA A AB aa ab B BA b a) stanovte typ gramatiky; b) nájdite deriváciu slova abbbab v danej gramatike. 2. Nájdite gramatiku, ktorá generuje daný jazyk: a) L 1 = {aw w {a, b * ; b) L 2 = {wba w {a, b * ;

19 19 c) L 3 = {xaby x, y {a, b * ; d) L 4 = mnoţina všetkých čísel v pohyblivej rádovej čiarke (napr. 0.25, 45.78, 58.12E 5,...); e) L 5 = {ww R w {a, b * ; f) L 6 = {a n b n n {0, 1, 2,...; g) L 7 = {a n b n c k n, k {1, 2,...; h) L 8 = {aba n b n a n {0, 1, 2,...; i) L 9 = {ww w {a, b * ; (pomôcka: hľadajte kontextovú gramatiku); j) L 10 = {a n b n c n n {1, 2,...; (pomôcka: hľadajte kontextovú gramatiku); k) L 11 = {w w {a, b * a zároveň # a (w) = # b (w), tzn. do jazyka budú patriť všetky reťazce zloţené zo symbolov a, b, v ktorých je počet symbolov a rovný počtu symbolov b ; (pomôcka: hľadajte bezkontextovú gramatiku, inšpirujte sa príkladom Príklad 1.6).

20 20 2. Regulárne jazyky a konečné automaty 2.1. Regulárne jazyky Ako uţ bolo uvedené v definícii Definícia 1.14, jazyk je regulárny, ak existuje nejaká regulárna gramatika, ktorá ho generuje. Hoci je trieda regulárnych jazykov pomerne obmedzená, z hľadiska konštrukcie prekladačov majú regulárne jazyky a gramatiky veľký význam. Pomocou nich moţno popísať základné symboly programovacích jazykov ako sú identifikátory, konštanty, kľúčové slová, operátory a separátory. Uveďme si na tomto mieste dva príklady regulárnych jazykov. Príklad 2.1 Nech je daná gramatika G 1 = ({S, B, C, D, {a, +, P, S), pričom mnoţina P obsahuje pravidlá: S a ad D +B +C B a C ad Potom L(G 1 ) = {a, a+a, a+a+a,... Príklad 2.2 Nech je daná gramatika G 2 = ({S, C, D, {+,, 0, 1, 2,..., 9, P, S), pričom P: S +C C 1D 2D... 9D C 1D 2D... 9D D 0D 1D... 9D Potom jazyk L(G 2 ) bude tvorený všetkými celočíselnými konštantami (prípadne so znamienkom) bez nevýznamných núl zľava Deterministické konečné automaty V predchádzajúcej kapitole sme sa zaoberali gramatikami ako prostriedkami špecifikácie formálneho jazyka generatívnym spôsobom, tzn. ukázali sme ako generovať (syntakticky správne) vety daného jazyka. Pri konštrukcii niektorých súčastí prekladačov sa ale vyuţíva tzv. akceptačný spôsob špecifikácie jazyka, tzn. špecifikácia pomocou automatu. Automat neformálne môţeme popísať ako zariadenie, ktoré do-

21 21 stáva na vstup reťazce zloţené z terminálnych symbolov. Zariadenie daný vstupný reťazec spracuje a po konečnom čase (počte operácií) oznámi, či tento patrí do jazyka alebo nie (hovoríme, ţe automat slovo akceptuje resp. neakceptuje). Začneme od najjednoduchších zariadení tohoto typu deterministických konečných automatov. Definícia 2.1 [2] Pod deterministickým konečným automatom (DKA) M rozumieme usporiadanú päticu M = (Q, T,, q 0, F), kde Q konečná mnoţina stavov automatu; T konečná mnoţina prípustných vstupných symbolov; prechodová funkcia automatu, : Q T Q; q 0 začiatočný stav automatu, q 0 Q; F mnoţina koncových (alebo akceptujúcich) stavov automatu, F Q. Schému konečného automatu môţeme vidieť na Obr Môţeme si predstaviť, ţe konečný automat je zariadenie, ktoré sa skladá zo vstupnej pásky a konečnostavovej riadiacej jednotky. Na vstupnej páske je zapísané slovo, o ktorom máme rozhodnúť, či patrí do jazyka. Slovo sa musí skladať zo symbolov z mnoţiny T. Konečnostavová riadiaca jednotka sa vţdy nachádza v jednom z mnoţiny stavov Q a vidí jeden aktuálny vstupný symbol na páske. Konečný automat pracuje diskrétne po jednotlivých krokoch. V kaţdom kroku prečíta aktuálny symbol zo vstupnej pásky, presunie čítaciu hlavu na nasledujúci symbol a prejde do nového stavu. Nový stav sa určí na základe pôvodného stavu a prečítaného vstupného symbolu a formálne túto činnosť popisuje prechodová funkcia. vstupná páska a 1 a 2... a n konečnostavová riadiaca jednotka Obr. 2.1 Schéma konečného automatu

22 22 Na začiatku výpočtu je čítacia hlava nastavená na prvý symbol slova a konečnostavová riadiaca jednotka sa nachádza v stave q 0. Výpočet sa skončí, keď sa spracuje celé vstupné slovo. Automat slovo akceptuje, ak sa mu podarí spracovať celé vstupné slovo, pričom skončí v akceptujúcom stave, tzn. v niektorom stave z mnoţiny F. Poďme si teraz uvedené skutočnosti sformalizovať. Definícia 2.2 [2] Nech M = (Q, T,, q 0, F) je konečný automat. Usporiadanú dvojicu (q, w) Q T * nazývame konfigurácia konečného automatu M. Konfiguráciu (q 0, w), kde w je vstupný reťazec, nazývame začiatočná konfigurácia automatu M, konfiguráciu (q, ), kde q F, koncová (alebo akceptujúca) konfigurácia automatu M. Konfiguráciu konečného automatu môţeme interpretovať ako momentálny stav výpočtu, kde q reprezentuje momentálny stav automatu a w doteraz nespracovanú časť vstupu. Prvý symbol reťazca w zároveň predstavuje symbol, ktorý momentálne vidí konečnostavová riadiaca jednotka. Definícia 2.3 [2] Nech M = (Q, T,, q 0, F) je deterministický konečný automat. Nad mnoţinou konfigurácií Q T * definujeme reláciu prechodu (alebo krok výpočtu) DKA takto: Nech q, p Q, w T *, a T. Potom (q, aw) (p, w) práve vtedy, keď (q, a) = p. Definícia relácie prechodu stanovuje pravidlá, ako moţno pri výpočte prejsť z jednej konfigurácie automatu do druhej. q reprezentuje pôvodný stav, p nový stav po prechode, a aktuálny symbol na vstupe, w zvyšok vstupu a prechodovú funkciu. Keďţe po prechode do novej konfigurácie sa čítacia hlava posunie o jeden symbol doprava, v novej konfigurácii uţ bude ako neprečítaná časť vstupu vystupovať len w. Definícia 2.4 Nech M = (Q, T,, q, F) je konečný automat. Postupnosť konfigurácií (q 0, w 0 ), (q 1, w 1 ),..., (q n, w n ) takých, ţe (q 0, w 0 ) (q 1, w 1 )... (q n, w n ), q i Q, w i T *, i = 0, 1,..., n sa nazýva výpočet konečného automatu M z (q 0, w 0 ) do (q n, w n ). Výpočet budeme podobne ako v prípade derivácie v gramatikách vyjadrovať pomocou mocniny relácie v tvare (q 0, w 0 ) n (q n, w n ).

23 23 Tranzitívny uzáver relácie budeme označovať symbolom + a reflexívny a tranzitívny uzáver symbolom *. Dve konfigurácie budú v relácii (q, w) + (p, x), ak existuje k 1 také, ţe (q, w) k (p, x) a v relácii (q, w) * (p, x), ak existuje k 0 také, ţe (q, w) k (p, x). Definícia 2.5 [2] Nech M = (Q, T,, q 0, F) je konečný automat. Potom hovoríme, ţe stav q Q je dosiahnuteľný, ak existuje výpočet (q 0, w) n (q, ) pre nejaké n 0, w T *. Ak taký výpočet neexistuje, stav q je nedosiahnuteľný. Definícia 2.6 Nech M = (Q, T,, q 0, F) je konečný automat. Potom jazyk L(M) rozpoznávaný (prijímaný, špecifikovaný, akceptovaný) konečným automatom M je mnoţina L(M) = {w (q 0, w) * (q, ), w T *, q F. Poznámka. Prechodová funkcia môţe predstavovať aj tzv. neúplné zobrazenie, čo v tomto prípade znamená, ţe existuje taká usporiadaná dvojica (q, a), q Q, a T (q predstavuje aktuálny stav automatu a a aktuálny vstupný symbol), pre ktorú nie je určený nasledujúci stav automatu. Jazyk rozpoznávaný daným automatom je teda taká mnoţina reťazcov zo vstupnej abecedy, pre ktoré existuje výpočet končiaci v akceptujúcej konfigurácii. Ak automat neakceptuje reťazec, mohla nastať jedna z dvoch situácií: a) automat spracoval celé slovo, ale neskončil v akceptujúcom stave; b) automat sa pri spracovávaní slova zasekol, tzn. dostal sa do stavu, z ktorého pre aktuálny začiatočný symbol nespracovanej časti reťazca nemá definovaný prechod ( ). K takejto situácii by došlo aj vtedy, keby dostal na vstup symbol, ktorý nepatrí do mnoţiny T. Táto moţnosť môţe nastať len vtedy, ak je neúplné zobrazenie. Príklad 2.3 Je daný konečný automat M = {{q 0, q 1, q 2, q 3, {0, 1, q 0,, {q 0, pričom prechodová funkcia je určená prechodovou tabuľkou (PT): 0 1 q 0 q 2 q 1 q 1 q 0 q 3 q 2 q 3 q 0 q 3 q 1 q 2

24 24 Akceptujúci výpočet na reťazci prebehne nasledovne: (q 0, ) (q 1, ) (q 0, ) (q 1, 01111) (q 0, 1111) (q 1, 111) (q 3, 11) (q 2, 1) (q 0, ) Reťazec 001 akceptovaný nebude, pretoţe výpočet (q 0, 001) (q 2, 01) (q 3, 1) (q 2, ) skončí v stave, ktorý nie je akceptujúci; pri spracovaní reťazca 002 sa automat zasekne a preto tento tieţ akceptovaný nebude: (q 0, 002) (q 2, 02) (q 3, 2). Konečný automat môţeme reprezentovať aj tzv. prechodovým diagramom. Prechodový diagram je orientovaný graf, v ktorom sú vrcholy ohodnotené stavmi a hrany symbolmi vstupnej abecedy tak, ţe ak (q, t) = p, tak existuje orientovaná hrana z q do p, ktorá je ohodnotená terminálom t. Začiatočný stav je označený šípkou a koncové stavy sú označené dvojitým krúţkom. Reprezentácia konečného automatu z príkladu Príklad 2.3 je na Obr q 0 0 q q 2 1 q 3 Obr. 2.2 Prechodový diagram konečného automatu Poznámka. V prípade, ţe prechodová funkcia predstavuje neúplné zobrazenie, budú príslušné poloţky v prechodovej tabuľke prázdne (pozri napr. Príklad 2.4 v nasledujúcej kapitole) Nedeterministické konečné automaty Všeobecnejším typom konečného automatu je nedeterministický konečný automat. Jeho základnou vlastnosťou je, ţe momentálny stav a aktuálny symbol vstupného re-

25 25 ťazca neurčujú jednoznačne stav, do ktorého automat môţe prejsť (automat má na výber viacero stavov, do ktorých môţe prejsť). Druhým rozdielom je, ţe automat môţe vykonávať kroky nielen na terminálne symboly, ale aj na prázdne slovo. Z formálneho hľadiska sa oproti DKA zmení iba prechodová funkcia, ktorá bude usporiadanej dvojici (stav, symbol na vstupe) priraďovať mnoţinu stavov, do ktorých môţe automat prejsť (symbolom na vstupe môţe byť aj, čo predstavuje situáciu, keď automat ponechá čítaciu hlavu na pôvodnom symbole a pri kroku výpočtu nebude brať aktuálny symbol na vstupe do úvahy). Definícia 2.7 Pod nedeterministickým konečným automatom (NKA) M rozumieme usporiadanú päticu M = (Q, T,, q 0, F), kde Q konečná mnoţina stavov automatu; T konečná mnoţina prípustných vstupných symbolov; prechodová funkcia automatu, : Q (T { ) 2 Q, pričom 2 Q označuje mnoţinu všetkých podmnoţín mnoţiny Q; q 0 začiatočný stav automatu, q 0 Q; F mnoţina koncových (alebo akceptujúcich) stavov automatu, F Q. Činnosť NKA budeme aj teraz definovať pomocou konfigurácií. Význam konfigurácie, začiatočná a akceptujúca konfigurácia zostávajú rovnaké ako pri DKA. Keďţe sa však zmenila prechodová funkcia, treba zmeniť aj reláciu prechodu. Definícia 2.8 Nech M = (Q, T,, q 0, F) je nedeterministický konečný automat. Nad mnoţinou konfigurácií Q T * definujeme reláciu prechodu (alebo krok výpočtu) NKA takto: Nech q, p Q, w T *, a T {. Potom (q, aw) (p, w) práve vtedy, keď p (q, a). Z uvedeného vyplýva, ţe ak automat realizuje krok na, prechodom sa zmení len jeho stav a neprečítaná časť vstupu ostane nezmenená ( je predponou kaţdého reťazca). Automat môţe prejsť na symbol na vstupe do ľubovoľného zo stavov, ktorý pre danú kombináciu (stav, symbol na vstupe) udáva prechodová funkcia. Akceptovanie reťazca NKA aj jazyk špecifikovaný NKA sú definované rovnakým spôsobom ako pre DKA, tzn. w je akceptované, ak (q 0, w) * (q, ) pre nejaké q F.

26 26 Príklad 2.4 Je daný automat M = ({q 0, q 1, q f, {+,, 0, 1, 2,..., 9,, q 0, {q f ), kde je určená PT q 0 {q 1 {q 1 {q 1, q f q 1 {q 1, q f q f (symbolom sú oddelené alternatívne vstupné symboly). Pri spracovávaní reťazca +123 existujú nasledujúce moţnosti prechodov (pri prvom kroku môţeme vidieť prechod z (q 0, +123) do (q 1, +123) na ): (q 1, 3) (q 1, ) (q 1, 23) (q f, ) (q 1, 123) (q f, 3) (q 0, +123) (q f, 23) (q 1, +123) Automat reťazec akceptuje, pretoţe existuje výpočtová cesta, ktorý končí v akceptujúcej konfigurácii (je vyznačená podtrhnutými konfiguráciami). Poznámka. V prípade NKA si moţno výpočet predstaviť ako strom, ktorého koreň tvorí začiatočná konfigurácia a ktorý sa bude vetviť vţdy vtedy, keď automat môţe prejsť do viacerých stavov. Slovo bude akceptované vtedy, ak aspoň jedna zo všetkých moţných výpočtových ciest končí v akceptujúcej konfigurácii, tzn. keď aspoň jeden list stromu obsahuje akceptujúcu konfiguráciu. NKA si môţeme tieţ predstaviť ako zariadenie, ktoré sa z hľadiska prechodu do nového stavu vţdy dokáţe správne rozhodnúť, tzn. rozhodnúť sa pre tú z moţností prechodu do nového stavu (ak existuje), ktorá leţí na ceste k nejakej akceptujúcej konfigurácii. NKA neakceptuje slovo vtedy, ak ţiadna výpočtová cesta nekončí akceptujúcou konfiguráciou. Keďţe máme dva typy konečných automatov, vzniká prirodzená otázka, aký je medzi nimi vzťah z hľadiska akceptovanej triedy jazykov Vzťah medzi deterministickými a nedeterministickými konečnými automatmi Keď si porovnáme definíciu DKA a NKA a relácie prechodu u obidvoch automatov, zistíme, ţe DKA je vlastne špeciálnym prípadom NKA, kde (q, a) 1 a a.

27 27 Trieda jazykov akceptovaných deterministickými konečnými automatmi musí byť preto podtriedou jazykov akceptovaných nedeterministickými konečnými automatmi. Zaujímavé je, ţe platí aj obrátená veta. Veta 2.1 Nech L je jazyk akceptovaný nejakým NKA. Potom existuje DKA, ktorý akceptuje ten istý jazyk L. Dôkaz. K danému NKA M = (Q, T,, q 0, F) skonštruujeme DKA M = (Q, T,, q 0, F ), ktorý bude akceptovať ten istý jazyk. Hlavná myšlienka pri konštrukcii automatu M je, aby skonštruovaný DKA bol schopný sledovať všetky výpočtové cesty, po ktorých by mohol ísť pôvodný NKA M. Dosiahneme to nasledujúcim spôsobom: Stavy q Q automatu M budeme označovať v tvare {q 1, q 2,..., q i, kde q k Q pre k = 1, 2,..., i. Začiatočný stav q 0 = closure({q 0, M), kde operácia uzáveru closure dodá do mnoţiny stavov všetky tie ďalšie stavy, do ktorých je moţné sa dostať z pôvodnej mnoţiny stavov na. Algoritmus operácie closure() je nasledujúci: typedef struct NKA { množina_stavov Q; množina_terminálov T; prechodová_funkcia_nka ; stav q 0 ; množina_stavov F; NKA; typedef struct DKA { množina_stavov Q; množina_terminálov T; prechodová_funkcia_dka ; stav q 0 ; množina_stavov F; DKA; void closure(množina_stavov& S, NKA M) { do { zmena = FALSE; if (existuje taký stav q M.Q, ţe q S a zároveň q M. (p, ) pre nejaké p S) { Pridaj q do S; zmena = TRUE;

28 28 while (zmena); Algoritmus 2.1 Uzáver mnoţiny stavov NKA Mnoţinovú symboliku sme zvolili zámerne, pretoţe stavy konštruovaného DKA si môţeme predstaviť ako mnoţiny stavov pôvodného NKA. Mnoţina koncových stavov F je tvorená mnoţinou všetkých takých stavov z Q, ktoré obsahujú aspoň jeden koncový stav automatu M. Tým sa zabezpečí, ţe DKA bude akceptovať reťazec práve vtedy, keď aspoň jedna z výpočtových ciest u NKA viedla ku akceptujúcej konfigurácii. Prechodovú funkciu budeme definovať takto: i, (2.1) ({q 1, q 2,..., q i, a) = closure δ q j, a, M j 1 tzn. DKA M prejde do stavu, ktorý bude reprezentovať všetky stavy pôvodného automatu M, do ktorých by sa automat M dostal prechodom zo stavov q 1, q 2,..., q i na vstupný symbol a. Podobne ako pri vytvorení začiatočného stavu automatu M, aj teraz musíme mnoţinu stavov obohatiť o tie stavy, do ktorých je moţné sa dostať z pôvodných stavov prechodom na (lebo definícia DKA kroky na nepripúšťa). Formálnu verifikáciu toho, ţe takto skonštruovaný DKA M akceptuje nejaké slovo w práve vtedy, keď ho akceptuje pôvodný NKA M, nechávame na čitateľa. Poznámka. Pri praktických úlohách, keď chceme ku NKA nájsť ekvivalentný DKA, nemusíme vţdy pracovať so všetkými stavmi tvaru {q 1, q 2,..., q i, kde q k Q pre k = 1, 2,..., i, ktorých celkový počet je 2 Q, kde Q predstavuje počet stavov v mnoţine Q, ale len s tými, do ktorých sa novokonštruovaný automat môţe dostať. Mnoţinu stavov a prechodovú funkciu ekvivalentného DKA môţeme skonštruovať podľa nasledujúceho algoritmu: void vytvor_deterministický(nka M, DKA& M ) { Zaraď stav closure({m.q 0, M) do PT automatu M a označ ho ako nespracovaný; while (v PT existujú nespracované stavy) { Vyber z PT jeden nespracovaný stav q a označ ho ako spracovaný; for (všetky a T) { Urči stav p = (q, a) podľa (2.1); if (p sa nenachádza v PT)

29 29 Zaraď p do PT a označ ho ako nespracovaný; Zaznamenaj v PT prechod zo stavu q do stavu p na symbol a; Mnoţina stavov M.Q bude tvorená stavmi vytvorenými v PT; Mnoţiny vstupných symbolov sú totoţné, tzn. M.T = M.T; Prechodová funkcia M. je určená vytvorenou PT; Začiatočný symbol M.q 0 = closure({m.q 0, M); Mnoţina koncových stavov M.F je tvorená mnoţinou všetkých takých stavov z M.Q, ktoré obsahujú aspoň jeden koncový stav automatu M (M.F); Algoritmus 2.2 Vytvorenie ekvivalentného DKA Poznámka. V prípade, ţe východiskový NKA neobsahuje prechody na, môţeme v prechádzajúcom algoritme vynechať aplikáciu uzáverovej operácie closure(). Príklad 2.5 Daný je NKA M = ({q 0, q 1, q 2, q 3, q f, {0, 1,, q 0, {q f ), kde prechodové zobrazenie je definované takto: Zostrojte k nemu ekvivalentný DKA. 0 1 q 0 {q 0, q 1 {q 0, q 2 q 1 {q 1, q 3 {q 1 q 2 {q 2 {q 2, q f q 3 {q f q f Poďme postupne zostavovať mnoţinu stavov DKA a PT podľa algoritmu Algoritmus 2.2. Keďţe pôvodný NKA obsahuje aj prechody na, musíme pri konštrukcii stavov ekvivalentného DKA aplikovať operáciu closure(). Pred vstupom do cyklu bude PT vyzerať takto: spracovaný 0 1 {q 0 n Po prvom prechode cyklu bude PT vyzerať takto: spracovaný 0 1 {q 0 a {q 0, q 1 {q 0, q 2 {q 0, q 1 n {q 0, q 2 n Po druhom prechode cyklom bude PT vyzerať takto (q f sa dostalo do stavu {q 0, q 1, q 3 q f výsledkom uzáverovej operácie closure({q 0, q 1, q 3 )):

30 30 spracovaný 0 1 {q 0 a {q 0, q 1 {q 0, q 2 {q 0, q 1 a {q 0, q 1, q 3 q f {q 0, q 1, q 2 {q 0, q 2 n {q 0, q 1, q 3, q f n {q 0, q 1, q 2 n Po treťom prechode cyklom bude PT vyzerať takto (pridávaný stav {q 0, q 1, q 2 sa uţ v PT nachádzal): spracovaný 0 1 {q 0 a {q 0, q 1 {q 0, q 2 {q 0, q 1 a {q 0, q 1, q 3, q f {q 0, q 1, q 2 {q 0, q 2 a {q 0, q 1, q 2 {q 0, q 2, q f {q 0, q 1, q 3, q f n {q 0, q 1, q 2 n {q 0, q 2, q f n Na konci celého procesu získame nasledujúcu PT: spracovaný 0 1 {q 0 a {q 0, q 1 {q 0, q 2 {q 0, q 1 a {q 0, q 1, q 3, q f {q 0, q 1, q 2 {q 0, q 2 a {q 0, q 1, q 2 {q 0, q 2, q f {q 0, q 1, q 3, q f a {q 0, q 1, q 3, q f {q 0, q 1, q 2 {q 0, q 1, q 2 a {q 0, q 1, q 2, q 3, q f {q 0, q 1, q 2, q f {q 0, q 2, q f a {q 0, q 1, q 2 {q 0, q 2, q f {q 0, q 1, q 2, q 3, q f a {q 0, q 1, q 2, q 3, q f {q 0, q 1, q 2, q f {q 0, q 1, q 2, q f a {q 0, q 1, q 2, q 3, q f {q 0, q 1, q 2, q f Mnoţina akceptujúcich stavov F = {{q 0, q 1, q 3, q f, {q 0, q 2, q f, {q 0, q 1, q 2, q 3, q f, {q 0, q 1, q 2, q f. Výsledný DKA bude obsahovať 8 stavov, zatiaľ čo pôvodný NKA obsahoval 5 stavov. Túto skutočnosť môţeme zovšeobecniť tvrdením, ţe ekvivalentný DKA vţdy bude obsahovať viacej stavov ako pôvodný NKA, v krajnom prípade tento nárast počtu stavov môţe byť aţ exponenciálny. Výhodou NKA z tohto pohľadu je, ţe pri rovnakom akceptovanom jazyku má jednoduchšiu štruktúru ako ekvivalentný DKA. Nedeterministické konečné automaty budeme pre ich jednoduchšiu štruktúru vyuţívať ako medzistupeň pri konštrukcii lexikálneho analyzátora v kap. 4.2.

31 Minimalizácia počtu stavov deterministických konečných automatov Ďalším problémom, ktorým sa budeme zaoberať, je otázka minimalizácie počtu stavov DKA. Spomedzi všetkých DKA akceptujúcich nejaký regulárny jazyk L existuje jediný DKA M L, ktorý má najmenší počet stavov zo všetkých automatov akceptujúcich jazyk L [2]. Teraz si ukáţeme, ako môţeme takýto automat zostrojiť. Nech M = (Q, T,, q 0, F) je ľubovoľný DKA taký, ţe L(M) = L. Najprv vylúčime z mnoţiny stavov všetky tie stavy, ktoré sú nedosiahnuteľné zo stavu q 0. Tieto sú z hľadiska jazyka akceptovaného automatom zbytočné, pretoţe sa nemôţu objaviť v ţiadnom výpočte. Definícia 2.9 Nech M = (Q, T,, q 0, F) je konečný automat (deterministický alebo nedeterministický). Stav q Q nazývame dosiahnuteľný zo stavu p Q, ak existuje taký reťazec w T *, ţe (p, w) * (q, ). Ak stav q nie je dosiahnuteľný zo stavu p, nazýva sa nedosiahnuteľný zo stavu p. Mnoţinu všetkých stavov dosiahnuteľných zo stavu q 0 môţeme určiť pomocou algoritmu Algoritmus 2.3. Tento vyhľadá postupne všetky stavy, ktoré sú dosiahnuteľné zo stavu q 0. Platí, ţe po i-tom prechode cyklom bude mnoţina dosiahnuteľné obsahovať tie stavy, ktoré sú dosiahnuteľné z q 0 na maximálne i krokov výpočtu. Algoritmus končí vtedy, keď uţ do mnoţiny dosiahnuteľných stavov nemôţeme pridať ţiadny nový stav. Keďţe mnoţina stavov je konečná, algoritmus musí raz skončiť. void zisti_dosiahnuteľné_z_q 0 ( množina_stavov& dosiahnuteľné, DKA M) { množina_stavov nové; dosiahnuteľné = {q 0 ; do { zmena = TRUE; nové = ; for (všetky a M.T a všetky q dosiahnuteľné) nové = nové M. (p, a); if (mnoţina stavov nové nie je celá obsiahnutá v dosiahnuteľné) dosiahnuteľné = dosiahnuteľné nové; else zmena = FALSE;

32 32 while (zmena); Algoritmus 2.3 Algoritmus pre zistenie stavov dosiahnuteľných zo stavu q 0 Predpokladajme ďalej, ţe sme z automatu odstránili všetky stavy nedosiahnuteľné zo stavu q 0 (okrem Q je ich potrebné odstrániť aj z a F). Ďalej budeme potrebovať nasledujúcu definíciu: Definícia 2.10 [2] Nech M = (Q, T,, q 0, F) je DKA a q 1, q 2 Q sú jeho dva rôzne stavy. Potom budeme hovoriť, ţe: a) reťazec u T * rozlišuje stavy q 1 a q 2 vtedy, ak (q 1, u) * (q 3, ), (q 2, u) * (q 4, ), pričom jeden zo stavov q 3, q 4 patrí do F a druhý nie; b) stavy q 1 a q 2 sú k-nerozlíšiteľné (zapisujeme q 1 k q 2 ), ak neexistuje reťazec u s dĺţkou u k, ktorý stavy q 1 a q 2 rozlišuje; c) stavy q 1 a q 2 sú nerozlíšiteľné (zapisujeme q 1 q 2 ), ak sú k-nerozlíšiteľné pre ľubovoľné k 0. Ľahko sa moţno presvedčiť o tom, ţe je relácia ekvivalencie na mnoţine stavov Q. Princíp konštrukcie redukovaného automatu je zaloţený na stotoţnení navzájom nerozlíšiteľných stavov pôvodného DKA. Ak sú dva stavy nerozlíšiteľné, potom ak by sa výpočet dostal do ľubovoľného z nich, akceptovanie alebo neakceptovanie v prípade rovnakej neprečítanej časti vstupného reťazca by muselo v obidvoch prípadoch dopadnúť rovnako. Na identifikáciu všetkých vzájomne nerozlíšiteľných stavov automatu rozdeľme najprv stavy automatu M na dve skupiny (tzv. zlúčené stavy): do prvého zlúčeného stavu budú patriť všetky koncové stavy a do druhého všetky ostatné stavy (v obidvoch zlúčených stavoch sa budú nachádzať stavy pôvodného automatu M, ktoré sú navzájom 0-nerozlíšiteľné). V ďalších krokoch sa budú tieto zlúčené stavy ďalej deliť v prípade, ţe po prechode na nejaký symbol a T sa všetky stavy automatu M patriace do nejakého zlúčeného stavu nedostanú do rovnakého zlúčeného stavu (Algoritmus 2.4). Algoritmus skončí vtedy, keď uţ nie je potrebné zlúčené stavy ďalej deliť, tzn. keď zlúčené stavy obsahujú vzájomne nerozlíšiteľné stavy. typedef struct množina_zlúčených_stavov { // pole skupín (mnoţín) stavov konečného automatu (tzv. zlúčených stavov) množina_stavov *S;

Gramatická indukcia a jej využitie

Gramatická indukcia a jej využitie a jej využitie KAI FMFI UK 29. Marec 2010 a jej využitie Prehľad Teória formálnych jazykov 1 Teória formálnych jazykov 2 3 a jej využitie Na počiatku bolo slovo. A slovo... a jej využitie Definícia (Slovo)

Διαβάστε περισσότερα

LR(0) syntaktické analyzátory. doc. RNDr. Ľubomír Dedera

LR(0) syntaktické analyzátory. doc. RNDr. Ľubomír Dedera LR0) syntaktické analyzátory doc. RNDr. Ľubomír Dedera Učebné otázky LR0) automat a jeho konštrukcia Konštrukcia tabuliek ACION a GOO LR0) syntaktického analyzátora LR0) syntaktický analyzátor Sám osebe

Διαβάστε περισσότερα

Gramatiky. Kapitola Úvod. 1.2 Návrh gramatík

Gramatiky. Kapitola Úvod. 1.2 Návrh gramatík Kapitola 1 Gramatiky 1.1 Úvod Základnými spôsobmi reprezentácie jazykov sú rozpoznávanie a generovanie. Gramatika je reprezentáciou jazyka generovaním. Gramatika je konečná množina pravidiel, ktorých postupnou

Διαβάστε περισσότερα

Automaty a formálne jazyky

Automaty a formálne jazyky Automaty a formálne jazyky Podľa prednášok prof. RNDr. Viliama Gefferta, DrSc., PrírF UPJŠ Dňa 8. februára 2005 zostavil Róbert Novotný, r.novotny@szm.sk. Typeset by LATEX. Illustrations by jpicedit. Úvodné

Διαβάστε περισσότερα

Matematika Funkcia viac premenných, Parciálne derivácie

Matematika Funkcia viac premenných, Parciálne derivácie Matematika 2-01 Funkcia viac premenných, Parciálne derivácie Euklidovská metrika na množine R n všetkých usporiadaných n-íc reálnych čísel je reálna funkcia ρ: R n R n R definovaná nasledovne: Ak X = x

Διαβάστε περισσότερα

Ekvačná a kvantifikačná logika

Ekvačná a kvantifikačná logika a kvantifikačná 3. prednáška (6. 10. 004) Prehľad 1 1 (dokončenie) ekvačných tabliel Formula A je ekvačne dokázateľná z množiny axióm T (T i A) práve vtedy, keď existuje uzavreté tablo pre cieľ A ekvačných

Διαβάστε περισσότερα

Matematika prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad

Matematika prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad Matematika 3-13. prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad Erika Škrabul áková F BERG, TU Košice 15. 12. 2015 Erika Škrabul áková (TUKE) Taylorov

Διαβάστε περισσότερα

Cvičenie č. 4,5 Limita funkcie

Cvičenie č. 4,5 Limita funkcie Cvičenie č. 4,5 Limita funkcie Definícia ity Limita funkcie (vlastná vo vlastnom bode) Nech funkcia f je definovaná na nejakom okolí U( ) bodu. Hovoríme, že funkcia f má v bode itu rovnú A, ak ( ε > )(

Διαβάστε περισσότερα

6 Limita funkcie. 6.1 Myšlienka limity, interval bez bodu

6 Limita funkcie. 6.1 Myšlienka limity, interval bez bodu 6 Limita funkcie 6 Myšlienka ity, interval bez bodu Intuitívna myšlienka ity je prirodzená, ale definovať presne pojem ity je značne obtiažne Nech f je funkcia a nech a je reálne číslo Čo znamená zápis

Διαβάστε περισσότερα

Motivácia Denícia determinantu Výpo et determinantov Determinant sú inu matíc Vyuºitie determinantov. Determinanty. 14. decembra 2010.

Motivácia Denícia determinantu Výpo et determinantov Determinant sú inu matíc Vyuºitie determinantov. Determinanty. 14. decembra 2010. 14. decembra 2010 Rie²enie sústav Plocha rovnobeºníka Objem rovnobeºnostena Rie²enie sústav Príklad a 11 x 1 + a 12 x 2 = c 1 a 21 x 1 + a 22 x 2 = c 2 Dostaneme: x 1 = c 1a 22 c 2 a 12 a 11 a 22 a 12

Διαβάστε περισσότερα

1. Limita, spojitost a diferenciálny počet funkcie jednej premennej

1. Limita, spojitost a diferenciálny počet funkcie jednej premennej . Limita, spojitost a diferenciálny počet funkcie jednej premennej Definícia.: Hromadný bod a R množiny A R: v každom jeho okolí leží aspoň jeden bod z množiny A, ktorý je rôzny od bodu a Zadanie množiny

Διαβάστε περισσότερα

Obvod a obsah štvoruholníka

Obvod a obsah štvoruholníka Obvod a štvoruholníka D. Štyri body roviny z ktorých žiadne tri nie sú kolineárne (neležia na jednej priamke) tvoria jeden štvoruholník. Tie body (A, B, C, D) sú vrcholy štvoruholníka. strany štvoruholníka

Διαβάστε περισσότερα

Tomáš Madaras Prvočísla

Tomáš Madaras Prvočísla Prvočísla Tomáš Madaras 2011 Definícia Nech a Z. Čísla 1, 1, a, a sa nazývajú triviálne delitele čísla a. Cele číslo a / {0, 1, 1} sa nazýva prvočíslo, ak má iba triviálne delitele; ak má aj iné delitele,

Διαβάστε περισσότερα

Start. Vstup r. O = 2*π*r S = π*r*r. Vystup O, S. Stop. Start. Vstup P, C V = P*C*1,19. Vystup V. Stop

Start. Vstup r. O = 2*π*r S = π*r*r. Vystup O, S. Stop. Start. Vstup P, C V = P*C*1,19. Vystup V. Stop 1) Vytvorte algoritmus (vývojový diagram) na výpočet obvodu kruhu. O=2xπxr ; S=πxrxr Vstup r O = 2*π*r S = π*r*r Vystup O, S 2) Vytvorte algoritmus (vývojový diagram) na výpočet celkovej ceny výrobku s

Διαβάστε περισσότερα

Motivácia pojmu derivácia

Motivácia pojmu derivácia Derivácia funkcie Motivácia pojmu derivácia Zaujíma nás priemerná intenzita zmeny nejakej veličiny (dráhy, rastu populácie, veľkosti elektrického náboja, hmotnosti), vzhľadom na inú veličinu (čas, dĺžka)

Διαβάστε περισσότερα

Moderné vzdelávanie pre vedomostnú spoločnosť Projekt je spolufinancovaný zo zdrojov EÚ M A T E M A T I K A

Moderné vzdelávanie pre vedomostnú spoločnosť Projekt je spolufinancovaný zo zdrojov EÚ M A T E M A T I K A M A T E M A T I K A PRACOVNÝ ZOŠIT II. ROČNÍK Mgr. Agnesa Balážová Obchodná akadémia, Akademika Hronca 8, Rožňava PRACOVNÝ LIST 1 Urč typ kvadratickej rovnice : 1. x 2 3x = 0... 2. 3x 2 = - 2... 3. -4x

Διαβάστε περισσότερα

7. FUNKCIE POJEM FUNKCIE

7. FUNKCIE POJEM FUNKCIE 7. FUNKCIE POJEM FUNKCIE Funkcia f reálnej premennej je : - každé zobrazenie f v množine všetkých reálnych čísel; - množina f všetkých usporiadaných dvojíc[,y] R R pre ktorú platí: ku každému R eistuje

Διαβάστε περισσότερα

Fakulta matematiky, fyziky a informatiky Univerzita Komenského, Bratislava Katedra Informatiky

Fakulta matematiky, fyziky a informatiky Univerzita Komenského, Bratislava Katedra Informatiky Fakulta matematiky, fyziky a informatiky Univerzita Komenského, Bratislava Katedra Informatiky Paralelné kooperujúce systémy gramatík diplomová práca autor: Lýdia Hanusková vedúci dipl. práce: Prof. RNDr.

Διαβάστε περισσότερα

Štrukturálne (syntaktické) rozpoznávanie

Štrukturálne (syntaktické) rozpoznávanie Štrukturálne (syntaktické) rozpoznávanie syntaktické metódy pracujú s relačnými štruktúrami, ktoré sa skladajú z prvkov nosiča relačnej štruktúry zodpovedajú primitívam ako ďalej nedeliteľným častiam

Διαβάστε περισσότερα

1. písomná práca z matematiky Skupina A

1. písomná práca z matematiky Skupina A 1. písomná práca z matematiky Skupina A 1. Vypočítajte : a) 84º 56 + 32º 38 = b) 140º 53º 24 = c) 55º 12 : 2 = 2. Vypočítajte zvyšné uhly na obrázku : β γ α = 35 12 δ a b 3. Znázornite na číselnej osi

Διαβάστε περισσότερα

Goniometrické rovnice a nerovnice. Základné goniometrické rovnice

Goniometrické rovnice a nerovnice. Základné goniometrické rovnice Goniometrické rovnice a nerovnice Definícia: Rovnice (nerovnice) obsahujúce neznámu x alebo výrazy s neznámou x ako argumenty jednej alebo niekoľkých goniometrických funkcií nazývame goniometrickými rovnicami

Διαβάστε περισσότερα

Kompilátory. Cvičenie 6: LLVM. Peter Kostolányi. 21. novembra 2017

Kompilátory. Cvičenie 6: LLVM. Peter Kostolányi. 21. novembra 2017 Kompilátory Cvičenie 6: LLVM Peter Kostolányi 21. novembra 2017 LLVM V podstate sada nástrojov pre tvorbu kompilátorov LLVM V podstate sada nástrojov pre tvorbu kompilátorov Pôvodne Low Level Virtual Machine

Διαβάστε περισσότερα

ARMA modely čast 2: moving average modely (MA)

ARMA modely čast 2: moving average modely (MA) ARMA modely čast 2: moving average modely (MA) Beáta Stehlíková Časové rady, FMFI UK, 2014/2015 ARMA modely časť 2: moving average modely(ma) p.1/24 V. Moving average proces prvého rádu - MA(1) ARMA modely

Διαβάστε περισσότερα

Matematika 2. časť: Analytická geometria

Matematika 2. časť: Analytická geometria Matematika 2 časť: Analytická geometria RNDr. Jana Pócsová, PhD. Ústav riadenia a informatizácie výrobných procesov Fakulta BERG Technická univerzita v Košiciach e-mail: jana.pocsova@tuke.sk Súradnicové

Διαβάστε περισσότερα

Planárne a rovinné grafy

Planárne a rovinné grafy Planárne a rovinné grafy Definícia Graf G sa nazýva planárny, ak existuje jeho nakreslenie D, v ktorom sa žiadne dve hrany nepretínajú. D sa potom nazýva rovinný graf. Planárne a rovinné grafy Definícia

Διαβάστε περισσότερα

Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy

Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy Beáta Stehlíková Časové rady, FMFI UK, 2012/2013 Jednotkový koreň(unit root),diferencovanie časového radu, unit root testy p.1/18

Διαβάστε περισσότερα

Komplexné čísla, Diskrétna Fourierova transformácia 1

Komplexné čísla, Diskrétna Fourierova transformácia 1 Komplexné čísla, Diskrétna Fourierova transformácia Komplexné čísla C - množina všetkých komplexných čísel komplexné číslo: z = a + bi, kde a, b R, i - imaginárna jednotka i =, t.j. i =. komplexne združené

Διαβάστε περισσότερα

Prechod z 2D do 3D. Martin Florek 3. marca 2009

Prechod z 2D do 3D. Martin Florek 3. marca 2009 Počítačová grafika 2 Prechod z 2D do 3D Martin Florek florek@sccg.sk FMFI UK 3. marca 2009 Prechod z 2D do 3D Čo to znamená? Ako zobraziť? Súradnicové systémy Čo to znamená? Ako zobraziť? tretia súradnica

Διαβάστε περισσότερα

ARMA modely čast 2: moving average modely (MA)

ARMA modely čast 2: moving average modely (MA) ARMA modely čast 2: moving average modely (MA) Beáta Stehlíková Časové rady, FMFI UK, 2011/2012 ARMA modely časť 2: moving average modely(ma) p.1/25 V. Moving average proces prvého rádu - MA(1) ARMA modely

Διαβάστε περισσότερα

Úvod do lineárnej algebry. Monika Molnárová Prednášky

Úvod do lineárnej algebry. Monika Molnárová Prednášky Úvod do lineárnej algebry Monika Molnárová Prednášky 2006 Prednášky: 3 17 marca 2006 4 24 marca 2006 c RNDr Monika Molnárová, PhD Obsah 2 Sústavy lineárnych rovníc 25 21 Riešenie sústavy lineárnych rovníc

Διαβάστε περισσότερα

Lineárna algebra I - pole skalárov, lineárny priestor, lineárna závislosť, dimenzia, podpriestor, suma podpriestorov, izomorfizmus

Lineárna algebra I - pole skalárov, lineárny priestor, lineárna závislosť, dimenzia, podpriestor, suma podpriestorov, izomorfizmus 1. prednáška Lineárna algebra I - pole skalárov, lineárny priestor, lineárna závislosť, dimenzia, podpriestor, suma podpriestorov, izomorfizmus Matematickým základom kvantovej mechaniky je teória Hilbertových

Διαβάστε περισσότερα

KATEDRA DOPRAVNEJ A MANIPULAČNEJ TECHNIKY Strojnícka fakulta, Žilinská Univerzita

KATEDRA DOPRAVNEJ A MANIPULAČNEJ TECHNIKY Strojnícka fakulta, Žilinská Univerzita 132 1 Absolútna chyba: ) = - skut absolútna ochýlka: ) ' = - spr. relatívna chyba: alebo Chyby (ochýlky): M systematické, M náhoné, M hrubé. Korekcia: k = spr - = - Î' pomerná korekcia: Správna honota:

Διαβάστε περισσότερα

Vlastnosti nekonečných slov generovaných pomocou DGSM (diplomová práca)

Vlastnosti nekonečných slov generovaných pomocou DGSM (diplomová práca) Odbor 9.2.1 Informatika Katedra Informatiky Fakulta Matematiky, Fyziky a Informatiky Univerzita Komenského, Bratislava Vlastnosti nekonečných slov generovaných pomocou DGSM (diplomová práca) Marián Sládek

Διαβάστε περισσότερα

4. Výrokové funkcie (formy), ich definičný obor a obor pravdivosti

4. Výrokové funkcie (formy), ich definičný obor a obor pravdivosti 4. Výrokové funkcie (formy), ich definičný obor a obor pravdivosti Výroková funkcia (forma) ϕ ( x) je formálny výraz (formula), ktorý obsahuje znak x, pričom x berieme z nejakej množiny M. Ak za x zvolíme

Διαβάστε περισσότερα

VLASTNÉ ČÍSLA A JORDANOV KANONICKÝ TVAR. Michal Zajac. 3 T b 1 = T b 2 = = = 2b

VLASTNÉ ČÍSLA A JORDANOV KANONICKÝ TVAR. Michal Zajac. 3 T b 1 = T b 2 = = = 2b VLASTNÉ ČÍSLA A JORDANOV KANONICKÝ TVAR Michal Zajac Vlastné čísla a vlastné vektory Pripomeňme najprv, že lineárny operátor T : L L je vzhl adom na bázu B = {b 1, b 2,, b n } lineárneho priestoru L určený

Διαβάστε περισσότερα

FUNKCIE N REÁLNYCH PREMENNÝCH

FUNKCIE N REÁLNYCH PREMENNÝCH FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITY KOMENSKÉHO V BRATISLAVE FUNKCIE N REÁLNYCH PREMENNÝCH RNDr. Kristína Rostás, PhD. PREDMET: Matematická analýza ) 2010/2011 1. DEFINÍCIA REÁLNEJ FUNKCIE

Διαβάστε περισσότερα

Priamkové plochy. Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava

Priamkové plochy. Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava Priamkové plochy Priamkové plochy Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava Priamkové plochy rozdeľujeme na: Rozvinuteľné

Διαβάστε περισσότερα

3. kapitola. Axiomatická formulácia modálnej logiky Vzťah medzi syntaxou a sémantikou. priesvitka 1

3. kapitola. Axiomatická formulácia modálnej logiky Vzťah medzi syntaxou a sémantikou. priesvitka 1 3. kapitola Axiomatická formulácia modálnej logiky Vzťah medzi syntaxou a sémantikou priesvitka 1 Axiomatická výstavba modálnej logiky Cieľom tejto prednášky je ukázať axiomatickú výstavbu rôznych verzií

Διαβάστε περισσότερα

3. prednáška. Komplexné čísla

3. prednáška. Komplexné čísla 3. predáška Komplexé čísla Úvodé pozámky Vieme, že existujú také kvadratické rovice, ktoré emajú riešeie v obore reálych čísel. Študujme kvadratickú rovicu x x + 5 = 0 Použitím štadardej formule pre výpočet

Διαβάστε περισσότερα

Metódy vol nej optimalizácie

Metódy vol nej optimalizácie Metódy vol nej optimalizácie Metódy vol nej optimalizácie p. 1/28 Motivácia k metódam vol nej optimalizácie APLIKÁCIE p. 2/28 II 1. PRÍKLAD: Lineárna regresia - metóda najmenších štvorcov Na základe dostupných

Διαβάστε περισσότερα

Prostredie pre podporu výučby predmetu Formálne jazyky a automaty

Prostredie pre podporu výučby predmetu Formálne jazyky a automaty UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY KATEDRA INFORMATIKY Prostredie pre podporu výučby predmetu Formálne jazyky a automaty Bakalárska práca Peter Havlíček Odbor:

Διαβάστε περισσότερα

7 Derivácia funkcie. 7.1 Motivácia k derivácii

7 Derivácia funkcie. 7.1 Motivácia k derivácii Híc, P Pokorný, M: Matematika pre informatikov a prírodné vedy 7 Derivácia funkcie 7 Motivácia k derivácii S využitím derivácií sa stretávame veľmi často v matematike, geometrii, fyzike, či v rôznych technických

Διαβάστε περισσότερα

FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO. Pavol Ďuriš. Výpočtová zložitosť

FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO. Pavol Ďuriš. Výpočtová zložitosť FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO Pavol Ďuriš Výpočtová zložitosť Máj 2009 Autor: Pavol Ďuriš Názov: Výpočtová zložitosť Vydavateľ: Knižničné a edičné centrum FMFI UK Rok vydania:

Διαβάστε περισσότερα

AerobTec Altis Micro

AerobTec Altis Micro AerobTec Altis Micro Záznamový / súťažný výškomer s telemetriou Výrobca: AerobTec, s.r.o. Pionierska 15 831 02 Bratislava www.aerobtec.com info@aerobtec.com Obsah 1.Vlastnosti... 3 2.Úvod... 3 3.Princíp

Διαβάστε περισσότερα

Príklady na precvičovanie Fourierove rady

Príklady na precvičovanie Fourierove rady Príklady na precvičovanie Fourierove rady Ďalším významným typom funkcionálnych radov sú trigonometrické rady, pri ktorých sú jednotlivé členy trigonometrickými funkciami. Konkrétne, jedná sa o rady tvaru

Διαβάστε περισσότερα

KOMPILÁTORY: Syntaxou riadený preklad. Jana Dvořáková

KOMPILÁTORY: Syntaxou riadený preklad. Jana Dvořáková KOMPILÁTORY: Syntaxou riadený preklad Jana Dvořáková dvorakova@dcs.fmph.uniba.sk Čo je syntaxou riadený preklad? Celý kompilátor je riadený procesom parsovania Syntaxou riadený preklad = prepojenie syntaktickej

Διαβάστε περισσότερα

1-MAT-220 Algebra februára 2012

1-MAT-220 Algebra februára 2012 1-MAT-220 Algebra 1 12. februára 2012 Obsah 1 Grupy 3 1.1 Binárne operácie.................................. 3 1.2 Cayleyho veta.................................... 3 2 Faktorizácia 5 2.1 Relácie ekvivalencie

Διαβάστε περισσότερα

Reprezentácia informácií v počítači

Reprezentácia informácií v počítači Úvod do programovania a sietí Reprezentácia informácií v počítači Ing. Branislav Sobota, PhD. 2007 Informácia slovo s mnohými významami, ktoré závisia na kontexte predpis blízky pojmom význam poznatok

Διαβάστε περισσότερα

Kódovanie a dekódovanie

Kódovanie a dekódovanie Kódovanie a deovanie 1 Je daná množina B={0,1,2} Zostrojte množinu B* všetkých možných slov dĺžky dva 2 Je daná zdrojová abeceda A={α,β,ϕ,τ} Navrhnite príklady aspoň dvoch prostých ovaní týchto zdrojových

Διαβάστε περισσότερα

Deliteľnosť a znaky deliteľnosti

Deliteľnosť a znaky deliteľnosti Deliteľnosť a znaky deliteľnosti Medzi základné pojmy v aritmetike celých čísel patrí aj pojem deliteľnosť. Najprv si povieme, čo znamená, že celé číslo a delí celé číslo b a ako to zapisujeme. Nech a

Διαβάστε περισσότερα

Rozsah hodnotenia a spôsob výpočtu energetickej účinnosti rozvodu tepla

Rozsah hodnotenia a spôsob výpočtu energetickej účinnosti rozvodu tepla Rozsah hodnotenia a spôsob výpočtu energetickej účinnosti príloha č. 7 k vyhláške č. 428/2010 Názov prevádzkovateľa verejného : Spravbytkomfort a.s. Prešov Adresa: IČO: Volgogradská 88, 080 01 Prešov 31718523

Διαβάστε περισσότερα

Prirodzené čísla. Kardinálne čísla

Prirodzené čísla. Kardinálne čísla Prirodzené čísla Doteraz sme sa vždy uspokojili s tým, že sme pod množinou prirodzených čísel rozumeli množinu N = { 1, 2,3, 4,5, 6, 7,8,9,10,11,12, } Túto množinu sme chápali intuitívne a presne sme ju

Διαβάστε περισσότερα

M6: Model Hydraulický systém dvoch zásobníkov kvapaliny s interakciou

M6: Model Hydraulický systém dvoch zásobníkov kvapaliny s interakciou M6: Model Hydraulický ytém dvoch záobníkov kvapaliny interakciou Úlohy:. Zotavte matematický popi modelu Hydraulický ytém. Vytvorte imulačný model v jazyku: a. Matlab b. imulink 3. Linearizujte nelineárny

Διαβάστε περισσότερα

množiny F G = {t1, t2,, tn} T a pre ľubovoľný valec C so základňou B1, B2,, Bn v bodoch t1, t2,, tn, takou, že pre t G - F je Bt = E, platí PF(C) = PG

množiny F G = {t1, t2,, tn} T a pre ľubovoľný valec C so základňou B1, B2,, Bn v bodoch t1, t2,, tn, takou, že pre t G - F je Bt = E, platí PF(C) = PG STOCHASTICKÝ PROCES Definícia stochastického procesu Definícia 1 Nech (Ω, F, P) je pravdepodobnostný priestor a nech T je podmnožina R. Pre každé t T nech X(t, ω) je náhodná premenná definovaná na pravdepodobnostnom

Διαβάστε περισσότερα

2. prednáška. Teória množín I. množina operácie nad množinami množinová algebra mohutnosť a enumerácia karteziánsky súčin

2. prednáška. Teória množín I. množina operácie nad množinami množinová algebra mohutnosť a enumerácia karteziánsky súčin 2. prednáška Teória množín I množina operácie nad množinami množinová algebra mohutnosť a enumerácia karteziánsky súčin Verzia: 27. 9. 2009 Priesvtika: 1 Definícia množiny Koncepcia množiny patrí medzi

Διαβάστε περισσότερα

Derivácia funkcie. Pravidlá derivovania výrazov obsahujúcich operácie. Derivácie elementárnych funkcií

Derivácia funkcie. Pravidlá derivovania výrazov obsahujúcich operácie. Derivácie elementárnych funkcií Derivácia funkcie Derivácia funkcie je jeden z najužitočnejších nástrojov, ktoré používame v matematike a jej aplikáciách v ďalších odboroch. Stručne zhrnieme základné informácie o deriváciách. Podrobnejšie

Διαβάστε περισσότερα

Riešenie cvičení z 5. kapitoly

Riešenie cvičení z 5. kapitoly Riešenie cvičení z 5. kapitoly Cvičenie 5.1. Vety prepíšte pomocou jazyka predikátovej logiky, použite symboly uvedené v úlohách. (a Niekto má hudobný sluch (H a niekto ho nemá. ( H( ( H( (b Niektoré dieťa

Διαβάστε περισσότερα

Reálna funkcia reálnej premennej

Reálna funkcia reálnej premennej (ÚMV/MAN3a/10) RNDr. Ivan Mojsej, PhD ivan.mojsej@upjs.sk 18.10.2012 Úvod V každodennom živote, hlavne pri skúmaní prírodných javov, procesov sa stretávame so závislosťou veľkosti niektorých veličín od

Διαβάστε περισσότερα

HASLIM112V, HASLIM123V, HASLIM136V HASLIM112Z, HASLIM123Z, HASLIM136Z HASLIM112S, HASLIM123S, HASLIM136S

HASLIM112V, HASLIM123V, HASLIM136V HASLIM112Z, HASLIM123Z, HASLIM136Z HASLIM112S, HASLIM123S, HASLIM136S PROUKTOVÝ LIST HKL SLIM č. sklad. karty / obj. číslo: HSLIM112V, HSLIM123V, HSLIM136V HSLIM112Z, HSLIM123Z, HSLIM136Z HSLIM112S, HSLIM123S, HSLIM136S fakturačný názov výrobku: HKL SLIMv 1,2kW HKL SLIMv

Διαβάστε περισσότερα

Kompilátory Syntaxou riadený preklad. Ján Šturc Zima 2009

Kompilátory Syntaxou riadený preklad. Ján Šturc Zima 2009 Kompilátory Syntaxou riadený preklad Ján Šturc Zima 2009 Syntaxou riadené definície Symbolom gramatiky sú priradené atribúty, ktoré nesú dodačnú informáciu o konštrukciách rozpoznávaných syntaxou. Hodnoty

Διαβάστε περισσότερα

MATEMATICKÁ ANALÝZA 1

MATEMATICKÁ ANALÝZA 1 UNIVERZITA PAVLA JOZEFA ŠAFÁRIKA V KOŠICIACH Prírodovedecká fakulta Ústav matematických vied Božena Mihalíková, Ján Ohriska MATEMATICKÁ ANALÝZA Vysokoškolský učebný text Košice, 202 202 doc. RNDr. Božena

Διαβάστε περισσότερα

,Zohrievanie vody indukčným varičom bez pokrievky,

,Zohrievanie vody indukčným varičom bez pokrievky, Farba skupiny: zelená Označenie úlohy:,zohrievanie vody indukčným varičom bez pokrievky, Úloha: Zistiť, ako závisí účinnosť zohrievania vody na indukčnom variči od priemeru použitého hrnca. Hypotéza: Účinnosť

Διαβάστε περισσότερα

Podnikateľ 90 Mobilný telefón Cena 95 % 50 % 25 %

Podnikateľ 90 Mobilný telefón Cena 95 % 50 % 25 % Podnikateľ 90 Samsung S5230 Samsung C3530 Nokia C5 Samsung Shark Slider S3550 Samsung Xcover 271 T-Mobile Pulse Mini Sony Ericsson ZYLO Sony Ericsson Cedar LG GM360 Viewty Snap Nokia C3 Sony Ericsson ZYLO

Διαβάστε περισσότερα

RIEŠENIE WHEATSONOVHO MOSTÍKA

RIEŠENIE WHEATSONOVHO MOSTÍKA SNÁ PMYSLNÁ ŠKOL LKONKÁ V PŠŤNO KOMPLXNÁ PÁ Č. / ŠN WSONOVO MOSÍK Piešťany, október 00 utor : Marek eteš. Komplexná práca č. / Strana č. / Obsah:. eoretický rozbor Wheatsonovho mostíka. eoretický rozbor

Διαβάστε περισσότερα

Matematika 2. časť: Funkcia viac premenných Letný semester 2013/2014

Matematika 2. časť: Funkcia viac premenných Letný semester 2013/2014 Matematika 2 časť: Funkcia viac premenných Letný semester 2013/2014 RNDr. Jana Pócsová, PhD. Ústav riadenia a informatizácie výrobných procesov Fakulta BERG Technická univerzita v Košiciach e-mail: jana.pocsova@tuke.sk

Διαβάστε περισσότερα

Logické systémy. doc. RNDr. Jana Galanová, PhD. RNDr. Peter Kaprálik, PhD. Mgr. Marcel Polakovič, PhD.

Logické systémy. doc. RNDr. Jana Galanová, PhD. RNDr. Peter Kaprálik, PhD. Mgr. Marcel Polakovič, PhD. Logické systémy doc. RNDr. Jana Galanová, PhD. RNDr. Peter Kaprálik, PhD. Mgr. Marcel Polakovič, PhD. KAPITOLA 1 Úvodné pojmy V tejto časti uvádzame základné pojmy, prevažne z diskrétnej matematiky, ktoré

Διαβάστε περισσότερα

Obsah. 1.1 Reálne čísla a ich základné vlastnosti... 7 1.1.1 Komplexné čísla... 8

Obsah. 1.1 Reálne čísla a ich základné vlastnosti... 7 1.1.1 Komplexné čísla... 8 Obsah 1 Číselné obory 7 1.1 Reálne čísla a ich základné vlastnosti............................ 7 1.1.1 Komplexné čísla................................... 8 1.2 Číselné množiny.......................................

Διαβάστε περισσότερα

Návrh vzduchotesnosti pre detaily napojení

Návrh vzduchotesnosti pre detaily napojení Výpočet lineárneho stratového súčiniteľa tepelného mosta vzťahujúceho sa k vonkajším rozmerom: Ψ e podľa STN EN ISO 10211 Návrh vzduchotesnosti pre detaily napojení Objednávateľ: Ing. Natália Voltmannová

Διαβάστε περισσότερα

Goniometrické substitúcie

Goniometrické substitúcie Goniometrické substitúcie Marta Kossaczká S goniometrickými funkciami ste sa už určite stretli, pravdepodobne predovšetkým v geometrii. Ich použitie tam ale zďaleka nekončí. Nazačiatoksizhrňme,čoonichvieme.Funkciesínusakosínussadajúdefinovať

Διαβάστε περισσότερα

Kontrolné otázky na kvíz z jednotiek fyzikálnych veličín. Upozornenie: Umiestnenie správnej a nesprávnych odpovedí sa môže v teste meniť.

Kontrolné otázky na kvíz z jednotiek fyzikálnych veličín. Upozornenie: Umiestnenie správnej a nesprávnych odpovedí sa môže v teste meniť. Kontrolné otázky na kvíz z jednotiek fyzikálnych veličín Upozornenie: Umiestnenie správnej a nesprávnych odpovedí sa môže v teste meniť. Ktoré fyzikálne jednotky zodpovedajú sústave SI: a) Dĺžka, čas,

Διαβάστε περισσότερα

Funkcie - základné pojmy

Funkcie - základné pojmy Funkcie - základné pojmy DEFINÍCIA FUNKCIE Nech A, B sú dve neprázdne číselné množiny. Ak každému prvku x A je priradený najviac jeden prvok y B, tak hovoríme, že je daná funkcia z množiny A do množiny

Διαβάστε περισσότερα

7. Dokážte, že z každej nekonečnej množiny môžeme vydeliť spočítateľnú podmnožinu.

7. Dokážte, že z každej nekonečnej množiny môžeme vydeliť spočítateľnú podmnožinu. Teória množín To, že medzi množinami A, B existuje bijektívne zobrazenie, budeme symbolicky označovať A B alebo A B. Vtedy hovoríme, že množiny A, B sú ekvivalentné. Hovoríme tiež, že také množiny A, B

Διαβάστε περισσότερα

Vybrané partie z logiky

Vybrané partie z logiky FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITY KOMENSKÉHO Katedra informatiky Vybrané partie z logiky poznámky z prednášok martin florek 22. mája 2004 Predhovor Vďaka nude a oprášeniu vedomostí z

Διαβάστε περισσότερα

24. Základné spôsoby zobrazovania priestoru do roviny

24. Základné spôsoby zobrazovania priestoru do roviny 24. Základné spôsoby zobrazovania priestoru do roviny Voľné rovnobežné premietanie Presné metódy zobrazenia trojrozmerného priestoru do dvojrozmernej roviny skúma samostatná matematická disciplína, ktorá

Διαβάστε περισσότερα

Ján Buša Štefan Schrötter

Ján Buša Štefan Schrötter Ján Buša Štefan Schrötter 1 KOMPLEXNÉ ČÍSLA 1 1.1 Pojem komplexného čísla Väčšine z nás je známe, že druhá mocnina ľubovoľného reálneho čísla nemôže byť záporná (ináč povedané: pre každé x R je x 0). Ako

Διαβάστε περισσότερα

3. Striedavé prúdy. Sínusoida

3. Striedavé prúdy. Sínusoida . Striedavé prúdy VZNIK: Striedavý elektrický prúd prechádza obvodom, ktorý je pripojený na zdroj striedavého napätia. Striedavé napätie vyrába synchrónny generátor, kde na koncoch rotorového vinutia sa

Διαβάστε περισσότερα

ALGEBRA. Číselné množiny a operácie s nimi. Úprava algebrických výrazov

ALGEBRA. Číselné množiny a operácie s nimi. Úprava algebrických výrazov ALGEBRA Číselné množiny a operácie s nimi. Úprava algebrických výrazov Definícia Množinu považujeme za určenú, ak vieme o ľubovoľnom objekte rozhodnúť, či je alebo nie je prvkom množiny. Množinu určujeme

Διαβάστε περισσότερα

Chí kvadrát test dobrej zhody. Metódy riešenia úloh z pravdepodobnosti a štatistiky

Chí kvadrát test dobrej zhody. Metódy riešenia úloh z pravdepodobnosti a štatistiky Chí kvadrát test dobrej zhody Metódy riešenia úloh z pravdepodobnosti a štatistiky www.iam.fmph.uniba.sk/institute/stehlikova Test dobrej zhody I. Chceme overiť, či naše dáta pochádzajú z konkrétneho pravdep.

Διαβάστε περισσότερα

Formálne jazyky a automaty

Formálne jazyky a automaty abeceda, slovo jazyk operácie na jazykoch 1. Základnépojmy Formálne jazyky a automaty Kubo Kováč Abeceda je ľubovoľná neprázdna konečná množina, jej prvky voláme písmená alebo znaky. Slovo w (dĺžky k 0)nadabecedouΣjekonečnápostupnosť

Διαβάστε περισσότερα

Obyčajné diferenciálne rovnice

Obyčajné diferenciálne rovnice (ÚMV/MAN3b/10) RNDr. Ivan Mojsej, PhD ivan.mojsej@upjs.sk 14.3.2013 Úvod patria k najdôležitejším a najviac prepracovaným matematickým disciplínam. Nielen v minulosti, ale aj v súčastnosti predstavujú

Διαβάστε περισσότερα

1.1 Zobrazenia a funkcie

1.1 Zobrazenia a funkcie 1 Teória vypočítateľnosti poznámky z prednášky #1 1.1 Zobrazenia a funkcie Definícia. Čiastočné (totálne) zobrazenie trojice (A, B, f) pre ktoré platí: f A B Ku každému vstupu a A existuje najviac jeden

Διαβάστε περισσότερα

REZISTORY. Rezistory (súčiastky) sú pasívne prvky. Používajú sa vo všetkých elektrických

REZISTORY. Rezistory (súčiastky) sú pasívne prvky. Používajú sa vo všetkých elektrických REZISTORY Rezistory (súčiastky) sú pasívne prvky. Používajú sa vo všetkých elektrických obvodoch. Základnou vlastnosťou rezistora je jeho odpor. Odpor je fyzikálna vlastnosť, ktorá je daná štruktúrou materiálu

Διαβάστε περισσότερα

23. Zhodné zobrazenia

23. Zhodné zobrazenia 23. Zhodné zobrazenia Zhodné zobrazenie sa nazýva zhodné ak pre každé dva vzorové body X,Y a ich obrazy X,Y platí: X,Y = X,Y {Vzdialenosť vzorov sa rovná vzdialenosti obrazov} Medzi zhodné zobrazenia patria:

Διαβάστε περισσότερα

Eulerovské grafy. Príklad Daný graf nie je eulerovský, ale obsahuje eulerovskú cestu (a, ab, b, bc, c, cd, d, da, a, ac, c, ce, e, ed, d, db).

Eulerovské grafy. Príklad Daný graf nie je eulerovský, ale obsahuje eulerovskú cestu (a, ab, b, bc, c, cd, d, da, a, ac, c, ce, e, ed, d, db). Eulerovské grafy Denícia Nech G = (V, E) je graf. Uzavretý ah v G sa nazýva eulerovská kruºnica, ak obsahuje v²etky hrany G. Otvorený ah obsahujúci v²etky hrany grafu sa nazýva eulerovská cesta. Graf sa

Διαβάστε περισσότερα

. visual basic. int sum(int a, int b){ return a+b;} : : :

. visual basic. int sum(int a, int b){ return a+b;} : : : : : : : (),, : (),( )-,() - :,, -,( ) -1.... visual basic int sum(int a, int b){ return a+b; float f=2.5; main(){ float A[10]; A[f]=15; int x=sum(int(f), 10, A[2]);. -2.... -3.foolowpos(3) * ( a b c) (

Διαβάστε περισσότερα

Numerické metódy Učebný text pre bakalárske štúdium

Numerické metódy Učebný text pre bakalárske štúdium Imrich Pokorný Numerické metódy Učebný text pre bakalárske štúdium Strana 1 z 48 1 Nepresnosť numerického riešenia úloh 4 1.1 Zdroje chýb a ich klasifikácia................... 4 1.2 Základné pojmy odhadu

Διαβάστε περισσότερα

Harmonizované technické špecifikácie Trieda GP - CS lv EN Pevnosť v tlaku 6 N/mm² EN Prídržnosť

Harmonizované technické špecifikácie Trieda GP - CS lv EN Pevnosť v tlaku 6 N/mm² EN Prídržnosť Baumit Prednástrek / Vorspritzer Vyhlásenie o parametroch č.: 01-BSK- Prednástrek / Vorspritzer 1. Jedinečný identifikačný kód typu a výrobku: Baumit Prednástrek / Vorspritzer 2. Typ, číslo výrobnej dávky

Διαβάστε περισσότερα

Lineárne kódy. Ján Karabáš. Kódovanie ZS 13/14 KM FPV UMB. J. Karabáš (FPV UMB) Lineárne kódy Kodo ZS 13/14 1 / 19

Lineárne kódy. Ján Karabáš. Kódovanie ZS 13/14 KM FPV UMB. J. Karabáš (FPV UMB) Lineárne kódy Kodo ZS 13/14 1 / 19 Lineárne kódy Ján Karabáš KM FPV UMB Kódovanie ZS 13/14 J. Karabáš (FPV UMB) Lineárne kódy Kodo ZS 13/14 1 / 19 Algebraické štruktúry Grupy Grupa je algebraická štruktúra G = (G;, 1, e), spolu s binárnou

Διαβάστε περισσότερα

Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy

Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy Beáta Stehlíková Časové rady, FMFI UK, 2013/2014 Jednotkový koreň(unit root),diferencovanie časového radu, unit root testy p.1/27

Διαβάστε περισσότερα

Vektorový priestor V : Množina prvkov (vektory), na ktorej je definované ich sčítanie a ich

Vektorový priestor V : Množina prvkov (vektory), na ktorej je definované ich sčítanie a ich Tuesday 15 th January, 2013, 19:53 Základy tenzorového počtu M.Gintner Vektorový priestor V : Množina prvkov (vektory), na ktorej je definované ich sčítanie a ich násobenie reálnym číslom tak, že platí:

Διαβάστε περισσότερα

Goniometrické funkcie

Goniometrické funkcie Goniometrické funkcie Oblúková miera Goniometrické funkcie sú funkcie, ktoré sa používajú pri meraní uhlov (Goniometria Meranie Uhla). Pri týchto funkciách sa uvažuje o veľkostiach uhlov udaných v oblúkovej

Διαβάστε περισσότερα

Vybrané partie z logiky

Vybrané partie z logiky FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY UNIVERZITA KOMENSKÉHO Katedra informatiky Vybrané partie z logiky Eduard Toman Bratislava 2005 Obsah 1 Úvod 3 1.1 Jazyk logiky..................................

Διαβάστε περισσότερα

9. kapitola Boolove funkcie a logické obvody

9. kapitola Boolove funkcie a logické obvody 9. kapitola Boolove funkcie a logické obvody Priesvitka 1 Boolova algebra Elektronické obvody v počítačoch a v podobných zariadeniach sú charakterizované binárnymi vstupmi a výstupmi (rovnajúcimi sa 0

Διαβάστε περισσότερα

Maturitné úlohy. Matematiky. Pre gymnázium

Maturitné úlohy. Matematiky. Pre gymnázium Jozef Vozár Maturitné úlohy Z Matematiky Pre gymnázium I. (Úlohy s výberom odpovede) OBSAH ÚVOD K ÚVODU... 4 ÚVOD... 4 1. ZÁKLADY MATEMATIKY... 6 1.1 Logika a množiny... 6 Požiadavky na vedomosti a zručnosti...

Διαβάστε περισσότερα

MIDTERM (A) riešenia a bodovanie

MIDTERM (A) riešenia a bodovanie MIDTERM (A) riešenia a bodovanie 1. (7b) Nech vzhl adom na štandardnú karteziánsku sústavu súradníc S 1 := O, e 1, e 2 majú bod P a vektory u, v súradnice P = [0, 1], u = e 1, v = 2 e 2. Aký predpis bude

Διαβάστε περισσότερα

Prednáška Fourierove rady. Matematická analýza pre fyzikov IV. Jozef Kise lák

Prednáška Fourierove rady. Matematická analýza pre fyzikov IV. Jozef Kise lák Prednáška 6 6.1. Fourierove rady Základná myšlienka: Nech x Haφ 1,φ 2,...,φ n,... je ortonormálny systém v H, dá sa tento prvok rozvinút do radu x=c 1 φ 1 + c 2 φ 2 +...,c n φ n +...? Ako nájdeme c i,

Διαβάστε περισσότερα

Základy matematickej štatistiky

Základy matematickej štatistiky 1. Náhodný výber, výberové momenty a odhad parametrov Katedra Matematických metód Fakulta Riadenia a Informatiky Žilinská Univerzita v Žiline 6. mája 2015 1 Náhodný výber 2 Výberové momenty 3 Odhady parametrov

Διαβάστε περισσότερα

u R Pasívne prvky R, L, C v obvode striedavého prúdu Činný odpor R Napätie zdroja sa rovná úbytku napätia na činnom odpore.

u R Pasívne prvky R, L, C v obvode striedavého prúdu Činný odpor R Napätie zdroja sa rovná úbytku napätia na činnom odpore. Pasívne prvky, L, C v obvode stredavého prúdu Čnný odpor u u prebeh prúdu a napäta fázorový dagram prúdu a napäta u u /2 /2 t Napäte zdroja sa rovná úbytku napäta na čnnom odpore. Prúd je vo fáze s napätím.

Διαβάστε περισσότερα

1. Trojuholník - definícia

1. Trojuholník - definícia 1. Trojuholník - definícia Trojuholník ABC sa nazýva množina takých bodov, ktoré ležia súčasne v polrovinách ABC, BCA a CAB, kde body A, B, C sú body neležiace na jednej priamke.. Označenie základných

Διαβάστε περισσότερα

x x x2 n

x x x2 n Reálne symetrické matice Skalárny súčin v R n. Pripomeniem, že pre vektory u = u, u, u, v = v, v, v R platí. dĺžka vektora u je u = u + u + u,. ak sú oba vektory nenulové a zvierajú neorientovaný uhol

Διαβάστε περισσότερα