Lexikální analýza Teorie programovacích jazyků
|
|
- Robert Kašpar
- před 7 lety
- Počet zobrazení:
Transkript
1 Lexikální analýza Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz
2 Osnova dnešní přednášky 1 Úvod do teorie překladačů kompilátor a interpret možnosti využití překladačů struktura překladače reakce na chybu ve vstupu 2 Lexikální analyzátor lexikální symboly a jejich atributy rozpoznávání symbolů ze vstupu možnosti implementace 3 Příklad implementace návrh jazyka realizace Teorie programovacích jazyků Přednáška 5: Lexikální analýza 2 / 32
3 Základní pojmy z teorie překladačů Překladač je program, který čte zdrojový program a převádí ho do ekvivalentního cílového programu Zdrojový program je napsán ve zdrojovém jazyce, cílový program je v cílovém jazyce Důležitou částí procesu překladu jsou diagnostické zprávy například o přítomnosti chyb ve zdrojovém programu Generační překladač (kompilátor) převádí zdrojový jazyk do ekvivalentního strojového kódu nebo jazyka symbolických instrukcí Interpretační překladač (interpret) přímo interpretuje příkazy zdrojového jazyka tak, jak jsou napsány Teorie programovacích jazyků Přednáška 5: Lexikální analýza 3 / 32
4 Kompilátor interpret Data Zdrojový program Překladač Cílový program Výsledky Data Zdrojový program Interpret Výsledky Teorie programovacích jazyků Přednáška 5: Lexikální analýza 4 / 32
5 Kompilátor interpret Vlastnost Rychlost běhu cílového programu Rychlost spuštění cílového programu Rychlost překladu Spotřeba paměti operační (při běhu) Spotřeba paměti cílový soubor na médiu Přenositelnost kódu mezi SW platformami Možnosti optimalizace Nezávislost na překladači Kompilátor Interpret lepší lepší lepší lepší lepší lepší lepší lepší Teorie programovacích jazyků Přednáška 5: Lexikální analýza 5 / 32
6 Možnosti využití překladačů Překladače programovacích jazyků nejčastější použití Strukturované editory analýza textu, vkládání hierarchické struktury kontrola syntaxe, doplňování párových závorek kontextová nápověda při psaní Formátovací programy analýza programu a jeho tisk se zřetelnou strukturou barevné odlišení poznámek, příkazů apod. Programy pro sazbu textů TEX, jeho formáty a rozšíření Teorie programovacích jazyků Přednáška 5: Lexikální analýza 6 / 32
7 Struktura překladače Zdrojový jazyk Přední(analytická) část Lexikální analýza Syntaktická analýza Sémantická analýza Koncová(syntetická) část Intermediární jazyk Optimalizace intermediárního kódu Generátor kódu Optimalizace cílového kódu Cílový jazyk Teorie programovacích jazyků Přednáška 5: Lexikální analýza 7 / 32
8 Schéma konstrukce překladače i f a > = 4... jednosměrná vstupní páska Lexikální analyzátor lineární gramatiky regulární gramatiky nedeterministický konečný automat deterministický konečný automat Syntaktický analyzátor bezkontextové gramatiky deterministické bezkontextové gramatiky deterministický zásobníkový automat Sémantický analyzátor proměnné, vyhodnocení výrazů, podprogramy, podmínky, cykly, pole, systémová volání... atributové gramatiky Teorie programovacích jazyků Přednáška 5: Lexikální analýza 8 / 32
9 Analytická část překladače Lexikální analyzátor čte posloupnost znaků zdrojového kódu a sestavuje z ní lexikální symboly, vynechává oddělovače a komentáře na každé zavolání vrátí jeden lexikální symbol (token) konstanty, identifikátory, operátory, klíčová slova Syntaktický analyzátor vytváří hierarchicky zanořené struktury vytvořené na základě posloupnosti tokenů a kontroluje syntaxi výrazy, příkazy, deklarace Sémantický analyzátor kontrola vazeb, které nelze provádět na úrovni syntaktické analýzy deklarace, typová kontrola, intermediární kód Teorie programovacích jazyků Přednáška 5: Lexikální analýza 9 / 32
10 Informace o chybě ve zdroji Místo výskytu chyby číslo řádku a pozice na něm Druh chyby lexikální analyzátor neznámé symboly (12YT) syntaktický analyzátor chyby v syntaktické struktuře (begyn), přehozená či chybějící klíčová slova nebo symboly (if x else x := 3) sémantický procesor chyby zjistitelné při překladu (nedeklarovaná proměnná, nekompatibilní datový typ) a běhové chyby související s aktuální hodnotou proměnné (dělení nulou, přetečení, nedovolený přístup do paměti) U některých překladačů také návrhy na opravu chyby Logické chyby (chybná posloupnost příkazů, záměna operátorů, překlep v číslech) prakticky nelze odhalit! Teorie programovacích jazyků Přednáška 5: Lexikální analýza 10 / 32
11 Reakce překladače na chybu Při prvním výskytu chyby se zastaví, provede diagnózu, informuje uživatele a čeká na opravu chyby (Turbo Pascal) Pokouší se najít co nejvíce chyb najednou, zastaví se až při určitém maximálním počtu a informuje uživatele o všech objevených chybách, příp. o maximálním počtu chyb, které je schopen zobrazit (C++) Teorie programovacích jazyků Přednáška 5: Lexikální analýza 11 / 32
12 Zotavení po chybě v lexikální analýze Obecně se při lexikální analýze rozpozná jen malé množství chyb Možnosti reakce analyzátoru na neznámý symbol na vstupu vypouštění znaků ze zbývajícího vstupu tak dlouho, dokud není rozpoznán známý symbol vrácení kódu zvláštního terminálního symbolu bez ohlášení chyby a předání řešení problému syntaktickému analyzátoru vypuštění přebývajícího znaku vložení chybějícího znaku náhrada nesprávného znaku správným vzájemná výměna dvou sousedních znaků Teorie programovacích jazyků Přednáška 5: Lexikální analýza 12 / 32
13 Lexikální analýza Na vstupní pásce rozlišujeme množiny řetězců, které tvoří stejné významové kategorie tzv. lexikální symboly (tokeny) jazyka klíčová slova operátory identifikátory konstanty (literály) řetězce interpunkční symboly (závorky, čárky, středníky) komentáře oddělovače (bílé znaky) Na složitost lexikální analýzy mají značný dopad některé jazykové konvence Teorie programovacích jazyků Přednáška 5: Lexikální analýza 13 / 32
14 Problémy lexikální analýzy Pevná pozice určitých konstrukcí na vstupním řádku umístění může být důležité při určování správnosti zdrojového programu (Fortran) trendy tvorby moderních programovacích jazyků směřují spíše ke vstupu ve volném formátu Zpracování mezer v některých jazycích nejsou mezery významné (s výjimkou mezer uvnitř řetězce) mohou být doplněny pro zvýšení čitelnosti programu konvence týkající se mezer mohou značně komplikovat identifikaci symbolů Teorie programovacích jazyků Přednáška 5: Lexikální analýza 14 / 32
15 Problémy lexikální analýzy Rezervované řetězce předdefinovaný význam, který uživatel nemůže změnit nejsou-li klíčová slova rezervována, musí je od uživatelem definovaného identifikátoru rozlišit lexikální analyzátor definice klíčových slov jako samostatných symbolů jazyka definice klíčových slov pomocí ztotožnění s běžnými identifikátory, následné porovnání s tabulkou klíčových slov je jednodušší na implementaci Teorie programovacích jazyků Přednáška 5: Lexikální analýza 15 / 32
16 Atributy symbolů Lexikální analyzátor musí následujícím fázím překladače poskytovat informaci o tom, jaký symbol byl rozpoznán Důležitý je nejen typ symbolu (např. identifikátor), ale také jeho skutečný obsah (např. vysledek) Informace o jednotlivých rozpoznaných symbolech jsou shromažďovány v atributech symbolů Atributy symbolů významně ovlivňují překlad, neboť mají vliv na rozhodování syntaktického analyzátoru Pro účely diagnostiky nás často kromě samotného symbolu zajímá také číslo řádku, na kterém se symbol objevil Teorie programovacích jazyků Přednáška 5: Lexikální analýza 16 / 32
17 Lexikální analýza Příklad Vstup: pozice := počátek + rychlost * 60 Výstup: identifikátor pozice symbol přiřazení := identifikátor počátek operátor + identifikátor rychlost operátor * číslo 60 Teorie programovacích jazyků Přednáška 5: Lexikální analýza 17 / 32
18 Vstup zdrojového textu Může být v nejjednodušším případě realizováno voláním standardních funkcí programovacích jazyků, avšak obecně se jedná o problém daleko složitější čtení po jednotlivých znacích může být značně neefektivní ve srovnání se čtením po řádcích nebo po velkých blocích textu při čtení zdroje se může provádět jeho opis do výstupní tiskové soustavy doplněný o další získané informace při vkládání částí zdrojového textu z jiných souborů, práci s makrodefinicemi nebo podmíněném překladu je třeba tuto činnost provést samostatně předem nebo současně s lexikální analýzou během čtení znaků největším problémem je nutnost návratu zpět ve vstupním souboru po rozpoznání symbolu Teorie programovacích jazyků Přednáška 5: Lexikální analýza 18 / 32
19 Specifikace a rozpoznávání symbolů Při implementaci lexikálního analyzátoru vycházíme z popisu struktury jednotlivých lexikálních jednotek Tento popis může být v jednom z následujících tvarů slovní popis lineární nebo regulární gramatika přechodový graf konečného automatu regulární výraz Teorie programovacích jazyků Přednáška 5: Lexikální analýza 19 / 32
20 Implementace lexikálního analyzátoru Přímá implementace využití všech prostředků, které poskytuje implementační jazyk Implementace konečného automatu deterministický konečný automat se stavovým řízením Vytvoření konstruktorem nejvýhodnější popis struktury regulárním výrazy nejjednodušší, ale nejméně efektivní způsob implementace Teorie programovacích jazyků Přednáška 5: Lexikální analýza 20 / 32
21 Implementace lexikálního analyzátoru konečným automatem Navrhneme jazyky pro skupiny významových tokenů, které jsou výstupem lexikální analýzy jazyk identifikátorů (včetně klíčových slov) L id jazyk operátorů L op jazyk konstant L con jazyk řetězců L str jazyk ostatních symbolů L sym Navrhneme jazyky pro skupiny nevýznamových tokenů, které nejsou zahrnuty do výstupu lexikální analýzy jazyk komentářů L kom jazyk bílých znaků L bz Teorie programovacích jazyků Přednáška 5: Lexikální analýza 21 / 32
22 Implementace lexikálního analyzátoru konečným automatem Jazyk významových tokenů L vt = L id L op L con L str L sym Jazyk nevýznamových tokenů (oddělovačů) L od = L kom L bz Programovací jazyk L = (L od L vt) L od Dva významové tokeny mohou jít bezprostředně po sobě pouze tehdy, jsou-li různého typu, v opačném případě musí být odděleny alespoň jedním oddělovačem V každém kroku zpracuje lexikální analyzátor jazyk (L od L vt), na konci vstupu může být posloupnost oddělovačů L od Teorie programovacích jazyků Přednáška 5: Lexikální analýza 22 / 32
23 Implementace lexikálního analyzátoru Příklad návrh jazyka pracujícího s celými čísly Nejdříve navrhneme abecedu jazyka: Σ = {A,, Z, a,, z, 0,, 9, +,,, /, >, <, =, (, ), ;, :} Stanovíme potřebné lexikální jednotky: celá nezáporná čísla (pro konstanty) vyhrazená klíčová slova (BEGIN, END, VAR, CONST, IF, THEN, ELSE, PRINT) ostatní nerezervované identifikátory (proměnné) aritmetické operátory (+,,, /) relační operátory (<, <=, >, >=, <>, =) operátor přiřazení (:=) pomocné symboly (závorky, středník) Teorie programovacích jazyků Přednáška 5: Lexikální analýza 23 / 32
24 Implementace lexikálního analyzátoru Příklad pokračování Popíšeme navržený jazyk pomocí regulárních gramatik dílčích jazyků: Gramatika jazyka identifikátorů: G id = ({S id, A}, {l, d}, P, S id ) S id l la A l d la da Gramatika jazyka celých nezáporných čísel: G cis = ({S cis, B}, {d}, P, S cis ) S cis d db B d db Teorie programovacích jazyků Přednáška 5: Lexikální analýza 24 / 32
25 Implementace lexikálního analyzátoru Příklad pokračování Gramatika jazyka aritmetických operátorů: G ao = ({S ao }, {+,,, /}, P, S ao ) S ao + / Gramatika jazyka relačních operátorů: G ro = ({S ro, C, D}, {<, >, =}, P, S ro ) S ro < > = <C >D C = > D = Gramatika jazyka operátoru přiřazení: G op = ({S op, E}, {:, =}, P, S op ) S op :E E = Teorie programovacích jazyků Přednáška 5: Lexikální analýza 25 / 32
26 Implementace lexikálního analyzátoru Příklad pokračování Gramatika jazyka pomocných symbolů: G sym = ({S sym }, {(, ), ; }, P, S sym ) S sym ( ) ; Sestavíme jazyk významových tokenů a gramatiku, která jej generuje: L vt = L id L cis L ao L ro L op L sym G vt = ({S vt, S id, S cis, S ao, S ro, S op, S sym, A, B, C, D, E}, Σ, P, S vt ) S vt S id S cis S ao S ro S op S sym Dále sestavíme jazyk nevýznamových tokenů L od popsaný gramatikou G od = ({S od }, {L, }, P, S od ): S od L Teorie programovacích jazyků Přednáška 5: Lexikální analýza 26 / 32
27 Implementace lexikálního analyzátoru Příklad pokračování V každém kroku lexikální analyzátor zpracuje jazyk L = L od L vt, který lze intuitivně popsat (bezkontextovou) gramatikou G = (N, Σ, P, S): S S od S S vt Pro účely implementace analyzátoru konečným automatem bezkontextovou gramatiku využít nemůžeme, proto použijeme ekvivalentní lineární gramatiku G = (N, Σ, P, S): S LS S S vt Pokud povolíme existenci prázdného jazyka, tj. pokud ϵ L, přidáme nový startovací symbol S a nová pravidla S ϵ S. Nakonec odstraníme jednoduchá pravidla a dostaneme výslednou regulární gramatiku. Teorie programovacích jazyků Přednáška 5: Lexikální analýza 27 / 32
28 Implementace lexikálního analyzátoru Příklad pokračování Výsledná regulární gramatika lexikálního analyzátoru: G = ({S, A, B, C, D, E}, {l, d, +,,, /, <, >, =, :, (, ), ;, L, }, P, S) S LS S S l la d db + / < > = S <C >D :E ( ) ; A l d la da B d db C = > D = E = Teorie programovacích jazyků Přednáška 5: Lexikální analýza 28 / 32
29 Implementace lexikálního analyzátoru Příklad pokračování Převedeme gramatiku na nedeterministický konečný automat M = ({q S, q A, q B, q C, q D, q E, q F }, Σ, δ, q S, {q F }) δ l d + / < > = : ( ) ; L q S {q A, q F } {q B, q F } {q F } {q F } {q F } {q F } {q C, q F } {q D, q F } {q F } {q E} {q F } {q F } {q F } {q S} {q S } q A {q A, q F } {q A, q F } q B {q B, q F } q C {q F } {q F } q D {q F } q E {q F } q F Teorie programovacích jazyků Přednáška 5: Lexikální analýza 29 / 32
30 Implementace lexikálního analyzátoru Příklad pokračování Převedeme konečný automat na deterministický, odstraníme nepotřebné stavy: M = ({q S, q E, q F, q A F, q B F, q C F, q D F }, Σ, δ, q S, {q F, q A F, q B F, q C F, q D F }) δ l d + / < > = : ( ) ; L q S q A F q B F q F q F q F q F q C F q D F q F q E q F q F q F q S q S q E q F q F q A F q A F q A F q B F q B F q C F q F q F q D F q F Teorie programovacích jazyků Přednáška 5: Lexikální analýza 30 / 32
31 Implementace lexikálního analyzátoru Příklad pokračování d q A F l q C F l L qs < > + / = ( q D F > = = q F ) ; d : = qe q B F d Teorie programovacích jazyků Přednáška 5: Lexikální analýza 31 / 32
32 Realizace analyzátoru v program. jazyce Ze všech stavů automatu vytvoříme výčtový typ, z koncových stavů vytvoříme množinu V každém stavu automatu načteme ze zdrojového programu jeden znak a podle toho se rozhodneme, kterou větví pokračovat V koncovém stavu provedeme test korektního ukončení načteného symbolu načteme následující znak Pokud automat nenalezne větev, po které by pokračoval, a je v koncovém stavu, právě načetl jeden symbol a po analýze dalšího znaku (viz předchozí bod) se přesouvá do počátečního stavu q S Pokud automat nenalezne větev, po které by mohl pokračovat, a není v koncovém stavu, načtený znak je chybný a je ohlášena lexikální chyba Teorie programovacích jazyků Přednáška 5: Lexikální analýza 32 / 32
Překladač a jeho struktura
Překladač a jeho struktura Překladače, přednáška č. 1 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 23. září 2008 Definice
VícePoslední aktualizace: 14. října 2011
Lexikální analýza Překladače, přednáška č. 2 Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz http://fpf.slu.cz/ vav10ui Poslední aktualizace: 14. října 2011 Symboly Co je to
VíceProgramovací jazyk Pascal
Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce
VíceVirtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.
Virtuální počítač Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor Virtuální počítač Překladač Překladač : Zdrojový jazyk Cílový jazyk Analytická část:
VícePROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LEXIKÁLNÍ ANALÝZA 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti LEXIKÁLNÍ ANALÝZA Kód ve vstupním jazyku Lexikální analyzátor
VíceÚvod. Programovací paradigmata
.. Úvod. Programovací paradigmata Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Cíl: programování efektivně a bezpečně Programovací techniky
VíceTÉMATICKÝ OKRUH TZD, DIS a TIS
TÉMATICKÝ OKRUH TZD, DIS a TIS Číslo otázky : 27. Otázka : Principy moderních překladačů, virtuální stroj. Obsah : 1.Překladač a jeho struktura 2.Druhy překladačů 3.Hlavní části překladače 3.1 Lexikální
VíceČtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
VíceUplatnění metod na zvolený jazyk
Uplatnění metod na zvolený jazyk Při výběru mezi metodami výše popsanými se řídíme především podle typu symbolů, které jazyk obsahuje. Výhodná bývá často kombinace těchto metod nejdřív použijeme metodu
VíceÚvod do programovacích jazyků (Java)
Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích
VíceÚvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie
Úvod z historie RNDr. Miroslav Benedikovič John Louis von Neumann r. 1946 nová koncepce počítače (společná paměť pro kód programu a zpracovávaná data) vytvořila podmínky pro vznik softvéru na přípravu
VíceObsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program
Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup
VíceProgramovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)
Programovací jazyk - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi) Odlišnosti implementace od normy - odchylky např.: nepovinná hlavička programu odlišná
VíceLexikální analýza. Rozhraní lexikálního analyzátoru. Miroslav Beneš Dušan Kolář. M. Beneš, D. Kolář: Lexikální analýza 1. Lexikální analýza 2
Lexikální analýza Miroslav Beneš Dušan Kolář Rozhraní lexikálního analyzátoru Lexikální analýza 2 M. Beneš, D. Kolář: Lexikální analýza 1 Úkoly Čtení zdrojového textu Sestavování symbolů Odstranění mezer
VíceLexikální analýza. Miroslav Beneš Dušan Kolář
Lexikální analýza Miroslav Beneš Dušan Kolář Rozhraní lexikálního analyzátoru Lexikální analýza 2 Úkoly Čtení zdrojového textu Sestavování symbolů Odstranění mezer a poznámek Normalizace symbolů (velká/malá
VíceVyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky
Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové
VíceKonstruktory překladačů
Konstruktory překladačů Miroslav Beneš Dušan Kolář Konstruktor Lex generátor lexikálních analyzátorů M. E. Lesk, 1975 - pro OS Unix flex - Vern Paxson, 1990 - GNU verze určeno pro generování výstupu v
VíceFormální jazyky a gramatiky Teorie programovacích jazyků
Formální jazyky a gramatiky Teorie programovacích jazyků doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Připomenutí základních pojmů ABECEDA jazyk je libovolná podmnožina
VíceZápadočeská univerzita v Plzni Dokumentace překladače PL/0 v PHP Předmět KIV/FJP
Západočeská univerzita v Plzni Dokumentace překladače PL/0 v PHP Předmět KIV/FJP Petr Sládek slady@slady.cz 27. ledna 2005 Zadání Cílem této semestrální práce je kontrola zdrojového kódu překladače jazyka
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků
VíceSémantika Tabulka symbolů Intermediální kód Typová kontrola, přetypování Statická a dynamická sémantika. Sémantická analýza.
Sémantická analýza Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 19. listopadu 2009 Definice (Sémantická analýza) Vstup: konstrukce symbolů vytvořená
VíceAutomaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů
BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 2/29 Hodnocení předmětu BI-AAG (2011/2012) J. Holub: 1. Základní pojmy p. 4/29 Automaty a gramatiky(bi-aag) 1. Základní pojmy Jan Holub Katedra teoretické
VíceO datových typech a jejich kontrole
.. O datových typech a jejich kontrole Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Typová kontrola Programovací techniky O datových typech
VíceProgram a životní cyklus programu
Program a životní cyklus programu Program algoritmus zapsaný formálně, srozumitelně pro počítač program se skládá z elementárních kroků Elementární kroky mohou být: instrukce operačního kódu počítače příkazy
VíceVÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
VíceAlgoritmizace a programování
Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu
VíceALGORITMIZACE A PROGRAMOVÁNÍ
Metodický list č. 1 Algoritmus a jeho implementace počítačovým programem Základním cílem tohoto tematického celku je vysvětlení pojmů algoritmus a programová implementace algoritmu. Dále je cílem seznámení
VíceVÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
VíceImplementace LL(1) překladů
Překladače, přednáška č. 6 Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 30. října 2007 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
VíceSyntaktická analýza. Implementace LL(1) překladů. Šárka Vavrečková. Ústav informatiky, FPF SU Opava
Implementace LL(1) překladů Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 6. ledna 2012 Postup Programujeme syntaktickou analýzu: 1 Navrhneme vhodnou LL(1) gramatiku
VíceMaturitní otázky z předmětu PROGRAMOVÁNÍ
Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti
VíceRegulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:
IB102 Automaty, gramatiky a složitost, 6. 10. 2014 1/29 Regulární výrazy Definice 2.58. Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto: 1 ε, a a pro každé a
Více1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
VíceVlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost
Programování Algoritmus návod na vykonání činnosti, který nás od (měnitelných) vstupních dat přivede v konečném čase k výsledku přesně definovaná konečná posloupnost činností vedoucích k výsledku (postup,
VíceKonečný automat. Jan Kybic.
Konečný automat Jan Kybic http://cmp.felk.cvut.cz/~kybic kybic@fel.cvut.cz 2016 2017 1 / 33 Konečný automat finite state machine Konečný automat = výpočetní model, primitivní počítač Řídící jednotka s
VíceStruktura programu v době běhu
Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů
Vícedovolují dělení velkých úloh na menší = dekompozice
Podprogramy dovolují dělení velkých úloh na menší = dekompozice Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
VícePROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNTAKTICKÁ ANALÝZA DOKONČENÍ, IMPLEMENTACE.
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE LL SYNAKICKÁ ANALÝZA DOKONČENÍ, IMPLEMENACE. VLASNOSI LL GRAMAIK A JAZYKŮ. 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Gramatika
Více6 Příkazy řízení toku
6 Příkazy řízení toku Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům pro řízení toku programu. Pro všechny tyto základní
Více1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:
1. lekce 1. Minimální program do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme: #include #include int main() { printf("hello world!\n"); return 0; 2.
Více1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5
Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VícePROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE STRUKTURA PŘEKLADAČE 2011 Jan Janoušek BI-PJP Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Základní informace Přednášky: doc. Ing. Jan Janoušek, Ph.D.
VíceAutomaty a gramatiky(bi-aag) Formální překlady. 5. Překladové konečné automaty. h(ε) = ε, h(xa) = h(x)h(a), x, x T, a T.
BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 2/41 Formální překlady BI-AAG (2011/2012) J. Holub: 5. Překladové konečné automaty p. 4/41 Automaty a gramatiky(bi-aag) 5. Překladové konečné
VíceGENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK)
GENEROVÁNÍ KÓDU 9. SHRNUTÍ - PŘÍKLAD POSTUPU PŘEKLADU VSTUPNÍHO PROGRAMU (ZA POUŽITÍ DOSUD ZNÁMÝCH TECHNIK) 2011 Jan Janoušek MI-GEN Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Úvod
VícePříkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky -
Příkazy preprocesoru - Před překladem kódu překladačem mu předpřipraví kód preprocesor - Preprocesor vypouští nadbytečné (prázdné) mezery a řádky - Preprocesor je možné ovládat pomocí příkazů - řádky začínající
VíceObsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15
Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové
VíceVýpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory
Plán přednášky Výpočetní modely pro rozpoznávání bezkontextových jazyků zásobníkové automaty LL(k) a LR(k) analyzátory Obecný algoritmus pro parsování bezkontextových jazyků dynamické programování 1 Zásobníkový
Více1. D Y N A M I C K É DAT O V É STRUKTUR Y
1. D Y N A M I C K É DAT O V É STRUKTUR Y Autor: Petr Mik Abychom se mohli pustit do dynamických datových struktur, musíme se nejdřív podívat na datový typ ukazatel. 1. D AT O V Ý TYP U K A Z AT E L Datové
VíceČtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání
Čtvrtek 3. listopadu Makra v Excelu Obecná definice makra: Podle definice je makro strukturovanou definicí jedné nebo několika akcí, které chceme, aby MS Excel vykonal jako odezvu na nějakou námi definovanou
VíceÚvod do programování
Úvod do programování Základní literatura Töpfer, P.: Algoritmy a programovací techniky, Prometheus, Praha učebnice algoritmů, nikoli jazyka pokrývá velkou část probíraných algoritmů Satrapa, P.: Pascal
VíceDynamické datové typy a struktury
.. a Programovací techniky doc. Ing. Jiří Rybička Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Programovací techniky a 2 / 18 Uchovávají adresu v paměti Programovací techniky a 2 / 18 Uchovávají
VíceProgramovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)
Programovací jazyky Programovací jazyky nižší assembler (jazyk symbolických instrukcí) vyšší imperativní (procedurální) Pascal, C/C++, Java, Basic, Python, php neimperativní (neprocedurální) Lisp, Prolog
VíceIdentifikátory označují objekty v programu používané (proměnné, typy, podprogramy).
JAZYK PASCAL ÚVOD materiály pro studenty Jiráskova gymnázia v Náchodě (verze 2005-10-28) RNDr Jan Preclík, PhD preclik@gymnachodcz Jazyk Pascal byl navržen profesorem curyšské univerzity Niklausem Wirthem
VíceZákladní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy
Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou
VíceImplementace překladače imperativního jazyka IFJ05
Dokumentace ke společnému projektu IFJ a IAL Implementace překladače imperativního jazyka IFJ05 16. prosince 2005 řešitelé David Bařina xbarin02 Kamil Dudka xdudka00 Jakub Filák xfilak01 Lukáš Hefka xhefka00
VíceMasarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace
Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace Číslo projektu Číslo materiálu Autor Průřezové téma Předmět CZ.1.07/1.5.00/34.0565 VY_32_INOVACE_284_Programovací_jazyky
VíceSemestrální práce z předmětu Teorie programovacích jazyků
Vysoké učení technické v Brně Fakulta informačních technologií Semestrální práce z předmětu Teorie programovacích jazyků Roman Lukáš 2003-2004 1 Jazykové procesory (Language Processors) 1.1 Překladače
VíceÚvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií
1 Fakulta elektrotechniky a informatiky Katedra softwarových technologií 12. října 2009 Organizace výuky Přednášky Teoretické základy dle normy jazyka C Cvičení Praktické úlohy odpřednášené látky Prostřední
VícePaměť počítače. alg2 1
Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových
VíceProgramy v prostředí operačního systému
.. Programy v prostředí operačního systému Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Standardní soubory Programovací techniky Programy v
VíceSoftware602 Form Designer
Software602 Form Designer Javascriptový vyhodnocovací mechanismus výrazů Aktualizováno: 17. 3. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID
VíceAlgoritmy I. Cvičení č. 2, 3 ALGI 2018/19
Algoritmy I Cvičení č. 2, 3 1 ALG I, informace Cvičící RNDr. Eliška Ochodková, Ph.D., kancelář EA439 eliska.ochodkova@vsb.cz www.cs.vsb.cz/ochodkova Přednášející doc. Mgr. Jiří Dvorský, Ph.D., kancelář
Více24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1
24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE
VíceSyntaxí řízený překlad
Syntaxí řízený překlad Překladový automat Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 27. listopadu 2008 Zobecněný překladový automat Překladový automat
VíceAlgoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.
Algoritmus Algoritmus je schematický postup pro řešení určitého druhu problémů, který je prováděn pomocí konečného množství přesně definovaných kroků. nebo Algoritmus lze definovat jako jednoznačně určenou
Vícedoplněk, zřetězení, Kleeneho operaci a reverzi. Ukážeme ještě další operace s jazyky, na které je
28 [181105-1236 ] 2.7 Další uzávěrové vlastnosti třídy regulárních jazyků Z předchozích přednášek víme, že třída regulárních jazyků je uzavřena na sjednocení, průnik, doplněk, zřetězení, Kleeneho operaci
VíceRegulární výrazy. Filtry grep, sed a awk.
Přednáška 5 Regulární výrazy. Filtry grep, sed a awk. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2011 Příprava studijního programu Informatika je podporována projektem
VíceObsah. Začínáme programovat v Ruby on Rails 9. Úvod 11. 1. Vítejte v Ruby 15. O autorovi 9 Poděkování 9
Začínáme programovat v Ruby on Rails 9 O autorovi 9 Poděkování 9 Úvod 11 Komu je kniha určena 11 Jak je kniha uspořádána 11 Co ke knize potřebujete 12 Konvence 12 Zdrojový kód 13 Poznámka redakce českého
VícePřednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.
Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu
VíceLexikální analýza (Obsah)
Lexikální analýza (Obsah) 1. Rekapitulace potřebných znalostí -Regulární jazyky, regulární výrazy -Pravé lineární gramatiky -Konečné automaty (tabulka přechodů, stavový diagram, stavový strom) -Převod
VíceČasová a prostorová složitost algoritmů
.. Časová a prostorová složitost algoritmů Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Hodnocení algoritmů Programovací techniky Časová a prostorová
VíceLogické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false
Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární
VíceVZORCE A VÝPOČTY. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen 2013. Ročník: sedmý
Autor: Mgr. Dana Kaprálová VZORCE A VÝPOČTY Datum (období) tvorby: září, říjen 2013 Ročník: sedmý Vzdělávací oblast: Informatika a výpočetní technika 1 Anotace: Žáci se seznámí se základní obsluhou tabulkového
VíceOSTRAVSKÁ UNIVERZITA V OSTRAVĚ
OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘEKLADAČE HASHIM HABIBALLA OSTRAVA 2005 Recenzenti: RNDr. PaedDr. Eva Volná, PhD. Mgr. Rostislav Fojtík Název: Překladače Autoři: Dr. Hashim Habiballa, PhD. Vydání: první,
VíceAlgoritmizace. 1. Úvod. Algoritmus
1. Úvod Algoritmizace V dnešní době již počítače pronikly snad do všech oblastí lidské činnosti, využívají se k řešení nejrůznějších úkolů. Postup, který je v počítači prováděn nějakým programem se nazývá
Více- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku
Znaky - standardní typ char var Z, W: char; - znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku - v TP (často i jinde) se používá kódová
VíceInterpret jazyka IFJ2011
Dokumentace projektu Interpret jazyka IFJ2011 Tým číslo 093, varianta b/3/i: 20 % bodů: Cupák Michal (xcupak04) vedoucí týmu 20 % bodů: Číž Miloslav (xcizmi00) 20 % bodů: Černá Tereza (xcerna01) 20 % bodů:
VíceProgramové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová
Programové konvence, dokumentace a ladění 2. přednáška Alena Buchalcevová Proč dodržovat programové konvence? velkou část životního cyklu softwaru tvoří údržba údržbu provádí většinou někdo jiný než autor
VíceÚvod do programování. Lekce 1
Úvod do programování Lekce 1 Základní pojmy vytvoření spustitelného kódu editor - psaní zdrojových souborů preprocesor - zpracování zdrojových souborů (vypuštění komentářů atd.) kompilátor (compiler) -
VíceNPRG030 Programování I, 2015/16 1 / :25:32
NPRG030 Programování I, 2015/16 1 / 21 22. 10. 2015 13:25:32 Podprogramy Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X
VíceVstupní požadavky, doporučení a metodické pokyny
Název modulu: Základy PHP Označení: C9 Stručná charakteristika modulu Modul je orientován na tvorbu dynamických stánek aktualizovaných podle kontextu volání. Jazyk PHP umožňuje velmi jednoduchým způsobem
Více2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.
Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus
VíceFAKULTA INFORMAČNÍCH TECHNOLOGIÍ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV INFORMAČNÍCH SYSTÉMŮ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF INFORMATION SYSTEMS OBECNÝ SYSTÉM
VíceData v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
VíceKonečný automat Teorie programovacích jazyků
Konečný automat Teorie programovacích jazyků oc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@menelu.cz Automaty v běžném životě Konečný automat Metoy konstrukce konečného automatu
VíceVISUAL BASIC. Přehled témat
VISUAL BASIC Přehled témat 1 ÚVOD DO PROGRAMOVÁNÍ Co je to program? Kuchařský předpis, scénář k filmu,... Program posloupnost instrukcí Běh programu: postupné plnění instrukcí zpracovávání vstupních dat
VíceJazyk C Program v jazyku C má následující strukturu: konstanty nebo proměnné musí Jednoduché datové typy: Strukturované datové typy Výrazy operátory
Jazyk C Program v jazyku C má následující strukturu: Direktivy procesoru Globální definice (platné a známé v celém programu) Funkce Hlavička funkce Tělo funkce je uzavřeno mezi složené závorky { Lokální
VíceVztah jazyků Chomskeho hierarchie a jazyků TS
Vztah jazyků Chomskeho hierarchie a jazyků TS Jan Konečný; (přednáší Lukáš Havrlant) 15. října 2013 Jan Konečný; (přednáší Lukáš Havrlant) Chomskeho hierarchie a jazyky TS 15. října 2013 1 / 23 Rychlé
VícePředměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013
Předměty Algoritmizace a programování Seminář z programování Verze pro akademický rok 2012/2013 Verze pro akademický rok 2012/2013 1 Přednášky Jiřina Královcová MTI, přízemí budovy A Tel: 48 53 53 521
Více2.1 Podmínka typu case Cykly Cyklus s podmínkou na začátku Cyklus s podmínkou na konci... 5
Obsah Obsah 1 Řídicí struktury 1 2 Podmínka 1 2.1 Podmínka typu case......................... 2 3 Příkaz skoku 3 4 Cykly 4 4.1 Cyklus s podmínkou na začátku................... 4 4.2 Cyklus s podmínkou
VíceAlgoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Algoritmus Daniela Szturcová Tento
Vícefor (i = 0, j = 5; i < 10; i++) { // tělo cyklu }
5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu
VícePreprocesor a koncepce (větších) programů. Úvod do programování 2 Tomáš Kühr
Preprocesor a koncepce (větších) programů Úvod do programování 2 Tomáš Kühr Práce s preprocesorem Preprocesor Zpracovává zdrojový kód ještě před překladačem Provádí pouze záměny textů (např. identifikátor
VíceNáznak ukázky syntaxe a sémantiky pro projekt. 1 Syntaktické prvky. Poslední aktualizace: 8.
Jednoduchý interpretační překladač Náznak ukázky syntaxe a sémantiky pro projekt Šárka Vavrečková Ústav informatiky, FPF SU Opava sarka.vavreckova@fpf.slu.cz Poslední aktualizace: 8. ledna 2008 1 Syntaktické
VíceProgramování v C++ 1, 1. cvičení
Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených
Více1. Definujte překladač. Jaký je rozdíl mezi interpretačním a kompilačním překladačem? Co je to konverzační překladač?
1. Definujte překladač. Jaký je rozdíl mezi interpretačním a kompilačním překladačem? Co je to konverzační překladač? 2. Charakterizujte lexikální analýzu(vstup, výstup, lexikální chyby). 3. Definujte
VíceProgramování v C++ Úplnej úvod. Peta (maj@arcig.cz, SPR AG 2008-9)
Programování v C++ Úplnej úvod Co se naučíte? tak samozřejmě C++, s důrazem na: dynamické datové struktury Objektově Orientované Programování STL (standardní knihovna šablon) vytváření vlastních šablon
Více10 Algoritmizace Příklad 2 Word 2007/ VBA
TÉMA: Zápis algoritmu, cyklus se známým počtem opakování Prostředí aplikace Wordu je možné doplnit v rámci využití maker o automatizaci složitějších posloupností příkazů. Vedle záznamu makra je možno makra
Více/01: Teoretická informatika(ti) přednáška 5
460-4005/01: Teoretická informatika(ti) přednáška 5 prof. RNDr Petr Jančar, CSc. katedra informatiky FEI VŠB-TUO www.cs.vsb.cz/jancar LS 2010/2011 Petr Jančar (FEI VŠB-TU) Teoretická informatika(ti) LS
Více