Programové a informačné systémy 2-INF-144 Kompilátory Štruktúra a použitie kompilátorov, nástroje pre tvorbu kompilátorov. Základné pojmy a štruktúra

Podobné dokumenty
ECDL Syllabus V50 SK-V01

NSK Karta PDF

DediĊnosť

Princípy tvorby softvéru Programovacie paradigmy

Algoritmizácia a programovanie - Príkazy

Matematický model činnosti sekvenčného obvodu 7 MATEMATICKÝ MODEL ČINNOSTI SEKVENČNÉHO OBVODU Konečný automat predstavuje matematický model sekvenčnéh

Slovenská technická univerzita v Bratislave FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Ilkovičova 3, Bratislava Tímový projekt Ponuka Grafi

Relačné a logické bázy dát

13/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min 1. Daná je databáza (bez duplikátov a null hodnôt): capuje(krcma, Alkohol), lubi(pijan,

Paralelné algoritmy, cast c. 3

Paralelné algoritmy, cast c. 3

7/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min

NSK Karta PDF

MO_TČOZ_TLY_2018_2019

enum

NÁVRH UČEBNÝCH OSNOV PRE 1

Slovenská technická univerzita v Bratislave

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

Microsoft PowerPoint - SLIDES_02DTD.ppt

Počítačové siete DOCSIS

Súkromné gymnázium, Česká 10, Bratislava INFORMATIKA

MO_pred1

Študijný program (Študijný odbor) Školiteľ Forma štúdia Téma Elektronické zbraňové systémy (8.4.3 Výzbroj a technika ozbrojených síl) doc. Ing. Martin

Dobývanie znalostí

1

Snímka 1

Microsoft PowerPoint - OOP_prednaska_10.pptx

Katalóg cieľových požiadaviek k maturitnej skúške

gis5 prifuk

Cieľové požiadavky na vedomosti a zručnosti pri maturitnej skúške skupiny odborov 25 Informačné a komunikačné technológie Všeobecné - cieľové požiadav

Snímka 1

s sol

PM

PowerPoint Presentation

Úvod do mobilného operačného systému ANDROID

Princípy tvorby softvéru Modelovanie domény

Microsoft Word - Argumentation_presentation.doc

PowerPoint Presentation

Rozdeľovanie IT zákaziek UX Peter Kulich

Identity Lifecycle Management

A51

Microsoft Word - Priloha_1.docx

Úvodná prednáška z RaL

Aktuálne vedecké poznatky v odbore Telekomunikácie

2.5. Dotyčnica krivky, dotykový kužeľ. Nech f je krivka a nech P V (f) (t.j. m P (f) 1). Ak m P (f) = r a l je taká priamka, že I P (f, l) > r, potom

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

User:Michal.Palcek

Akreditácia vzdelávacích programov – projekt MVP

SRPkapitola06_v1.docx

Písomný test k predmetu Tvorba informačných systémov, pondelok, 16.januára 2012, čas: 120 minút. Odpovede píšte priamo k otázkam, ak potrebujete viac

Tomáš Jelínek - včely vyhľadávanie

6

Paralelné algoritmy, cast c. 2

Riesenie_zasielkovna

Kolmogorovská zložitost

Prezentace aplikace PowerPoint

Analýza toku dát Ján Šturc Zima 2010 Kompilátory

Snímka 1

Predstavenie tímu Náš tím pozostáva zo siedmich členov: Andrej Hucko, Jakub Domian, Ľubomíra Trnavská, Ján Karaffa, Ľudovít Popelka, Dušan Janeček a Z

Integrácia Čo je SOA? Peter Rybár Daniel Buchta Jozef Sivek

Kategória školenia Tvorba www stránok obsahuje kurzy: Tvorba www stránok základy Cieľom kurzu je naučiť Vás vytvárať moderné webové stránky od úplných

Slide 1

NSK Karta PDF

Brezina_Gertler_Pekar_2005

Prezentace aplikace PowerPoint

PowerPoint Presentation

Aktion.NEXT Novinky vo verzii 1.9

Sirius II Sprievodca inštaláciou a návod na použitie Sirius II - sprievodca inštaláciou a návod na použitie (verzia 3) 1

Študijný program (Študijný odbor) Školiteľ Forma štúdia Téma Požiadavky na prijatie Výzbroj a technika ozbrojených síl (8.4.3 Výzbroj a technika ozbro

NSK Karta PDF

Snímka 1

SK01-KA O1 Analýza potrieb Zhrnutie BCIME tím Vyhlásenie: "Podpora Európskej komisie pre výrobu tejto publikácie nepredstavuje súhlas

Teoretická informatika 1. Vzťahy medzi zložitostnými triedami (complexity ZOO) základné vety o zložitosti (Savitchova veta, veta o zrýchlení, gap theo

Testy z CSS_2015_16

Analýza hlavných komponentov

Microsoft Word - 8.cvicenie.doc

Snímka 1

UNIVERZITA KOMENSKÉHO V BRATISLAVE FAKULTA MATEMATIKY, FYZIKY A INFORMATIKY SOFTVÉR NA VÝUČBU PARALELIZMU A AUTOMATOV NA ZÁKLADNEJ ŠKOLE Bakalárska pr

Microsoft Word - Algoritmy a informatika-priesvitky02.doc

Hranoly (11 hodín) September - 17 hodín Opakovanie - 8. ročník (6 hodín) Mesiac Matematika 9. ročník 5 hodín/týždeň 165 hodín/rok Tematický celok Poče

PosAm Servio

Microsoft PowerPoint - Prog_p08.ppt

Didaktické testy

PM C-03 Prostredie riadenia ¾udských zdrojov

STRUČNÝ NÁVOD KU IP-COACHU

Microsoft Word Nextra_ADSLink.doc

Portál VŠ a CEP

Manažment v Tvorbe Softvéru 2018/2019

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

PowerPoint Presentation

Učebné osnovy

NSK Karta PDF

Jazykom riadená vizuálna pozornosť - konekcionistický model Igor Farkaš Katedra aplikovanej informatiky / Centrum pre kognitívnu vedu Fakulta matemati

PowerPoint Presentation

Microsoft Word - RolyRiadeniaZmien_V1.doc

Models of marital status and childbearing

Numerické riešenie všeobecnej (klasickej) DMPK rovnice.

Slovenská technická univerzita v Bratislave FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Študijný program: Softvérové inžinierstvo RoboCup tretí roz

Kategória školenia Kurzy Project, Outlook obsahuje kurzy: Outlook základy Účastníci kurzu Outlook základy sa naučia využívať tento program na ov

SAEAUT SNMP OPC Server

Prepis:

Programové a informačné systémy 2-INF-144 Kompilátory Štruktúra a použitie kompilátorov, nástroje pre tvorbu kompilátorov. Základné pojmy a štruktúra kompilátora (lexikálna analýza, syntaktická analýza,..., rozdelenie na front-end a back-end). Vzťah k teórii jazykov. Syntax vs. sémantika. Kompilácia do iných jazykov, byte-kódu, strojového kódu. Porovnanie kompilátorov s interpretermi, JIT. Využitie kompilátorov pri statickej kontrole, formátovaní textu, spracovaní štruktúrovaných dokumentov. Nástroje pre tvorbu kompilátorov (Flex, Bison alebo ANTLR) Jednoduchý jednoprechodový kompilátor, rekurzívny zostup. Lexikálna analýza. Dôvody oddelenia lexikálnej a syntaktickej analýzy. Token, Vzor, Lexéma. Lexikálna analýza a odsadenie blokov ako syntaktická konštrukcia. Regulárne jazyky, Nedeterministické konečné automaty, deterministické konečné automaty (DKA) a prechod od regulárnych jazykov k DKA. Vyhľadávanie v texte (napr. Aho-Corasick). Oprava chýb a zotavenie sa z chýb pri lexikálnej analýze. Syntaktická analýza zhora-nadol. Bezkontextové gramatiky. Strom odvodenia. Abstraktný syntaktický strom. Úprava gramatiky (eliminácia nejednoznačnosti a ľavej rekurzie, ľavá faktorizácia). Rekurzívny zostup, LL(1), LL(k). Všeobecné metódy pre bezkontextové jazyky: Earley-ho algoritmus, Cocke- YoungerKasami. Oprava chýb a zotavenie sa z chýb pri syntaktickej analýze. Syntaktická analýza zdola-nahor. Bezkontextové gramatiky. Strom odvodenia. Abstraktný syntaktický strom. Úprava gramatiky eliminácia nejednoznačnosti. Operátorovo precedenčné parsovanie. LR parsovanie, model LR parsera, LR parsovací algoritmus. LR metódy SLR, CLR a LALR. Oprava chýb a zotavenie sa z chýb pri syntaktickej analýze. Syntaxou riadené preklady. Atribútové gramatiky. Syntaxou riadená definícia. Syntetizované a zdedené atribúty. S a L-atribútová definícia. Vyhodnocovanie atribútov. Graf závislosti atribútov. Test na cirkularitu. Porovnanie metód zhora-nadol a zdola-nahor. Podpora v čase behu (Run-time environments). Organizácia a prideľovanie pamäte (statické dáta, zásobník, dynamická pamäť). Zber smetí (garbage collection). Volanie funkcií a procedúr, dovzdávanie parametrov, lokálne a nelokálne premenné, aktivačný záznam, display. Rozsah platnosti (scope) statický (lexikálny) vs. dynamický.

Generovanie medzijazyka. Formy medzijazyka: Poľská bezzátvorková forma, štvorice (trojadresové inštrukcie) a trojice. Generovanie medzijazyka syntaxou riadeným prekladom (atribúty kód a umiestnenie). Popis základných konštrukcií: aritmetické a logické výrazy, príkaz priradenia, riadiace konštrukcie (if, while,...), volanie procedúr a funkcií. Spätné plátanie (backpatching). Generovanie kódu. Cieľový počítač: CISC, RISC. Dĺžka a ceny inštrukcií. Zohľadňovanie cache a pipeline pri preklade. Špecifiká cieľových inštrukčných sád, ktoré treba zohľadňovať. Prideľovanie registrov. Prideľovanie registrov farbením grafu (register inference graph). Administrácia pamäte. Statická pamäť, zásobník, dynamická pamäť heap. Rozdelenie programu na bloky, generovanie kódu z dagu. Generovanie kódu pokrývaním ozdobeného stromu. Optimalizácia kódu. Optimalizácia základných blokov, optimalizačné transformácie. Eliminácia mŕtveho kódu, kukátková (peephole) optimalizácia, algebraické identity,redukcia v sile, vyhodnocovanie konštantných podvýrazov. Analýza toku dát. Riešenie rovníc toku dát. 2-INF-184 Programovacie jazyky Zoznamy, n-tice, algebraické dátové typy (ADT), zovšeobecnené algebraické dátové typy (GADT), abstraktné dátové typy a moduly. Pattern matching a kontrola jeho úplnosti, chvostová rekurzia, akumulátor, typy n- tého ranku (Rank-N types). Striktné (strict), odložené (delayed) a lenivé (lazy) vyhodnocovanie parametrov. Odloženie vyhodnotenia parametrov v striktných jazykoch (thunks). Vynútenie vyhodnotenia parametrov v lenivých jazykoch (foldl vs. foldl'). Meniteľné (mutable) a nemenné (immutable) dátové štruktúry. Návrhový vzor monad a jeho využitie (Maybe, List, Reader, Writer, State). Prvorádové (first-class) funkcie, funkcie vyššieho rádu (map, foldr, foldl), uzávery (closures), typová inferencia. Funkcie viacerých argumentov, n-tice, currying vs. čiastočné aplikovanie funkcie, bezbodový (pointfree) štýl zápisu funkcie. Staticky a dynamicky typované jazyky, jazyky bez typovej kontroly, možné rozdiely v sémantike príkazu if a zoznamov, duck typing. Funkcionálna vs. OOP dekompozícia, mixins, double dispatch, subtyping, generics, polymorfické funkcie. LISP syntax, rozdiel medzi reťazcami a symbolmi, eval, quasiquote, unquote, string interpolation. Makrá, kedy je ich vhodné použiť, hygienické makrá.

2-INF-145 Tvorba internetových aplikácií Základy internetových aplikácií. HTTP, HTML, CSS, SVG, JavaScript. Oddelenie prezentácie, obsahu a kódu, šablóny. JavaScript transpilers. jquery výhody a nevýhody. Prechod od statických stránok k dynamickým aplikáciám (cookies, sessions, upload, dynamické generovanie obsahu databáza). JavaScript OOP. Objektovo orientované programovanie založené na prototypoch (rozdiely oproti OOP založenému na triedach). Rozdiel medzi proto a prototype položkami objektov. Manipulácia s this pomocou call, apply a bind a jej využitie. Privátne položky a metódy v JavaScript objektoch a ich súvis s closures. JavaScript. Typované polia (buffer, view, DataView). Strict mode. Funkcie s premenlivým počtom argumentov. Block vs. function scoping (t.j. let vs. var). Reťazenie (kaskádovanie) metód. Canvas element a Scalable Vector Graphics (SVG). Porovnanie <canvas> elementu a SVG (nezávislosť na rozlíšení, DOM, CSS, udalosti, odkazy,...). Použitie <g> elementu (zoskupovanie), <use> elementu (znovupoužitie) a <def> elementu (definície bez zobrazenia) pri SVG. Transformácia súradnicového systému, gradienty, zarovnanie textu na cestu. Data URL format a <img> element. AJAX a WebSockets. Princíp AJAX, XMLHttpRequest, výhody a nevýhody. Notifikácie od servera pred WebSocketmi (Polling, Long Polling, Streaming). Výhody WebSocketov (šetrí šírku pásma, CPU, jednoduché API, súčasť HTML5). Bezpečnosť internetových aplikácií HTTPS, identifikácia a autentifikácia používateľov. Session hijacking, session riding. URL tampering, forceful browsing. HTML injection, SQL injection. White-list vs. black-list. 2-INF-183 Počítačové siete 2 Riadenie prístupu k zdieľanému médiu v počítačových sieťach, predpoklady a vlastnosti Ethernet (CSMA/CD) WiFi (CSMA/CA) DOCSIS Prenosy paketov cez jednoduché sériové linky kódovanie signálov synchronizácia hodín PPP

Spanning Tree protokoly STP RSTP MSTP Smerovacie protokoly v TCP/IP OSPF BGP pôsoby multiplexovania v sieťach TDMA FDMA 2-INF-222 Objektová analýza a modelovanie Popis softverovo intenzívneho systému Aké aspekty softverovo intenzívneho systému je potrebné zachytiť pre vytvorenie uceleného pohľadu na systém? Použitie jednotlivých UML diagramov na zachytenie vlastností softveru. Fázy vývoja softveru Popíšte najbežnejšie metodológie vývoja softveru. Použitie UML diagramov v jednotlivých fázach vývoja softveru Požiadavky, analýza požiadaviek, use case diagramy zdroje požiadaviek metódy zachytávania požiadaviek analýza požiadaviek typy požiadviek organizácia požiadaviek v rámci dokumentácie softverového projektu základné elementy use-case diagramov Analýza a plánovanie v iteratívno-inkrementálnom vývoji typický obsah prvých iterácií softverového projektu ako sa mení typický rozsah iterácie počas vývoja softvéru ktorým položkám je potrebné pri analýze venovať zvýšenú pozornosť a ako ich spoznáme ako sa určuje rozsah iterácie (porovnať rôzne prístupy, jednak z obsahovej a aj z časovej/množstevnej stránky) Class diagramy, designove principy základné elementy class a object diagramov použitie object a class diagramov na popis softvéru základné princípy (nielen) objektovo-orientovaného dizajnu Základné návrhové vzory základné vytvárajúce vzory, štrukturálne vzory a vzory správania pomocou UML opíšte vybrané návrhové vzory Immutable datové štruktúry, testovateľnosť OO kódu. Interface immutable tried, implementácia immutable verzií základných štruktúr, výhody a nevýhody immutable datových štruktúr. Aké prvky v návrhu a implementácii tried sťažujú testovanie? Ako navrhnúť objekt tak, aby sa dal jednoduchšie testovať? Ako sa pri unit testoch vysporiadať so závislosťami triedy

Activity diagramy, sequence diagramy, comunications diagramy a state machines základné elementy diagramov. využitie diagramov popis softveru. vysvetlite fungovanie vybraného návrhového vzoru, pričom vo vašom vysvetlení má byť kľúčový activity diagram alebo state machine. Ostatné UML diagramy Elementy a použitie komponent diagramov, composite structure diagramov, package diagramov, deployment diagramov UML profily Objekty a databázy Nekompatibilnosť OO systémov a relačných databáz ORM No-SQL databázy 2-INF-500 Databázy Sémantika dotazov. Teórie, modely, stratifikovaná negácia, lokálne stratifikovaná negácia. Sémantika pevného bodu. Gelfond-Lifschitzova transformácia, stabilné modely, well-founded model. Optimalizácia rekurzívnych dotazov. Datalogové programy s funkčnými symbolmi, unifikácia termov, naivná evaluácia, seminaivná evaluácia. Prolog, SLD rezolúcia, rule-goal-tree, rule-goal-graph, väzby medzi premennými (binding patterns). Magická transformácia, zovšeobecnená magická transformácia. Optimalizácia nerekurzívnych dotazov. Strom relačného výrazu, hypergraf dotazu. Dekompozícia hypergrafu, Wong-Youssefiho algoritmus. Semijoin, úplný reduktor, Yannakakisov algoritmus. Optimalizácia poradia joinov. Odhad veľkosti výstupu dotazu. Použitie indexov, dekompozícia databázy. Pohltenie (containment) a ekvivalencia konjunktívnych dotazov. Testovanie pohltenia dotazov, petrifikované dotazy, kanonické databázy. Tablá, vynútenie závislostí, slabá ekvivalencia dotazov, minimalizácia tabiel. Vyššie normálne formy. Funkčné závislosti, 3NF, BCNF. Multizávislosti, 4NF. Joinovacie závislosti, 5NF. Inklúzne závislosti. DKNF (domain-key normal form). Metodika normalizácie. Distribuované databázy. Model distribuovanej databázy. Atomický commit. Požiadavky na ACP. Dvojfázový ACP. Trojfázový ACP. Výber koordinátora, bully algoritmus. Replikácia dát, distribuované zamykanie, distribuované deadlocky. Quorum protokol. Synchronizácia fyzických hodín, Christianov protokol, Berkeley protokol. Časové pečiatky, Lamportov protokol.