OOJ

Description

Mind Map on OOJ, created by Vašek Hanselka on 27/03/2014.
Vašek Hanselka
Mind Map by Vašek Hanselka, updated more than 1 year ago
Vašek Hanselka
Created by Vašek Hanselka about 10 years ago
648
0

Resource summary

OOJ

Annotations:

  • Rozšiřuje modulární jazyky i o možnost spojit data s operacemi nad nimi. DEF: OOP je způsob abstrakce algoritmu kde mezi sebou komunikují zapouzdřené entity  a a každá možnost využít potenciál celého PC  
  1. výhody a nevýhody

    Annotations:

    • +analogie mezi sw modelem a reálným modelem +felixiblita +znovupoužitelnost, udržovatelnost +vyšší míra abstrakce +zapouzdřitelnost +jendodušší dekompozice problémů -nemusí existovat analogie mezi reálnými objekty -složitější na naučení -nemožnost porušovat koncepci zapouzdření -kód je pomalejší -režije na uložení oběktu v paměti
    1. objekt

      Annotations:

      • jednoznačně iditifikovatelný reálný ojektnebo abstrakce, která zahrnuje data a jejich chování -u třídních ako instantcí třídy která obsahuje data a operace DEF objekt je entita zapouzdřující stavové informace a poskytující sadu operací nad tímto oběktem a jeho částmi komunikace- zasílání zpráv
      1. identita vs shoda

        Annotations:

        • shodné když mají stejnou implementaci identické když mají stejný název teda sdílí stejné místo v paměti
      2. zpráva

        Annotations:

        • komunikační jednotka, může obsahovat argumenty množina zpráv, kterým oběkt rozumí je protokol
        1. reakce na zprávy

          Annotations:

          • 1. oběkt metodu nalezne a provede 2. sám ji neobsahuje ale obsahuje ji jiný obět s rodičovskou vazbou 3. neobsahuje a ani nenalezne u nikoho z rodičovské vazby - chyba
        2. abstrakce

          Annotations:

          • blackbox
          1. zapouzdření

            Annotations:

            • uživatel nemůže měnit interní stav oběktu libovlně ale musím využívat rozhraní
            1. polymorfizmus

              Annotations:

              • použitá metoda reugující na zprávu může být stejná pro více oběktu ale každý na ní bude reagovat podle své implementace
              1. dědičnost

                Annotations:

                • nové oběkty mohou rozšiřovat vlastnosti těch existujících bez nutnosti je znovu implementovat
                1. Třídně orientované jazyky
                  1. třída

                    Annotations:

                    • speciální objekt, který slouží pro společný popis vlastností více objektů def třída je šablona pro vytváření nových objektu stará se správu protokolu, zasílání zpráv, a implemetuje některé metody metadata objektu
                    1. instantinace oběktů

                      Annotations:

                      • proces vytváření objektu pomocí předpisu daného třídou vzniká przázný oběkt který je třeba naplit k tomu slouží Konstruktor
                      1. kopírování oběktů

                        Annotations:

                        • hluboká kopie - krom daného objektu jsou také kopírovaný objekty na který daný objekt referencuje, musíme určit hloubku mělká kopie - hloubka 0 všechny instance obsahují odkazy na totožné ojekty
                        1. manipulace s v kodů a v paměti

                          Annotations:

                          • obreon a c++ rozlišují zda je obět alokován na zásobníku nebo na haldě, rozlišují tak mezi oběktem a jeho daty simula smalltalk nebo modula 3 pracují s oběkty pouze přez reference 
                          1. rušení oběktů

                            Annotations:

                            • garbage collector - automatciky vyhledá jednou za čas objekty na které neexistuje odkaz a ty zruší destruktor - rušíme ručně
                            1. dědičnost a hiearchije tříd

                              Annotations:

                              • stromová hiearchie, rodič, potomek furt ty samé kecy existuje kořenová třída  +znovupožití +zajištění zpětné kompatibility (z hlediska protokolu)
                              1. klasifikace dědičnosti

                                Annotations:

                                • jednoduchá - jeden potomek jeden rodič vícenásobná - dědíme od více předků dědičnost implementace - krom atributů jsou zahrnuty celé metody včetně implementace  dědičnost rozhraní - předpis nebo seznam metod které je nutno v potomkovi implementovat
                                1. Konflikt u vícenásobné

                                  Annotations:

                                  • duplikace jmen u jmen členů od různých předků řešení: zakázání výskytu konfliktních jmen, nebo uvádět předka ze kterého konfliktní dědit
                              2. typy podtypy a nadtypy

                                Annotations:

                                • předek nadtyp potomek podtyp zavedeno kvůli dědičnosti  vyžadovaná dědičnost a kontrola skutečného typu když tam fakt něco potřebuje dycky zdědit např kvůli parametrům
                                1. přstupy k typům

                                  Annotations:

                                  • čistě objektový- vše je oběkt a existuje obět nebo třída od kterého jsou všechny odvozeny hrybridně objektový - máme sadu základních nebo primitivních typů a ty můžeme skládat do struktur
                                  1. staticky a dynamicky typovaný jazyk

                                    Annotations:

                                    • statický - kontrola operací které objekt podporuje již při překladu dynamický - kontroluje se až za běhu programu v případě že danou operaci nepodporuje je proveden pokus o přetypování jinak chyba
                                  2. práce s metodami
                                    1. redefinice metod

                                      Annotations:

                                      • je to schopnost jazyka pro metodu podtřídy novou specifičtější implementaci obě metody přitom mají stejnou signaturu(jméno, seznam parametrů, návratový typ)
                                    2. polymorfizmus

                                      Annotations:

                                      • umožňuje používat na místo jednoho objektu jiný bez nutnosti zásahu do programu u staticky typovaných jazyků se to komplikuje jelikož nevíme s jakým typem objektu budeme pracovat
                                      1. časná vazba

                                        Annotations:

                                        • taky statická vazba  u statických(kompilace při překladu) se požadovaná operace volí již při překladu nemusí být zvolena ta správná je nutné přistoupit k indetifikaci metody již při 
                                        1. pozdní vazba

                                          Annotations:

                                          • identifikace metody až v době běhu programu k tomu se využívají tabulky vrituálních metod VMT tato tabulka ukazuje metody které jsou pro daný typ platné
                                          1. mechanizmus směřování zpráv

                                            Annotations:

                                            • je to algoritmus pro hledání správné metody pro reagování na přijatou zprávu 
                                      2. prototypově orientované jazyky

                                        Annotations:

                                        • zapouzdření a polymorfizmus  oběkty pracují autonomně  znají pouze jediný typ objektu  mají unifikovanou strukturu nerozlišuje se mezi instancemikaždý objekt může obsahovat jak členské proměnné tak metody a tyto složky nazýváme sloty 
                                        1. sdílené chování

                                          Annotations:

                                          • pokud je objektu zaslána zpráva prozkoumá své sloty a hledá ten který odpovídá
                                          1. nové objekty

                                            Annotations:

                                            • nové objekty se vytváří kopírováním existujích objektů takzvané klonování
                                            1. Klonování

                                              Annotations:

                                              • provádí se mělkým kopírováním  teoreticky však může objekt přesně definovat všechny své operace tzn všechny příbuzné objekty budou používat své nezávíslé kopie metod
                                            2. delegace

                                              Annotations:

                                              • něco jak zaslání zprávy a její zpracování akorát když se najde metoda nemění stav delegovaného objektu ale metoda se provede a tak se to vrátí objektu který delegaci provedl
                                              1. rodičovský slot

                                                Annotations:

                                                • pokud není nalezen v objektu vhodný slot přepošle delegaci na speciální typ slotu a to jsou rodičovské sloty pokud ani rodičovský objekt neobsahuje odpovídající slot přepošle to pomocí svých rodičovských slotů přitom zůstavá odkaz na původní objekt který delegaci zaslal
                                              2. dědičnost

                                                Annotations:

                                                • objekty které sdílejí společné chování nebo doplňují třídy se říka rys (provázáním vzniká obdoba dědičnosti)  nekteré jazyky umožňují vložit do oběktu více rodičovských slotů(vícenásobná dědičnost) a protože jde rodičovské sloty měnit jde docilit zajmavého chování které se jinde špatně napodobuje vzniká dynamická dědičnost
                                                1. dynamická dědičnost

                                                  Annotations:

                                                  • objekt má v průběhu svého života možnost měnit své chování  potom nám padá statická typová kontrola
                                                2. Prototypy

                                                  Annotations:

                                                  • vnikají kvůli tomu že každý objekt musí obsahovat kopii instančních proměnných (nevýhoda v třídach nemusí) řešení -některé jazyky je přidávájí do obkejtu a naplňují je standardními hodnotami v konstruktoru rysu  -nebo můžeme doplnit rys ještě jedním objektem, který obsahuje sloty instančních proměnných nová instance se pak vytvoří nakopírovaním této šablony a šablonám se říká prototyp
                                                  1. výhody a nevýhody

                                                    Annotations:

                                                    • + díky své dynamičnosti převyšují OOJ  - nemají bohaté výrazové prostředky -vyžší režije -komplikovanější vyhledávání objektu se stejným protokolem
                                                  2. formazlizmy a jejich užití

                                                    Annotations:

                                                    • u OOJ není formální základ nezbytný dělí se syntaxi a sémantiku  syntaxe - EBNF + bezkontextové gramatiky + slovní výklad sémantika - vícevrstvá slovní popis + príklady 
                                                    1. UML

                                                      Annotations:

                                                      • popis objektových modelů a návrhů většina modelů UML je tovořena grafickými diagramy z nichž hlavní jsou - objektů, tříd, stavové, aktivity 
                                                      1. důvod

                                                        Annotations:

                                                        • vidina částečné formální verifikace
                                                        1. Definice uml

                                                          Annotations:

                                                          • UML je jednotný grafický vizuální pro jednotnou specifikaci, vizualizaci, konstrukci a dokumentaci při objektově orientované analýze návru i pro modelování organizace
                                                          1. pohled

                                                            Annotations:

                                                            • pohledem nazýváme projekci systému na jedne z jeho klíčových aspektů a znázornujeme jej jedním či více diagramy 
                                                            1. dělení pohledů

                                                              Annotations:

                                                              • strukturální, datový, pohled na chování a rozhraní  pohledy můžeme dělit také na analytické a návrhové 
                                                            2. diagram

                                                              Annotations:

                                                              • je to strukutra podobná obecnému grafu obsahující vrcholy propojenými vztahy(hrany)
                                                              1. stavení bloky
                                                                1. prvky

                                                                  Annotations:

                                                                  • jinak abstrakce nebo entity máme: struktůrní - třída, případ použítí, komponenta chování - interakce a stav  seskupování - modul, balíček, podsystém  doplňkové - komentáře a poznámky
                                                                  1. vztahy

                                                                    Annotations:

                                                                    • asociace, závislost, agregace a kompozice, realizace, generalizace
                                                              2. sigma calcul
                                                                1. meh....
                                                                2. výhody a nevýhody

                                                                  Annotations:

                                                                  • +nezávsilý na implementačním jazyce +může sloužit jako vstup automatických generátorů kódu +-není výpočetně úplný -problém s udržováním reflexí/změn ve zdrojáku
                                                                3. vlastnosti OOJ
                                                                  1. pojmy
                                                                    1. ortogonalita

                                                                      Annotations:

                                                                      • nezávislost vlastní programovacího jazyka na daném paradigmatu
                                                                      1. datový typ

                                                                        Annotations:

                                                                        • popisuje strukturu, reprezentaci a intepretaci hodnot použivaných algoritmy nebo objekty v paměti PC
                                                                        1. typový systém

                                                                          Annotations:

                                                                          • využívá datový typ při ověření korektnosti programů při práci s daty
                                                                          1. typová chyba

                                                                            Annotations:

                                                                            • ohlášení chyby která označuje použití nepovolených, nekompatibilních, nevhodných operandů při libovolné operaci
                                                                            1. silně typová kontrola

                                                                              Annotations:

                                                                              • je takový typ kontroly kdy jsou detekovány všechny typové chyby -musí se určit typy všech operandů - staticky při kompilaci  -dynamicky při běhu progrmau 
                                                                            2. klasifikace jazyků

                                                                              Annotations:

                                                                              • -podle určování typů při zápisu programu -podle vytvoření vazby proměnné na typ -podle způsobu typové kontroly -podle důkladnosti typové kontroly
                                                                              1. podle určování typů pri zápisu proramu

                                                                                Annotations:

                                                                                • beztypové - jazyky bez typů - teoretické a formální jazyky netypované - proměnná nemá určený datový typ a programátor to nemá k dispozici -> typové konverze automatickytypované - typ je určen ve zdrojovém programu každé entity
                                                                                1. podle doby vytovoření vazby proměnné na typ

                                                                                  Annotations:

                                                                                  • staticky typované - před během programu tj při době návrhu kompilátoru, kompilace programu nebo zavádění progrmau dynamicky typované - až za běhu programu 
                                                                                  1. podle způsobu typové kontroly

                                                                                    Annotations:

                                                                                    • statická typová kontrola - většina typový kontrol je prováděna za překladu programu  dynamická typová kontrola - veškeré typové kontroly mohou být prováděny až za behu programu
                                                                                    1. podle důkladnosti typové kontroly

                                                                                      Annotations:

                                                                                      •  téměř silně typované jazyky - jako modula 3 java nebo u nich neexistuje možnost jak implicitně způsobit chybu/ nekonzisteci s vyjímkou explicitní typové konverze s vypnout typovou kontrolou středně silně typované jazyky - např ML absolutně silně typované jazyky - nemají naprosto žádné implicitní konverze slabě typované jazyky - např pascal či fortran kde je možné narazit na typovou chybu i po úspěšné kompilaci
                                                                                    2. vlastnosti třídních jazyků
                                                                                      1. řízení toku programu

                                                                                        Annotations:

                                                                                        • u hrybrydních OOJ staré typy nerozumí správám, proto je nutné zachovat i staré konstrukce jako větvení, cykly ..., výrazy a klíčová slova  výhoda - pozvolný přechod na OOJ 
                                                                                        1. jmenné prostory

                                                                                          Annotations:

                                                                                          • -kontejner pro indetifikátory -nesmí se vyskytovat dva stejné -v UML lze modelovat pomocí seskupení  -důvod : při tvorbě velkých programů a práce více programátorů by tato chyba mohla nastat
                                                                                          1. modifikátory viditelnosti

                                                                                            Annotations:

                                                                                            • mechanizmus, který mění možnost přístupu k různým entitám -soukromý, chráněný, veřejný
                                                                                            1. přetěžování metod

                                                                                              Annotations:

                                                                                              • vlastnost umožňující definovat ve třídě metody se stejným jeménem jen se musí lišit v počtu parametrů nebo typu můžeme přetěžovat i operátory
                                                                                              1. vícenásobná dědičnost

                                                                                                Annotations:

                                                                                                • v definici předků dané třídy může být uvedeno více tříd - více nevýhod než výhod
                                                                                                1. problémy

                                                                                                  Annotations:

                                                                                                  • -rodičovské členy mohou obsahovat členy stejného jména a typu - pořadí volání konstruktorů či destruktorů -uložení oběktu třídy v paměti tak aby jej bylo možno využít tam kde je očekáván
                                                                                                  1. řešení

                                                                                                    Annotations:

                                                                                                    • kolize členů lze řešit - zakázat tuto možnost již při kompilaci, dožadovat se upřesnění ve které třídě kolidující metodu hledat, vyžadovat úplnou reimplementaci(při stejném jeménu ale jineém typu - přetěžování) pořadí konstruktorů a destruktorů - využít uživatelovo pořadí dané incializace (není kontrolováno mohl by nastat deadlock), využít pořadí tříd ve zdrojovém textu,  způsob ukládání - ukládat členy tríd do bloků a při kolizi vytvořit duplikát
                                                                                                2. rozhraní

                                                                                                  Annotations:

                                                                                                  • Rozhraní je schéma které deklaruje seznam metod(jména, parametry, návratové typy) Použití rozhraní na danou třídu pak vyžaduje implementaci uvedených v rozhrani. I v případě jednoduché dědičnosti lze každé třídě uvést několik rozhraní.
                                                                                                  1. vyjímky

                                                                                                    Annotations:

                                                                                                    • mechanizmus který popisuje způsob šíření o chybě, způsob ukončení či přeskočení výpočtu a umožňuje definovat způsob vypořádání se s chybou až za samotným algoritmem
                                                                                                    1. šablony

                                                                                                      Annotations:

                                                                                                      • šablona je mechanizmus, který umožňuje parametrizaci daných datových typů
                                                                                                      1. systémy s rolemi

                                                                                                        Annotations:

                                                                                                        • jsou případy kdy objekt vy systému přetrvává dlouhou dobu a vyvíjí se proto se mu musí upravovat protokol tohoto objektu Pro konkreténí použití může tedy objekt přebírat konkrténi roli. objekt potom může během svého života vystupovat pod různými rolemi
                                                                                                        1. perzistentní objekty

                                                                                                          Annotations:

                                                                                                          • -přežívá nad rámek aplikace -je tedy nahrán do aplikace pro jejím opětovném spuštění a je ve steném stavu jako byl před posledním ukončeím aplikace. programátor se musí rozhonout jeslit uloží pouze stav objektů (hodnoty atributů) nebo stav objektu a jejich metody (třídu)
                                                                                                        2. zpracování, vyhodnocení, analýza, interpretace
                                                                                                          1. meh...
                                                                                                          2. poznámky k implementaci

                                                                                                            Annotations:

                                                                                                            • Omezení Von Neumanovy architektury PC  -nemáme čístě oběktvou pamět ani mechanizmus pro zasílání zpráv -řešení : virtuální stroj
                                                                                                            1. Manipulace s třídami

                                                                                                              Annotations:

                                                                                                              • pro ukládátní atributů se  nabízí datová struktůra, ale není dostatečně variabilní Problémy: ukládání metod, dědičnost, přístup k atributům v metodách, instační a třídn proměnné, instanční a třídní atributy.
                                                                                                              1. virtuální stroj

                                                                                                                Annotations:

                                                                                                                • je to speciální softwarová vrstva jejíž účelem je odstnínit HW specifika pro na něm běžící applikaci virtuální storje se mohou v přístupu vykonávání kódu lišit
                                                                                                                1. vykonávání kódu

                                                                                                                  Annotations:

                                                                                                                  • 1. přímá interpretace ze syntaktického stromu do zdrojového kódu 2.kompilace do mezikódu a jeho následná příma interpretace 3.kompilace do mezikódu a jeho následný překlad do nativního strojového kódu a vykonání
                                                                                                                  1. bytekód

                                                                                                                    Annotations:

                                                                                                                    • jako mezkód se ve většině případu využívá bytekód, což je binární forma mezikódu s členěním po bytech
                                                                                                                2. poznámka o návrhových vozrech

                                                                                                                  Annotations:

                                                                                                                  • návrhové vzory jsou obecná znovupoužitelná řešení často se oběvujíchích problémů v programovém návhru
                                                                                                                  1. vytvářecí

                                                                                                                    Annotations:

                                                                                                                    • nepřímou cestou pro nás vytváří objekty, aniž bychom je museli vytvářet přímo, a poskytují nám tak větší flexibilitu programů
                                                                                                                    1. strukturální vzory

                                                                                                                      Annotations:

                                                                                                                      • napomáhají při shlukování objektů do větších celků, jako například komplexní uživatelské rozhraní apod.
                                                                                                                      1. vzory chování

                                                                                                                        Annotations:

                                                                                                                        • pomáhají při definici komunikace mezi objekty a šíření toku řízení
                                                                                                                    2. IPP

                                                                                                                      Annotations:

                                                                                                                      • Dušan tddd! Dušan tddd!
                                                                                                                      1. Klasifikace jazyků
                                                                                                                        1. Co je to programovací jazyk
                                                                                                                          1. Programování

                                                                                                                            Annotations:

                                                                                                                            • Pojem programování je činnost, která převádí , jísty postup, algoritmus, typicky myšlenkový na polsoupnost elementráních úkonů nějakého stroje, typicky PC. Přitom dochází k uložení postupu tak aby jej pc mohl vykonávat opakovaně-
                                                                                                                            1. Programátor

                                                                                                                              Annotations:

                                                                                                                              • Realizuje proces tvorby programu.
                                                                                                                              1. vlastnosti procesu tvorby programu

                                                                                                                                Annotations:

                                                                                                                                • -vysoká náročnost na čas a zdroje -ikdyž mám znalost jazyka není zaručeno že to správně naprogramuji -specifikace není bezchybná -blablablablba
                                                                                                                                1. programovací jazyk

                                                                                                                                  Annotations:

                                                                                                                                  • Je to prostředník mezi běžnou řečí a typicky polsoupností binárních číslic. Je to konečná množina příkazů s pevně danou syntaxí a sémantikou.
                                                                                                                              2. dělení dle abstrakce

                                                                                                                                Annotations:

                                                                                                                                • univerzální programovací jazyky - obecné použtí (C,Java,Pascal) secializované programovací jazyky- APL, jazyky řídících automatů Jazyky pro popis integorvaných obvodů - VHDL Jazyky pro sazbu textu - TeX
                                                                                                                                1. Abstrakce dat

                                                                                                                                  Annotations:

                                                                                                                                  • z hlediska přístupu k datům -jazyky strojové -jazyky vyšší úrovně -univerzální -blokové strukturované jazyky -OOJ -jazyky rozšiřující datové paradigma
                                                                                                                                2. Abstrakce řízení

                                                                                                                                  Annotations:

                                                                                                                                  • procedurální a imperativní Imperativní - co za operace má být provedeno a v jakém pořadí Procedurální - co za operace má být provedeno
                                                                                                                                  1. Procedurální Jazyky

                                                                                                                                    Annotations:

                                                                                                                                    • sestavují program jako posloupnost příkazů
                                                                                                                                    1. Podprogramy

                                                                                                                                      Annotations:

                                                                                                                                      • Podprogramy umožňují vnořené zpracování určitých logických funkci / celků. Je volan zkrze své rozhraní. Rozhraní definuje předáváne parametry a výsledek.
                                                                                                                                      1. Bloky

                                                                                                                                        Annotations:

                                                                                                                                        • Nemají narozdíl od podprogramů jméno a proto se jejich kód uplnatňuje pouze tam kde je vložen. 
                                                                                                                                        1. Ko-programy

                                                                                                                                          Annotations:

                                                                                                                                          • Jsou to pojmenované bloky kódu, které maji vzhledem k sobě symetrický vztah. Jejich kód je zpracováván současně
                                                                                                                                          1. Paralelní programy a procesy

                                                                                                                                            Annotations:

                                                                                                                                            • Jsou oproti Ko-programům mnohem větší logické celky, jejich vztahy nemusí být symetrické a může mezi nimi docházet k synchronizaci.
                                                                                                                                            1. Odložené zpracování

                                                                                                                                              Annotations:

                                                                                                                                              • Pokud výsledek dané operace není v daném místě operace dále použit může být zpracování operace odloženo a provedeno až je třeba.
                                                                                                                                            2. Deklarativní jazyky

                                                                                                                                              Annotations:

                                                                                                                                              • Jazyky vysoké abstrakce a vyjadřovací síly. Oběvují se příkazy větvení toku a opakování. Strategie volání a vyhodnocení : Call by name - parametry vyhodnoceny před voláním programu. Call by value - paraetry se předávájí nevyhodnoceny Call by need. - program je volán až ho vyhodnocení potřebuje, hodnota je uložena pro další použití.   
                                                                                                                                            3. Specifikace jazyků, názvosloví
                                                                                                                                              1. syntaxe

                                                                                                                                                Annotations:

                                                                                                                                                • syntaxe jazyka definuje struktůru programu tj. jakým způsobem je dovoleno jednotlivé konstrukce řadit za sebe. Syntaxi lze popsat fromálnímí gramatikami  Pro definici syntaxe pro programátory se využívá - slovní popis, syntaktické grafy, (E)BNF, gramatiky. 
                                                                                                                                                1. sémantika

                                                                                                                                                  Annotations:

                                                                                                                                                  • Je to popis/ definice významu jednotlivých syntaktických konstrukcí, způsobu jejich vyhodnocení, zpracování .... Pro popis se využívají formalizmy - slovní vysvětlení a ukázka na příkladech.
                                                                                                                                                  1. Formalismy

                                                                                                                                                    Annotations:

                                                                                                                                                    • axiomatická sémantika - pro každou syntaktickou konstrukci definuje množinu axiomů operační sémantiku - definuje sémnatiku chování programu jako posloupnost stavůdenotační sémantka
                                                                                                                                                    1. statická a dynamická

                                                                                                                                                      Annotations:

                                                                                                                                                      • Statická - definuje vlastnosti, které mohou být studovány a ověřovány během překladu programu Dynamická - popisuje vlastnosti které se ověří až za běhu programu.
                                                                                                                                                      1. Deklarace a definice

                                                                                                                                                        Annotations:

                                                                                                                                                        • Deklarace úplně vymezuje atributy dané entity.  extern int variable; int function(int, double, char *); Definice úplně vymezuje atributy dané entity a u proměnných způsob alokace v paměti a u funckí / procedur i tělo funkce. int variable = 54; int function(int i, double d, char *s) { return i+(int)(d/(double)s[0]); }
                                                                                                                                                        1. Vlastnosti proměnné

                                                                                                                                                          Annotations:

                                                                                                                                                          • Jméno - [^množina zakázaných identfikátorů], rezerovavná slova, klíčová slova Umístění, adresa, hodnota - můžeme mít více stejně pojmenovaných proměnných ale jinde umístěné např při rekurzi. Rozash platnosti proměnné určuje tu část programu kde je možné s proměnnou pracovat. Doba života proměnné je časový interval po kterou je pro dannou promměnou alokována pamět.
                                                                                                                                                        2. Struktůrované jazyky.

                                                                                                                                                          Annotations:

                                                                                                                                                          • Snaží se dát programáorovi flexibilitu a dostatečné prostředky pro tvorbu programů ze všech oblastí efektivnějším způsobem. většinou nemájí primární bázi.
                                                                                                                                                          1. sémantika

                                                                                                                                                            Annotations:

                                                                                                                                                            • neformální cestou, ale standardizovaný
                                                                                                                                                            1. Formální V&V

                                                                                                                                                              Annotations:

                                                                                                                                                              • Lze použít Floyd-Hoare logiku. Floyd-hoare logika- pro každý programový prvek je definováná podmínka před a po provedení operace daným prvkem.
                                                                                                                                                              1. SW inženýrství

                                                                                                                                                                Annotations:

                                                                                                                                                                • lepší než už nestrukturovaných, ale nedostačující program je tvořen jedním souborem a lze jej složit z více souborů chybí moduly a není možné skrývat manipulaci s daty
                                                                                                                                                                1. Shrnutí

                                                                                                                                                                  Annotations:

                                                                                                                                                                  • je možné jej používat pro větší projekty idykž velikost je stále shora ohraničena, megavelké proejkty jsou nemyslitnelné
                                                                                                                                                                  1. Datové a řídící abstrakce

                                                                                                                                                                    Annotations:

                                                                                                                                                                    • umožňuje definovat odvozené datové typy - programátro musí definovat operace oběvují se ukazatele takže je možnost rekurzivních datových struktur  vzik pervasivnch funkcí- funkce pro manipulaci s datovými typy, které jsou v jazyce už dfinovány
                                                                                                                                                                    1. Návrh programu

                                                                                                                                                                      Annotations:

                                                                                                                                                                      • vzik uzavřených podprogramů - velký posun v programování - zjednodušuje rekurzi, možnost ukrytí implementace, odluka od hlavního toku programu  lokální proměnné v zanořených blocích. - minimalizace datových konfilktů  program je možno rozděli na nezávsilé celky NEVÝHODA program je stále jeden soubor 
                                                                                                                                                                      1. Typy a jejich pracování

                                                                                                                                                                        Annotations:

                                                                                                                                                                        • typovaný jazyk, typ musí uvádět programátor explicitně přísné typovaní - podle přínosti určujeme jestli se typy musí převádět explicitně nebo zda určité koverze probíhají automaticky
                                                                                                                                                                        1. Nový typ ukazatel

                                                                                                                                                                          Annotations:

                                                                                                                                                                          • teoreticky  nese adresu libovlné buňky v celém sytému, ideální je plochý paměťový prostor,  je třeba brát v úvahu segmentaci paměti a stránkování a dodělené kódové a datové částí paměti je vhodné se vyhnout konstkrukcím, které přistupují do obou pamětí
                                                                                                                                                                          1. Datové struktůry.

                                                                                                                                                                            Annotations:

                                                                                                                                                                            • pod kontrolou uživatele ntice jednoznačně definovaná jménem
                                                                                                                                                                            1. variatní datová struktůra

                                                                                                                                                                              Annotations:

                                                                                                                                                                              • sjednocení jednotlivých složek dané struktůry kaaždá složka má své jeméno a typ  jednotlivé složky se přerývají a a je aktvní právě jedna  struktůra parametrem - předáním ukazatelm nebo hodnotou 
                                                                                                                                                                          2. Tok a řízení programu

                                                                                                                                                                            Annotations:

                                                                                                                                                                            • leze kombinovat programové kosntrukce a zanoření .. if else then , for while , repeat, break, continue shana eliminovat GOTO Statické zanoření - na úrovni textu v probramu Dynamické - funkce volají jiné funkce nebo sami sebe (rekurze)
                                                                                                                                                                            1. Překladače

                                                                                                                                                                              Annotations:

                                                                                                                                                                              • lexikální, syntaktická i sémantická v jednom průchodu textem syntaxe je možno pospat bezkontextovými gramatikami
                                                                                                                                                                              1. lexikální analýza

                                                                                                                                                                                Annotations:

                                                                                                                                                                                • nezatíženejší část překladače, program je jen jeden soubor  více kategoríí lexikálních symbolů 
                                                                                                                                                                                1. syntaktická analýza

                                                                                                                                                                                  Annotations:

                                                                                                                                                                                  • metoda shora dolů prediktivní analyzátor  víceůrovňové tabulky symbolů v době překladu lze provádět typovou kontrolu, detekce cíle skoků, existence entity
                                                                                                                                                                                  1. interprety

                                                                                                                                                                                    Annotations:

                                                                                                                                                                                    • školn nebo výzkumné kvůli dosahu definic v rámci bloků je hodně dlouhý takže je nutné si pamatovat kde se nacházíme
                                                                                                                                                                            2. Nestrukturované programovací jazyky

                                                                                                                                                                              Annotations:

                                                                                                                                                                              • Většinou nemají formální bázi. Ale přesto je potřebujem verifikovat a validovat. Nejsou vhodné pro velké projekty či práci více lidi.Syntaxe těchto jazyků je uváděna na příkladech. Seémantika je podávána neformálně - příklady + popis 
                                                                                                                                                                              1. Formální báze

                                                                                                                                                                                Annotations:

                                                                                                                                                                                • Je to takový prostředek který umožňuje exaktně  popsat všechny konstrukce daného jazyka.  Slouží k tomu aby bylo možné jisté vlastnosti daného jazyka formálně popsat.
                                                                                                                                                                                1. Formální verifiakce a validace

                                                                                                                                                                                  Annotations:

                                                                                                                                                                                  • U nestrukturovaných velmi obtížně realizovatelné.  Floyd-Hoare logika uplnatněna jen na nekteré konstrukce.
                                                                                                                                                                                  1. Datové řídící abstrakce

                                                                                                                                                                                    Annotations:

                                                                                                                                                                                    • Nesrukturované jazyky buď neposykují žádné datové a řídící abstrakce nebo jen ty nejednodušší.
                                                                                                                                                                                    1. Otevřené podporogramy

                                                                                                                                                                                      Annotations:

                                                                                                                                                                                      • Většina Nestruktrur PJ postrádá možnost definovat funci či procedůru. To se dá častečné řešit otevřenými podprogramy. Otevřený podprogram je uložen v rámcí hlavního zdrojového textu. Nemá definované rozhraní. Vstup se děje skokem na příkaz a ukončuje se také příslušným příkazem. Slouží jen k uložení kódu někam jinam.
                                                                                                                                                                                      1. Pseoudo Moduly

                                                                                                                                                                                        Annotations:

                                                                                                                                                                                        • Nahrazují otevřené podprogramy aby program mohl byt složen z více souborů. Pevný vstupní bod i konec - posledním platným řádkem souboru.
                                                                                                                                                                                      2. Shrnutí podprogramů

                                                                                                                                                                                        Annotations:

                                                                                                                                                                                        • Parametry jako globální proměnné. Podpora rekurze chybí, v určitých případech může vyřešit programátor. Složitá struktůra programu.
                                                                                                                                                                                        1. Typy a jejich zpracování

                                                                                                                                                                                          Annotations:

                                                                                                                                                                                          • Nestruktur PJ jsou většinou netypované ale typ proměnné je v kontextu znám.
                                                                                                                                                                                          1. Tok řízení programu.

                                                                                                                                                                                            Annotations:

                                                                                                                                                                                            • Nestruktur PJ nenenabízí žádnou možnost jakkoli struktorovat program. Vstup do Otevř. Podpr. je řešen skokem na řádek. Vznikají tak programové bloky pomocí skoků což je velmi špatně zpětně čitelné.
                                                                                                                                                                                            1. Zpracování.
                                                                                                                                                                                              1. Analyzátor

                                                                                                                                                                                                Annotations:

                                                                                                                                                                                                • Je program který program kontroluje pouze na základě jeho textu
                                                                                                                                                                                                1. Interpret

                                                                                                                                                                                                  Annotations:

                                                                                                                                                                                                  • Je takový program který, když najde nějaky příkaz ve vstupním programu tak jej ihned provede.
                                                                                                                                                                                                  1. Lexikání analýza.

                                                                                                                                                                                                    Annotations:

                                                                                                                                                                                                    • co nejdříve ale jen v omezeném rozsahu, převádějí se klíčové prvka jazyka aby se pak při běhu nezpomaloval kvůli náročené analyze
                                                                                                                                                                                                    1. Syntaktická analýza.

                                                                                                                                                                                                      Annotations:

                                                                                                                                                                                                      • Příkazy jsou často řádkově orientovány proto tak probíha syntaktická analýza. s využitím stejných prvku jako u překladčů.
                                                                                                                                                                                                      1. Sémantická analýza

                                                                                                                                                                                                        Annotations:

                                                                                                                                                                                                        • Sémantikcou analýzu zle provádět v jisté posloupnosti nebo ji lze zcela odložit až na  samotné vyhodnocení. Pro analýzu kontextu se používají jednoúrovňové tabulky
                                                                                                                                                                                                      2. Překladač

                                                                                                                                                                                                        Annotations:

                                                                                                                                                                                                        • Je program který převádí program na posloupnost jiného jazyka či stroje.
                                                                                                                                                                                                  Show full summary Hide full summary

                                                                                                                                                                                                  Similar

                                                                                                                                                                                                  Health and Social Care
                                                                                                                                                                                                  NicoleCMB
                                                                                                                                                                                                  TOEFL Practice
                                                                                                                                                                                                  aliking
                                                                                                                                                                                                  Enzymes and Respiration
                                                                                                                                                                                                  I Turner
                                                                                                                                                                                                  Biology Unit 4: Respiration and Photosynthesis
                                                                                                                                                                                                  Charlotte Lloyd
                                                                                                                                                                                                  GCSE AQA Biology 2 Enzymes, Digestion & Enzyme Uses
                                                                                                                                                                                                  Lilac Potato
                                                                                                                                                                                                  P1 quiz
                                                                                                                                                                                                  I M Wilson
                                                                                                                                                                                                  Basic English tenses
                                                                                                                                                                                                  Mariola Hejduk
                                                                                                                                                                                                  The Five Minute Lesson Plan Template
                                                                                                                                                                                                  tom.roche_
                                                                                                                                                                                                  An Timpeallacht (Foclóir)
                                                                                                                                                                                                  Sarah Egan
                                                                                                                                                                                                  GCSE Combined Science
                                                                                                                                                                                                  Derek Cumberbatch
                                                                                                                                                                                                  exothermic and endothermic reactions
                                                                                                                                                                                                  janey.efen