PB006 Principy programovacı ch jazyku pozna mky
|
|
- Alexandra Janečková
- před 8 lety
- Počet zobrazení:
Transkript
1 PB006 Principy programovacı ch jazyku pozna mky - Výpisky ze slidů pana Škarvady. V podstatě nic není navíc, spíš se jedná o zkrácení a přeformátování. Za bezchybnost neručím! 1 Úvod 1.1 Aspekty programovacího jazyka - Pragmatika o vztah k výpočtu o implementace kompilátoru, interpretu, o oblast nasazení - Syntax o struktura a forma programů v jazyce o popsána formální gramatikou ve třech úrovních (lexikální, bezkontextová, kontext omezení) - Sémantika o význam o vztah mezi programem a výpočetním modelem 2 Syntax - Popsána formální gramatikou G = (N, Σ, P, S), - V případě programovacích jazyků bývá bezkontextová, tj. o P (N (N Σ) + ) {(S, ε)}. Page 1 of 20
2 2.1 Konkrétní syntax - definuje vlastní jazyk - dostatečně mnoho terminálů Lexikální syntax (mikrosyntax) o k vymezení množiny lexikálních atomů (tvoří slovník ) o popsána regulární nebo jednoduchou bezkontextovou gramatikou o terminály znaky Frázová syntax (makrosyntax) o popisuje úplnou strukturu programu (tvoří množinu správně vytvořených vět) o popsána bezkontextovou gramatikou o terminály lexikální atomy Kontextová omezení (statická sémantika) o podmínky vymezující podmnožinu jazyka (pravidla vylučující syntakticky správné, ale nesmyslné věty) 2.2 Abstraktní syntax - popisuje strukturu - nezávislá na konkrétní reprezentaci - obsahuje hlavně neterminály 3 Typy 3.1 Pojetí typů - množiny hodnot - heterogenní algebry => množiny hodnot spolu s operacemi na nich - variety heterogenních algeber => množiny s operacemi a axiomy 3.2 Typy a typové konstruktory Kartézský součin (A B) - Množina všech uspořádaných dvojic (a, b) takových, že a A, b B. - Projekční funkce (selektory): o fst A B A o fst (x, y) = x o snd A B B o snd (x, y) = y Disjunktní sjednocení (A + B) - Sjednocení množiny všech dvojic (L, a) s množinou všech dvojic (R, b), kde a A, b B. L, R jsou příznaky původu prvku a, b. - Inserční funkce (konstruktory): o inl A A + B o inl x = (L, x) o inr B A + B o inr y = (R, y) Page 2 of 20
3 3.2.3 Pole - Zobrazení (konečného) ordinálního typu I do typu T. o Konečný typ je ordinální existuje bijekce ord I {1,, n}, kde n = I. - Zápis: Array I T Funkce - Zápis: A B - f(x, y) g x y Potenční množiny - Set A typ všech podmnožin A - A Bool typ všech predikátů nad A - Každé hodnotě a Set A odpovídá charakteristická funkce χ a A Bool taková, že pro každé x A platí x a χ a (x) = true Prázdný typ - disjunktní sjednocení nulového počtu typů - Void, - Neobsahuje žádnou hodnotu Jednotkový typ - kartézský součin nulového počtu prvků - Unit, - Má jedinou hodnotu uspořádanou nultici () Výčtové typy - Případ disjunktního sjednocení všechny inserce jsou typu Unit T Rekursivní (induktivní) typy - Je-li F(t) zápis typů obsahující typovou proměnnou t, pak μ t. F(t) je (množinově nejmenší typ vyhovující rovnici t = F(t). - T = μ t. F(t) ~ T = F(T) - např. konečné seznamy Korekursivní (koinduktivní) typy - Je-li F(t) zápis typů obsahující typovou proměnnou t, pak ν t. F(t) je (množinově největší typ vyhovující rovnici t = F(t). - T = ν t. F(t) ~ T = F(T) - např. nekonečné seznamy 3.3 Monomorfismus a polymorfismus Monomorfní typu - a) základní typy - nebo - b) Pomocí typových konstruktorů složené z monomorfních typů Polymorfní typy - Zastupují celou množinu monomorfních typů. Page 3 of 20
4 Parametrický polymorfismus - V typových výrazech se vyskytují typové proměnné, za něž lze dosadit libovolný typ. - př. b. Array (0..9)b Podtypový (inklusivní) polymorfismus - Na množině typů je zavedeno uspořádání : a každá hodnota má kromě svého nejmenšího typu i všechny jeho nadtypy. - A : B A je podtypem B - Pravidlo subsumpce o Nechť A : B, a je typu A, potom také a je typu B. o Zápis: a A A : B a B - Kovariace o Typový konstruktor S je kovariantní, když A : A S A : S A o Příklad typový konstruktor Set. σ : σ Set σ : Set σ Přirozené číslo je celým číslem, tedy i množina přirozených čísel je množinou celých čísel. - Kontravariace o Typový konstruktor T je kontravariantní, když A : A T A : T A o Příklad typový konstruktor Predicate. Predicate α = α Bool. σ : σ Predicate σ : Predicate σ Přirozené číslo je celým číslem, tedy predikát nad celými čísly je predikátem nad přirozenými čísly. - Kovariace a kontravariace u typových konstruktorů větší arity o se zavádí zvlášť pro každý parametr. o n-ární typový konstruktor S je ve svém i-tém typovém parametru (1 i n) kovariantní, když A i : A o o S A 1 A n : S A 1 A i 1 A A i+1 A n n-ární typový konstruktor T je ve svém i-tém A 1 A i 1 typovém parametru (1 i n) kontravariantní, když A : A T A 1 A i 1 A A i+1 A n : T A 1 A n Příklad Typový konstruktor je v prvním parametru kontravariantní a ve druhém parametru kovariantní. 3.4 Přetížení - Symbol je přetížený, označuje-li více hodnot různých typů. Page 4 of 20
5 - Kontextově nezávislé o Funkce lze vyřešit jen z typu argumentů. - Kontextově závislé o Typy argumentů nestačí, bere se širší kontext. - Symbol g je přetížen dvěma různými typy σ 1 τ 1, σ 2 τ 2. o Kontextově nezávislé musí být σ 1 σ 2. o Kontextově závislé musí být τ 1 τ Koerce - implicitní zobrazení hodnot jednoho typu do hodnot jiného typu 3.6 Druhy - Druhy slouží ke klasifikaci typů, typových konstruktorů, typových funkcí apod. - Symbol značí druh všech typů. 3.7 Hodnotově závislé typy - Typové konstruktory parametrizovány typy + hodnotami. - Příklad vektor o Typ Vec n všech n-složkových vektorů reálných čísel. o Vec Nat - Používáno hlavně akademickými jazyky: o Agda, Cauenne, 4 Sémantika - Přiřazuje významy programům nebo jejím částem. 4.1 Formální sémantika Operační sémantika - Množinou pravidel popisujících výpočet abstraktního počítače výsledek výpočtu je významem programu. - Rozlišujeme: o strukturní (sos) o přirozená (bos) Axiomatická sémantika - Množina tvrzení (tzv. teorie) o nějakém systému, v nemž probíhá výpočet. - Zejména u imperativních jazyků tvrzení se vyjadřují o stavech Denotační sémantika - Definována na programech a komponentách explicitně množina funkcí přiřazujících částem programů význam. - Přiřazení prvků sémantických domén programovým konstrukcím. Page 5 of 20
6 - Příklad: o P množina konstrukcí o MVar množina (přepisovatelných) proměnných o V množina hodnot o S = MVar V množina stavů o _ _ P S S stavový transformátor o M _ _ P S V významová funkce o o x + + σ = σ, kde M x + + σ = σ(x) σ (x) = σ(x) + 1 y, y x. σ (y) = σ(y) Nedeterministická sémantika o Deterministická sémantika - Významem výrazu e je jeho hodnota (prvek sémantické domény). - V imperativních jazycích závisí sémantika výrazu na stavu σ S, takže M e S Val - Význam výrazu e ve stavu σ je hodnota M e σ Val. - V jazycích bez vedlejších efektů, ale s proměnnými závisí sémantika výrazů na tzv. hodnotovém kontextu ε Env. Potom M e Env Val - Význam výrazu e ve stavu ε je hodnota M e ε Val. - Příklad: o M 0 σ = 0 o M 1 σ = 1 o o M e 1 + e 2 σ = M e 1 σ + M e 2 σ o M e 1 e 2 σ = M e 1 σ M e 2 σ M e 2 σ, pokud M e 1 σ = tt o M if e 1 then e 2 else e 3 σ = M e 3 σ, pokud M e 1 σ = ff, jinak 4.2 Výrazy - Literály označují hodnoty - Jména konstanty, parametry fcí, proměnné - Výrazy popisující hodnoty složených typů - Podmíněné výrazy -- if then else, case of - Aplikace funkce na argumenty (volání funkce) - Abstrakce ( uzávěry ) - Příkazy Page 6 of 20
7 4.3 Funkcionální a procedurální abstrakce - Funkcionální abstrakce se provádí nad výrazem některé jeho (volné) proměnné se prohlásí za parametry výsledné funkce. - Počet těchto parametrů určuje tzv. aritu. - Procedurální abstrakce se provádí podobně nad příkazem. - Příklad: o float sqr (float x) { return x x; } 4.4 Proměnné Funkcionální, logické - Čisté proměnné (v matematickém smyslu), - označují hodnotu, - slouží i k označení parametrů fcí Imperativní - Přepisovatelné proměnné, - označují paměťové místo. - Paměťové místo je úložiště hodnoty. - Ve většině jazyku se však jménem proměnné označuje i daná hodnota ( automatické dereferencování). 4.5 Příkazy - Významem příkazu je stavový transformátor s S S. - MVar množina program. proměnných reprezentujících paměťová místa - Val množina hodnot, která mohou být do těchto míst uloženy - σ MVar Val stav - S množina všech stavů - Je-li p příkaz, pak se jeho stavový transformátor značí p S S Příkazy obsahující výrazy BEZ VEDLEJŠÍCH EFEKTŮ Page 7 of 20
8 Page 8 of 20
9 4.5.2 Příkazy obsahující výrazy S VEDLEJŠÍMI EFEKTY - Připustíme, aby příkazy (výrazy typu Command) byly podvýrazy výrazů jiného typu. - Pak jsou všechny výrazy stavovými transformátory e S S, ale kromě toho vracejí hodnotu M e S Val. - Například v C ve stavu σ, σ(x) = 5, je o x + + σ = σ, σ (x) = 6, σ (y) = σ(y) pro y x o M x + + σ = 5 Page 9 of 20
10 4.6 Řadící příkazy - Skoky o Explicitní přenesení řízení výopčtu do jiné části programu. - Úniky o Ukončují provádění složeného příkazu, který unikový příkaz obsahuje. - Vyjímky 4.7 Volání funkce a předávání parametrů - Aplikace funkce na argumenty = tzv. volání funkce Volání hodnotou Volání jménem - Implementuje se pomocí nulárních (bezparametrických) funkcí pro každý skutečný parametr předávaný jménem -- tzv. thunks. Page 10 of 20
11 4.7.3 Volání dle potřeby líná aplikace - Varianta volání jménem, argumenty se ale vyhodnocují nejvýše jednou. - U referenčně transparentních jazyků jazyky bez vedlejších efektů. - Počet vyhodnocování argumentů: o volání hodnotou 1 o volání jménem 0 n o volání dle potřeby Volání odkazem - Skutečné parametry smějí být jen (adresovatelná) paměťová místa (Ref T). - Neprovádí se jejich implicitní dereferencování. Page 11 of 20
12 4.7.5 Volání výsledkem - Skutečné parametry jsou typu Ref a, tj. adresovatelná paměťová místa Volání hodnotou-výsledkem - Skutečné parametry jsou typu Ref a, tj. adresovatelná paměťová místa Smíšené volání hodnotou, výsledkem, hodnotou-výsledkem - Víceparametrická funkce své parametry vyhodnocuje různými způsoby, podle předpisu v hlavičce funkce Shrnutí typů volání (není ze slidů, nezaručuji 100% správnost) - Volání jménem: o Argument není vyhodnocen před voláním funkce. o Je substituován přímo do funkce, tzn. je pokaždé vyhodnocován pouze v místech, kde se ve funkci objevuje. Page 12 of 20
13 o Použití v C: Pomocí ukazatele na unární funkci (viz příklad výše). - Volání hodnotou: o Argument je vyhodnocen a výsledná hodnota je zkopírována do odpovídající proměnné ve funkci. o Změny proměnné ve funkci se mimo ní neprojeví. o Použití v C: defaultní volání - Volání odkazem: o Změny obsahu přepisovatelné proměnné určené formálním parametrem, mění současně obsah proměnné, která je skutečným argumentem při volání. o Změny proměnné ve funkci se okamžitě projevují i mimo ní. o Použití v C: Předání odkazem na proměnnou. (Popřípadě v C++ předáním referencí.) - Volání hodnotou-výsledkem: o Změny obsahu přepisovatelné proměnné určené formálním parametrem, se dějí pouze lokálně a obsah skutečného argumentu se změní až v okamžiku návratu. o Změny proměnné ve funkci se mimo funkci projeví až po návratu. - Volání výsledkem: o Argument je neinicializovaný, resp. může být inicializovaný, ale jeho hodnota není v těle funkce brána v potaz (například tím, že hodnota formální proměnné je inicializována v těle funkce na určitou hodnotu, která není závislá na hodnotě skutečné proměnné). o Není důležitá hodnota proměnné při volání funkce + hodnota se do proměnné zapíše až po návratu z funkce. - Pozor na rozdíl mezi voláním odkazem a voláním hodnotou-výsledkem může mít vliv na výsledný stav. 5 Viditelnost 5.1 Viditelnost jazykových entit - Statická o Pro každou definici jazykové entity (konstanty, proměnné, ) je statickou sémantikou určena oblast platnosti definice. - Dynamická o Viditelnost jazykových entit závisí na momentálně aktivních programových jednotkách (blocích, funkcích, ) v době běhu. o Téměř nepoužívaná (Lisp, Snobol). 5.2 Třídy a objekty - Objekt o Modul s privátními proměnnými (atributy) a veřejnými operacemi (metodami). - Třída o ( generický objekt ) popisuje typ objektu. o Vlastní objekty se nazývají instance třídy. Page 13 of 20
14 5.2.1 Dědičnost - Třída A je podtřídou třídy B (značíme A B), když dědí metody třídy B a případně přidává další. - Jednoduchá každá třída má nejvýše jednu bezprostřední nadtřídu. - Násobná (jinak). 5.3 Vlastnosti OO jazyků - Třídy a objekty (statické nebo dynamické). - Dědičnost a inkluzní polymorfismus o typový systém s podtypy a A, A : A a A - Viditelnost omezená na objekty o Řízená pomocí public/protecte/private. - V (dynamických) objektech mohou být atributy i metody o statické definované ve třídách o dynamické definované v objektech - Jazyky: o Simula 67 Považován za nejstarší jazyk, v němž se objevily některé principy OO programování. o Smalltalk První čistě objektový OO jazyk; netypovaný. o Eiffel Čistě objektový, typovaný. o C++ Není čistě objektové. o Java Není čistě objektová (má i primitivní typy). o Python, Ruby Interpretovaný bytový kód. o Ada Staticky typovaná, na zakázku MO USA v 70. letech. o OCaML Objektová verze funkcionálního ML. 6 Správa paměti 6.1 Paměťové třídy dat Persistentní data - Existují nezávisle na výpočtu. - Obvykle na vnějších paměťových médiích (soubory, databáze) Transientní data - Existují pouze po dobu výpočtu. - Obvykle v procesem adresovatelné části operační paměti (hodnoty proměnných, ), ale i vně (dočasné soubory, ). Page 14 of 20
15 - Statická - Automatická (zásobníková) - Dynamická (haldová) 6.2 Správa paměti Statická - Prováděná překladačem. - [Instrukce programu, systémová data, statická data, vyrovnávací paměti, ] Zásobníková - V době výpočtu při zajájení/ukončení aktivace procedury, bloku, - [lokální data v blocích, parametry funkcí a procedur, pomocné datové struktury ve funkcích, návratové adresy, ] Dynamická - V době výpočtu, prováděna speciálními procedurami pro alokaci, dealokaci, přesouvání, scelování, - 1. řízena explicitně programem [malloc, free, ] - 2. spouštěná výhradně run-time podporou výpočtu [garbage collectiong, setřásání] 6.3 Fáze správy paměti - alokace - dealokace - obnovení volné paměti - scelování (změna polohy obsazených a volných bloků) 6.4 Správa dynamické paměti - Inicializace vytvoření seznamu volných bloků - Alokace bloku (požadované velikosti) - Uvolnění bloku může způsobit vznik slepého odkazu nebo smetí - Úklid smetí (garbage collection) o bloky mají příznak dostupnosti (1 bit) o nastaví se na nedostupné o postupuje se od známých ukazatelů a všechny navštívené bloky se označí dostupné o nedostupné bloku se dají do seznamu volných - Scelování (spojování sousedních volných bloků) - Setřásání (úplné scelování) způsobí změny ukazatelů Page 15 of 20
16 7 Paradigmata - Deklarativní paradigma o Program popisuje, co je výsledkem. o Funkcionální program je výraz a výpočet je jeho úprava. o Logické program je teorie a výpočet je odvozen z ní. - Imperativní paradigma o Program popisuje, jak se dospěje k výsledku. o Procedurální výpočet je provádění procedur nad daty. o Objektové výpočet je předávání zpráv mezi objekty. 7.1 Logické paradigma - Vztahy mezi hodnotami pomocí tzv. Hornových klausulí. - Program se skládá ze seznamu klausulí (teorie) a z formule (cíle, dotazu). - Abstraktní syntax: o Program ::== Klausule* Formule o Klausule ::== Formule :- Formule* o Formule ::== Pred (Term*) o Term ::== Var Fun (Term*) - Kontextová omezení (Statická sémantika) o Predikátové a funkční symboly mají konsistentní arity. o Levá strana (tj. závěr) implikace se nazývá hlava klausule. o Předpoklady implikace se nazývají podcíle. o Klausule s nulovým počtem podcílů je tzv. fakt. o o Proměnné v klausuli, které jsou na levé straně univerzálně kvantifikovány. Ostatní proměnné, které jsou jen na pravé straně existenčně kvantifikovány Termy - Zero nulární funkční symbol (konstanta). - Succ unární funkční symbol. - Uzavřené termy: o Zero o Succ(Zero) o Succ(Succ(Zero)) o - Termy s proměnými o Succ(x) o Succ(Succ(Succ(y))) o Klauzule - LessThan Zero, Succ(y). - LessThan Succ(x), Succ(y) LessThan(x, y). Page 16 of 20
17 7.1.3 Dotaz - LessThan(x, Succ(Succ(Zero))). 7.2 Sémantika logického programu Substituce - Subst je množina všech substitucí, tj. konečných zobrazení o σ Var f GTerm, - kde GTerm = {τ Term τ neobsahuje proměnné} je množina všech tzv. uzavřených termů. - Substituci σ lze rozšířit na termy rozšířená substituce σ Term GTerm Logické jazyky - Prolog o 70. léta o netypovaný jazyk o plochá struktura a viditelnost: všechny predikáty jsou globální všechny proměnné jsou lokální (v klauzuli) o není čistě logický - Gödel o 90. léta o typovaný jazyk o modulární struktura o parametrický polymorfismus - Mercury o polovina 90. let o multiparadigmatický jazyk (logický + funkcionální) Aplikace logického programování - zpracování přirozeného jazyka - simulace - symbolická manipulace s výrazy, řešení rovnic - Výhody o vyšší úroveň o logika programu oddělena od řízení výpočtu - Nevýhody o efektivita o nevýhodné pro aplikace s intenzivním I/O 7.3 Funkcionální paradigma - Nerozlišuje stavy, výpočet je jednostavový. o Nemá přepisovatelné proměnné. - parametrický polymorfismus, typové a konstruktorové třídy - uživatelské typy - líné vyhodnocování, nekonečné datové struktury Page 17 of 20
18 7.3.1 Sémantika - Hodnotový kontext (prostředí) o ε Var Val - Env množina všech hodnotových kontextů - Sémantická funkce o M Term Env Val - Val sémantická doména CPO - CPO je uspořádaná množina, v níž má každý nejvýše spočetný řetězec supremum. - Každá spojitá funkce je monotónní. (Obrácená věta neplatí.) - Každá monotónní funkce na konečné doméně je spojitá Sémantické domény - Primitivní, tzv. ploché: o Unit, Bool, Nat, Integer, Char Sémantika konstant - nezávisí na hodnotovém kontextu ε. Page 18 of 20
19 7.3.5 Sémantika výrazů Funkcionální jazyky - LISP o konec 50. let o jednoduchá syntax, stejná pro data i algoritmy o není čistě funkcionální o netypovaný o dynamická viditelnost o dialekty: AutoLisp, elisp, - Scheme o konec 50. let o netypovaný jazyk o statická viditelnost o striktní vyhodnocování o streamy - ML o konec 70. let o typovaný jazyk o striktní vyhodnocování o dialekty: CaML, OCaML - Erlang o dynamicky typovaný jazyk o striktní vyhodnocování o konstrukce pro podporu paralelního vyhodnocování Page 19 of 20
20 - Hope, Clean, Orwell, Miranda o konec 80. let o vesměs líně vyhodnocované o používané ve výuce - Opal o 90. léta o čistě funkcionální o modulární o striktně vyhodnocovaný - Haskell o čistě funkcionální o modulární o líně vyhodnocovaný o čisté začlenění imperativních konstrukcí do referenčně transparentního jazyka pomocí monadických typů a operací - Cayenne, Agda, Epigram o experimentální jazyky o velmi silný (tedy nerozhodnutelný) typový systém Page 20 of 20
Principy programovacích jazyků PB006 PB006 1
Principy programovacích jazyků PB006 PB006 1 PB006 2 ØØÔ»»ÛÛÛº ºÑÙÒ ºÞ» Ð ÓÖ»ÚÝÙ»È ¼¼» Náplň kursu Přehled programovacích paradigmat, vlastností programovacích jazyků a zkoumání teoretické podstaty jevů,
VíceFunkcionální programování. Kristýna Kaslová
Funkcionální programování Kristýna Kaslová Historie Alonzo Church (30. léta) Netypovaný lambda kalkul Základ prvních funkcionálních jazyků Jeho konstrukce i v mnoha současných programovacích jazycích (Python)
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í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í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ícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
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ícePB161 Programování v jazyce C++ Přednáška 7
PB161 Programování v jazyce C++ Přednáška 7 Statické položky tříd Základy OOP Nikola Beneš 6. listopadu 2018 PB161 přednáška 7: static, základy OOP 6. listopadu 2018 1 / 21 Klíčové slovo static Znáte z
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íceVýroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2017/2018 1 / 16 2-SAT 2-SAT Výrok je v k-cnf, je-li v CNF a
VíceLogika a logické programování
Logika a logické programování témata ke zkoušce Poslední aktualizace: 16. prosince 2009 Zkouška je písemná, skládá se obvykle ze sedmi otázek (může být více nebo méně, podle náročnosti otázek), z toho
VíceFunkcionální programování
Funkcionální programování Typované - Haskell Netypované - Lisp, Scheme λ-kalkul Teoretický základ funkcionálniho programování Lambda kalkul analyzuje funkce nikoli z hlediska původního matematického smyslu
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í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íceIB015 Neimperativní programování. Časová složitost, Typové třídy, Moduly. Jiří Barnat Libor Škarvada
IB015 Neimperativní programování Časová složitost, Typové třídy, Moduly Jiří Barnat Libor Škarvada Sekce IB015 Neimperativní programování 07 str. 2/37 Časová složitost Časová složitost algoritmu IB015
VíceVýroková a predikátová logika - VI
Výroková a predikátová logika - VI Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - VI ZS 2017/2018 1 / 24 Predikátová logika Úvod Predikátová logika Zabývá
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íceTabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář
Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění
VíceOkruh č.3: Sémantický výklad predikátové logiky
Okruh č.3: Sémantický výklad predikátové logiky Predikátová logika 1.řádu formalizuje úsudky o vlastnostech předmětů a vztazích mezi předměty pevně dané předmětné oblasti (univerza). Nebudeme se zabývat
VíceTeoretické minimum z PJV
Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov
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íce4.2 Syntaxe predikátové logiky
36 [070507-1501 ] 4.2 Syntaxe predikátové logiky V tomto oddíle zavedeme syntaxi predikátové logiky, tj. uvedeme pravidla, podle nichž se tvoří syntakticky správné formule predikátové logiky. Význam a
VíceSdílení dat mezi podprogramy
Sdílení dat mezi podprogramy Datové objekty mohou být mezi podprogramy sdíleny pomocí ne-lokálních referenčních prostředí, která jsou vytvářena na základě æ explicitních modifikací (formální parametry
Více0. ÚVOD - matematické symboly, značení,
0. ÚVOD - matematické symboly, značení, číselné množiny Výroky Výrok je každé sdělení, u kterého lze jednoznačně rozhodnout, zda je či není pravdivé. Každému výroku lze proto přiřadit jedinou pravdivostní
VícePredikátová logika. prvního řádu
Predikátová logika prvního řádu 2 Predikát Predikát je n-ární relace - vyjadřuje vlastnosti objektů a vztahy mezi objekty - z jednoduchého výroku vznikne vypuštěním alespoň jednoho jména objektu (individua)
VíceVýroková a predikátová logika - III
Výroková a predikátová logika - III Petr Gregor KTIML MFF UK ZS 2014/2015 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - III ZS 2014/2015 1 / 21 Výroková logika Horn-SAT Horn-SAT Jednotková
VíceLogické programy Deklarativní interpretace
Logické programy Deklarativní interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 7 1 Algebry. (Interpretace termů) Algebra J pro jazyk termů L obsahuje Neprázdnou
VíceIB111 Úvod do programování skrze Python Přednáška 13
IB111 Úvod do programování skrze Python Přednáška 13 Programovací jazyky Nikola Beneš 14. prosinec 2016 IB111 přednáška 13: programovací jazyky 14. prosinec 2016 1 / 21 Osnova dnešní přednášky Programovací
VíceZákladní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě
Metody přidělování paměti Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Důležitá hlediska jazykových konstrukcí: Dynamické typy Dynamické
VíceMatematika v programovacích
Matematika v programovacích jazycích Pavla Kabelíková am.vsb.cz/kabelikova pavla.kabelikova@vsb.cz Úvodní diskuze Otázky: Jaké programovací jazyky znáte? S jakými programovacími jazyky jste již pracovali?
Více1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata
1 Základních pojmy z oblasti programování, vyšší programovací jazyky, programovací paradigmata Studijní cíl Tento první blok celého kurzu zaměřen na zvládnutí základních pojmů z oblasti programování a
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íceMATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ
MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE
Více8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod 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 třídám a objektům, instančním
VíceProlog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David
Úvod do Prologu Prolog PROgramming in LOGic část predikátové logiky prvního řádu rozvoj začíná po roce 1970 Robert Kowalski teoretické základy Alain Colmerauer, David Warren (Warren Abstract Machine) implementace
VíceVýroková a predikátová logika - VII
Výroková a predikátová logika - VII Petr Gregor KTIML MFF UK ZS 2018/2019 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - VII ZS 2018/2019 1 / 15 Platnost (pravdivost) Platnost ve struktuře
VíceZákladní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě
Metody přidělování paměti Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Důležitá hlediska jazykových konstrukcí: Dynamické typy Dynamické
VíceÚvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz
Úvod do TI - logika Predikátová logika 1.řádu (4.přednáška) Marie Duží marie.duzi@vsb.cz Jednoduché úsudky, kde VL nestačí Všechny opice mají rády banány Judy je opice Judy má ráda banány Z hlediska VL
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íceplatné nejsou Sokrates je smrtelný. (r) 1/??
Predikátová logika plně přejímá výsledky výrokové logiky zabývá se navíc strukturou jednotlivých jednoduchých výroků na základě této analýzy lze odvodit platnost některých výroků, které ve výrokové logice
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í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íceVýroková a predikátová logika - VII
Výroková a predikátová logika - VII Petr Gregor KTIML MFF UK ZS 2013/2014 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - VII ZS 2013/2014 1 / 21 Sémantika PL Teorie Vlastnosti teorií Teorie
VíceIB015 Neimperativní programování. Organizace a motivace kurzu, programovací jazyk Haskell. Jiří Barnat
IB015 Neimperativní programování Organizace a motivace kurzu, programovací jazyk Haskell Jiří Barnat Sekce IB015 Neimperativní programování 01 str. 2/36 Organizace kurzu Cíle kurzu IB015 Neimperativní
VíceMatematická logika. Miroslav Kolařík
Matematická logika přednáška šestá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. a dle učebního textu R. Bělohlávka a V. Vychodila: Diskrétní matematika
VíceNegativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1
Negativní informace Petr Štěpánek S použitím materiálu M.Gelfonda a V. Lifschitze 2009 Logické programování 15 1 Negace jako neúspěch Motivace: Tvrzení p (atomická formule) neplatí, jestliže nelze odvodit
VíceIB111 Programování a algoritmizace. Programovací jazyky
IB111 Programování a algoritmizace Programovací jazyky Programovací jazyky Programovací jazyk Prostředek pro zápis algoritmů, jež mohou být provedeny na počítači Program Zápis algoritmu v programovacím
VíceLogické programování
30. října 2012 Osnova Principy logického programování 1 Principy logického programování 2 3 1 Principy logického programování 2 3 Paradigmata programování Strukturované programování Procedurální programování
VíceVýroková a predikátová logika - V
Výroková a predikátová logika - V Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - V ZS 2015/2016 1 / 21 Dokazovací systémy VL Hilbertovský kalkul Hilbertovský
VíceTÉMATICKÝ OKRUH Softwarové inženýrství
TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 28. Otázka : Vyšší programovací jazyky a jejich moderní rysy (správa paměti, implementace objektově orientovaných prvků, výjimky) Obsah : 1. Rozdělení
Více14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.
Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání
VíceUnární je také spojka negace. pro je operace binární - příkladem může být funkce se signaturou. Binární je velká většina logických spojek
Otázka 06 - Y01MLO Zadání Predikátová logika, formule predikátové logiky, sentence, interpretace jazyka predikátové logiky, splnitelné sentence, tautologie, kontradikce, tautologicky ekvivalentní formule.
VícePB161 Programování v jazyce C++ Přednáška 4
PB161 Programování v jazyce C++ Přednáška 4 Přetěžování funkcí Konstruktory a destruktory Nikola Beneš 9. října 2017 PB161 přednáška 4: přetěžování funkcí, konstruktory, destruktory 9. října 2017 1 / 20
VíceIB015 Neimperativní programování. Seznamy, Typy a Rekurze. Jiří Barnat Libor Škarvada
IB015 Neimperativní programování Seznamy, Typy a Rekurze Jiří Barnat Libor Škarvada Sekce IB015 Neimperativní programování 02 str. 2/36 Uspořádané n-tice a seznamy Programování a data IB015 Neimperativní
VíceModely Herbrandovské interpretace
Modely Herbrandovské interpretace Petr Štěpánek S využitím materialu Krysztofa R. Apta 2006 Logické programování 8 1 Uvedli jsme termové interpretace a termové modely pro logické programy a také nejmenší
Vícetype Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;
Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá
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íceMatematická analýza 1
Matematická analýza 1 ZS 2019-20 Miroslav Zelený 1. Logika, množiny a základní číselné obory 2. Limita posloupnosti 3. Limita a spojitost funkce 4. Elementární funkce 5. Derivace 6. Taylorův polynom Návod
VíceDTP Základy programování Úvod do předmětu
DTP Základy programování 01 - Úvod do předmětu Úvod Co již umíte? Plán předmětu Studijní materiály Způsob ukončení předmětu Základní pojmy I. Řešený problém: Řešeným nebo zpracovávaným problémem je konkrétní
VíceVýroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2017/2018 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2017/2018 1 / 17 Předběžnosti Základní pojmy n-ární relace a funkce
Víceteorie logických spojek chápaných jako pravdivostní funkce
Výroková logika teorie logických spojek chápaných jako pravdivostní funkce zabývá se způsoby tvoření výroků pomocí spojek a vztahy mezi pravdivostí různých výroků používá specifický jazyk složený z výrokových
VíceMatematická logika. Miroslav Kolařík
Matematická logika přednáška desátá Miroslav Kolařík Zpracováno dle textu R. Bělohlávka: Matematická logika poznámky k přednáškám, 2004. Obsah 1 Úvod do modální logiky 2 Logické programování a Prolog 3
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í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íceDatabázové systémy. * relační kalkuly. Tomáš Skopal. - relační model
Databázové systémy Tomáš Skopal - relační model * relační kalkuly Osnova přednášky relační kalkuly doménový n-ticový Relační kalkuly využití aparátu predikátové logiky 1. řádu pro dotazování rozšíření
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íceEvropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti MI-SOC: 11 METODY VERIFIKACE SYSTÉMŮ NA ČIPU Hana Kubátov vá doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta 1 informačních
VícePredikátová logika. Teoretická informatika Tomáš Foltýnek
Predikátová logika Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz strana 2 Opakování z minulé přednášky Z čeho se skládá jazyk výrokové logiky? Jaká jsou schémata pro axiomy VL? Formulujte
Více11. Přehled prog. jazyků
Jiří Vokřínek, 2016 B6B36ZAL - Přednáška 11 1 Základy algoritmizace 11. Přehled prog. jazyků doc. Ing. Jiří Vokřínek, Ph.D. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze
VíceTeoretická informatika Tomáš Foltýnek Teorie čísel Nekonečno
Tomáš Foltýnek foltynek@pef.mendelu.cz Teorie čísel Nekonečno strana 2 Opakování z minulé přednášky Jak je definována podmnožina, průnik, sjednocení, rozdíl? Jak je definována uspořádaná dvojice a kartézský
Více10. Techniky formální verifikace a validace
Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt EVROPSKÝ SOCIÁLNÍ FOND PRAHA & EU: INVESTUJENE DO VAŠÍ BUDOUCNOSTI 10. Techniky formální verifikace a validace 1 Simulace není
Vícetypová konverze typová inference
Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie
VíceUkazka knihy z internetoveho knihkupectvi www.kosmas.cz
Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena
VícePODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2
PI JE JEDNODUCHÝ IMPERATIVNÍ PROGRAMOVACÍ JAZYK OBSAHUJE PODPORU ANOTACÍ NEOBSAHUJE NĚKTERÉ TYPICKÉ KONSTRUKTY PROGRAMOVACÍCH JAZYKŮ JAKO JSOU REFERENCE, UKAZATELE, GLOBÁLNÍ PROMĚNNÉ PODOBÁ SE JAZYKU C
VícePředmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20
Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................
VíceTeorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.
Teorie množin V matematice je všechno množina I čísla jsou definována pomocí množin Informatika stojí na matematice Znalosti Teorie množin využijeme v databázových systémech v informačních systémech při
VíceVíce o konstruktorech a destruktorech
Více o konstruktorech a destruktorech Více o konstruktorech a o přiřazení... inicializovat objekt lze i pomocí jiného objektu lze provést přiřazení mezi objekty v původním C nebylo možné provést přiřazení
VíceMatematická logika. Rostislav Horčík. horcik
Matematická logika Rostislav Horčík horcik@math.feld.cvut.cz horcik@cs.cas.cz www.cs.cas.cz/ horcik Rostislav Horčík (ČVUT FEL) Y01MLO Letní semestr 2007/2008 1 / 20 Predikátová logika Motivace Výroková
VíceIB111 Programování a algoritmizace. Objektově orientované programování (OOP)
IB111 Programování a algoritmizace Objektově orientované programování (OOP) OP a OOP Objekt Kombinuje data a funkce a poskytuje určité rozhraní. OP = objektové programování Vše musí být objekty Např. Smalltalk,
VíceMichal Krátký. Úvod do programovacích jazyků (Java), 2006/2007
Úvod do programovacích jazyků (Java) Michal Krátký 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íce7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd
7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená
VíceZáklady objektové orientace I. Únor 2010
Seminář Java Základy objektové orientace I Radek Kočí Fakulta informačních technologií VUT Únor 2010 Radek Kočí Seminář Java Základy OO (1) 1/ 20 Téma přednášky Charakteristika objektově orientovaných
VíceSémantika predikátové logiky
Sémantika predikátové logiky pro analýzu sémantiky potřebujeme nejprve specifikaci jazyka (doména, konstanty, funkční a predikátové symboly) příklad: formální jazyk s jediným binárním predikátovým symbolem
VíceProgramování II. Modularita 2017/18
Programování II Modularita 2017/18 Modul? Osnova přednášky Vývoj programování Modularita Příklad Vývoj programování Paradigmata programování Jak a proč se jazyky vyvíjejí? V čem se OOP liší od předchozích
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íceDeskripční logika. Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157
Deskripční logika Petr Křemen FEL ČVUT Petr Křemen (FEL ČVUT) Deskripční logika 37 / 157 Co nás čeká 1 Základy deskripční logiky 2 Jazyk ALC Syntax a sémantika 3 Cyklické a acyklické TBOXy Petr Křemen
VíceKaždé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α
1. JAZYK ATEATIKY 1.1 nožiny nožina je souhrn objektů určitých vlastností, které chápeme jako celek. ZNAČENÍ. x A x A θ A = { { a, b a A = B A B 0, 1 2 a, a,..., a n x patří do množiny A x nepatří do množiny
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íce5 Přehled operátorů, příkazy, přetypování
5 Přehled operátorů, příkazy, přetypování Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně budou uvedeny detaily týkající se operátorů. Doba nutná k nastudování
VíceZákladní pojmy teorie množin Vektorové prostory
Základní pojmy teorie množin Přednáška MATEMATIKA č. 1 Katedra ekonometrie FEM UO Brno kancelář 69a, tel. 973 442029 email:jiri.neubauer@unob.cz 7. 10. 2010 Základní pojmy teorie množin Základní pojmy
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ícepostaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy
Formální systémy (výrokové) logiky postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy cíl: získat formální teorii jako souhrn dokazatelných
VíceUkazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný
Ukazatel (Pointer) jako datový typ - proměnné jsou umístěny v paměti na určitém místě (adrese) a zabírají určitý prostor (počet bytů), který je daný typem proměnné - ukazatel je tedy adresa společně s
VíceLogické programování I
Logické programování I PROLOG Program popisuje "svět" Prologu = databáze faktů a pravidel (tzv. klauzulí). fakta: predikát(arg1, arg2,...argn). cíle:?- predikát(arg1, arg2,...argn). pravidla: hlava :-
VíceBakalářská matematika I
1. Funkce Diferenciální počet Mgr. Jaroslav Drobek, Ph. D. Katedra matematiky a deskriptivní geometrie Bakalářská matematika I Některé užitečné pojmy Kartézský součin podrobnosti Definice 1.1 Nechť A,
VíceModerní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce
Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/07.0018 2. Množiny, funkce MNOŽIN, ZÁKLDNÍ POJMY Pojem množiny patří v matematice ke stěžejním. Nelze jej zavést ve formě definice pomocí
Více1. Dědičnost a polymorfismus
1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář
VíceObjektově orientovaný přístup
Objektově orientovaný přístup 1 Historie programovacích jazyků 1945: John von Neumann článek o nové metodě pro ukládání programů 1945: Grace Hopper poprvé termín "bug" 1946: Konrad Zuse Plankalkul - první
VíceVýroková a predikátová logika - II
Výroková a predikátová logika - II Petr Gregor KTIML MFF UK ZS 2015/2016 Petr Gregor (KTIML MFF UK) Výroková a predikátová logika - II ZS 2015/2016 1 / 18 Základní syntax Jazyk Výroková logika je logikou
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