Zusammenfassung der Ressource
OOJ
Anmerkungen:
- 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
- výhody a nevýhody
Anmerkungen:
- +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
- objekt
Anmerkungen:
- 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
- identita vs shoda
Anmerkungen:
- shodné když mají stejnou implementaci
identické když mají stejný název teda sdílí stejné místo v paměti
- zpráva
Anmerkungen:
- komunikační jednotka, může obsahovat argumenty
množina zpráv, kterým oběkt rozumí je protokol
- reakce na zprávy
Anmerkungen:
- 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
- abstrakce
Anmerkungen:
- zapouzdření
Anmerkungen:
- uživatel nemůže měnit interní stav oběktu libovlně ale musím využívat rozhraní
- polymorfizmus
Anmerkungen:
- 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
- dědičnost
Anmerkungen:
- nové oběkty mohou rozšiřovat vlastnosti těch existujících bez nutnosti je znovu implementovat
- Třídně orientované jazyky
- třída
Anmerkungen:
- 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
- instantinace oběktů
Anmerkungen:
- 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
- kopírování oběktů
Anmerkungen:
- 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
- manipulace s v kodů a v paměti
Anmerkungen:
- 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
- rušení oběktů
Anmerkungen:
- garbage collector - automatciky vyhledá jednou za čas objekty na které neexistuje odkaz a ty zruší
destruktor - rušíme ručně
- dědičnost a hiearchije tříd
Anmerkungen:
- stromová hiearchie, rodič, potomek furt ty samé kecy
existuje kořenová třída
+znovupožití
+zajištění zpětné kompatibility (z hlediska protokolu)
- klasifikace dědičnosti
Anmerkungen:
- 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
- Konflikt u vícenásobné
Anmerkungen:
- 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
- typy podtypy a nadtypy
Anmerkungen:
- 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
- přstupy k typům
Anmerkungen:
- č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
- staticky a dynamicky
typovaný jazyk
Anmerkungen:
- 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
- práce s metodami
- redefinice metod
Anmerkungen:
- 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)
- polymorfizmus
Anmerkungen:
- 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
- časná vazba
Anmerkungen:
- 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
- pozdní vazba
Anmerkungen:
- 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é
- mechanizmus směřování zpráv
Anmerkungen:
- je to algoritmus pro hledání správné metody pro reagování na přijatou zprávu
- prototypově orientované jazyky
Anmerkungen:
- 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
- sdílené chování
Anmerkungen:
- pokud je objektu zaslána zpráva prozkoumá své sloty a hledá ten který odpovídá
- nové objekty
Anmerkungen:
- nové objekty se vytváří kopírováním existujích objektů takzvané klonování
- Klonování
Anmerkungen:
- 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
- delegace
Anmerkungen:
- 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
- rodičovský slot
Anmerkungen:
- 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
- dědičnost
Anmerkungen:
- 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
- dynamická dědičnost
Anmerkungen:
- objekt má v průběhu svého života možnost měnit své chování
potom nám padá statická typová kontrola
- Prototypy
Anmerkungen:
- 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
- výhody a nevýhody
Anmerkungen:
- + 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
- formazlizmy a jejich užití
Anmerkungen:
- 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
- UML
Anmerkungen:
- 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
- důvod
Anmerkungen:
- vidina částečné formální verifikace
- Definice uml
Anmerkungen:
- 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
- pohled
Anmerkungen:
- 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
- dělení pohledů
Anmerkungen:
- strukturální, datový, pohled na chování a rozhraní
pohledy můžeme dělit také na analytické a návrhové
- diagram
Anmerkungen:
- je to strukutra podobná obecnému grafu obsahující vrcholy propojenými vztahy(hrany)
- stavení bloky
- prvky
Anmerkungen:
- 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
- vztahy
Anmerkungen:
- asociace, závislost, agregace a kompozice, realizace, generalizace
- sigma calcul
- meh....
- výhody a nevýhody
Anmerkungen:
- +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
- vlastnosti OOJ
- pojmy
- ortogonalita
Anmerkungen:
- nezávislost vlastní programovacího jazyka na daném paradigmatu
- datový typ
Anmerkungen:
- popisuje strukturu, reprezentaci a intepretaci hodnot použivaných algoritmy nebo objekty v paměti PC
- typový systém
Anmerkungen:
- využívá datový typ při ověření korektnosti programů při práci s daty
- typová chyba
Anmerkungen:
- ohlášení chyby která označuje použití nepovolených, nekompatibilních, nevhodných operandů při libovolné operaci
- silně typová kontrola
Anmerkungen:
- 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
- klasifikace jazyků
Anmerkungen:
- -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
- podle určování typů pri
zápisu proramu
Anmerkungen:
- 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
- podle doby vytovoření
vazby proměnné na typ
Anmerkungen:
- 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
- podle způsobu typové
kontroly
Anmerkungen:
- 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
- podle důkladnosti
typové kontroly
Anmerkungen:
- 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
- vlastnosti třídních jazyků
- řízení toku programu
Anmerkungen:
- 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
- jmenné prostory
Anmerkungen:
- -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
- modifikátory viditelnosti
Anmerkungen:
- mechanizmus, který mění možnost přístupu k různým entitám
-soukromý, chráněný, veřejný
- přetěžování metod
Anmerkungen:
- 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
- vícenásobná
dědičnost
Anmerkungen:
- v definici předků dané třídy může být uvedeno více tříd - více nevýhod než výhod
- problémy
Anmerkungen:
- -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
- řešení
Anmerkungen:
- 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
- rozhraní
Anmerkungen:
- 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í.
- vyjímky
Anmerkungen:
- 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
- šablony
Anmerkungen:
- šablona je mechanizmus, který umožňuje parametrizaci daných datových typů
- systémy s rolemi
Anmerkungen:
- 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
- perzistentní objekty
Anmerkungen:
- -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)
- zpracování, vyhodnocení,
analýza, interpretace
- meh...
- poznámky k
implementaci
Anmerkungen:
- 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
- Manipulace s třídami
Anmerkungen:
- 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.
- virtuální stroj
Anmerkungen:
- 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
- vykonávání kódu
Anmerkungen:
- 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í
- bytekód
Anmerkungen:
- 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
- poznámka o
návrhových vozrech
Anmerkungen:
- návrhové vzory jsou obecná znovupoužitelná řešení často se oběvujíchích problémů v programovém návhru
- vytvářecí
Anmerkungen:
- 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ů
- strukturální vzory
Anmerkungen:
- napomáhají při shlukování objektů do větších
celků, jako například komplexní uživatelské rozhraní apod.
- vzory chování
Anmerkungen:
- pomáhají při definici komunikace mezi objekty a šíření toku řízení
- IPP
Anmerkungen:
- Klasifikace jazyků
- Co je to
programovací
jazyk
- Programování
Anmerkungen:
- 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ě-
- Programátor
Anmerkungen:
- Realizuje proces tvorby programu.
- vlastnosti procesu
tvorby programu
Anmerkungen:
- -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
- programovací jazyk
Anmerkungen:
- 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.
- dělení dle
abstrakce
Anmerkungen:
- 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
- Abstrakce dat
Anmerkungen:
- 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
- Abstrakce řízení
Anmerkungen:
- 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
- Procedurální Jazyky
Anmerkungen:
- sestavují program jako posloupnost příkazů
- Podprogramy
Anmerkungen:
- 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.
- Bloky
Anmerkungen:
- Nemají narozdíl od podprogramů jméno a proto se jejich kód uplnatňuje pouze tam kde je vložen.
- Ko-programy
Anmerkungen:
- Jsou to pojmenované bloky kódu, které maji vzhledem k sobě symetrický vztah. Jejich kód je zpracováván současně
- Paralelní programy a procesy
Anmerkungen:
- 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.
- Odložené zpracování
Anmerkungen:
- 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.
- Deklarativní jazyky
Anmerkungen:
- 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í.
- Specifikace jazyků,
názvosloví
- syntaxe
Anmerkungen:
- 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.
- sémantika
Anmerkungen:
- 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.
- Formalismy
Anmerkungen:
- 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
- statická a
dynamická
Anmerkungen:
- 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.
- Deklarace
a definice
Anmerkungen:
- 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]);
}
- Vlastnosti
proměnné
Anmerkungen:
- 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.
- Struktůrované jazyky.
Anmerkungen:
- 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.
- sémantika
Anmerkungen:
- neformální cestou, ale standardizovaný
- Formální V&V
Anmerkungen:
- 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.
- SW inženýrství
Anmerkungen:
- 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
- Shrnutí
Anmerkungen:
- je možné jej používat pro větší projekty idykž velikost je stále shora ohraničena, megavelké proejkty jsou nemyslitnelné
- Datové a řídící
abstrakce
Anmerkungen:
- 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
- Návrh programu
Anmerkungen:
- 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
- Typy a jejich pracování
Anmerkungen:
- 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
- Nový typ ukazatel
Anmerkungen:
- 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í
- Datové struktůry.
Anmerkungen:
- pod kontrolou uživatele
ntice jednoznačně definovaná jménem
- variatní datová struktůra
Anmerkungen:
- 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
- Tok a řízení
programu
Anmerkungen:
- 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)
- Překladače
Anmerkungen:
- lexikální, syntaktická i sémantická v jednom průchodu textem
syntaxe je možno pospat bezkontextovými gramatikami
- lexikální analýza
Anmerkungen:
- nezatíženejší část překladače, program je jen jeden soubor
více kategoríí lexikálních symbolů
- syntaktická analýza
Anmerkungen:
- 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
- interprety
Anmerkungen:
- š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
- Nestrukturované
programovací
jazyky
Anmerkungen:
- 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
- Formální
báze
Anmerkungen:
- 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.
- Formální
verifiakce
a validace
Anmerkungen:
- U nestrukturovaných velmi obtížně realizovatelné.
Floyd-Hoare logika uplnatněna jen na nekteré konstrukce.
- Datové řídící abstrakce
Anmerkungen:
- Nesrukturované jazyky buď neposykují žádné datové a řídící abstrakce nebo jen ty nejednodušší.
- Otevřené podporogramy
Anmerkungen:
- 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.
- Pseoudo Moduly
Anmerkungen:
- 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.
- Shrnutí podprogramů
Anmerkungen:
- 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.
- Typy a jejich zpracování
Anmerkungen:
- Nestruktur PJ jsou většinou netypované ale typ proměnné je v kontextu znám.
- Tok řízení programu.
Anmerkungen:
- 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é.
- Zpracování.
- Analyzátor
Anmerkungen:
- Je program který program kontroluje pouze na základě jeho textu
- Interpret
Anmerkungen:
- Je takový program který, když najde nějaky příkaz ve vstupním programu tak jej ihned provede.
- Lexikání analýza.
Anmerkungen:
- 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
- Syntaktická analýza.
Anmerkungen:
- 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čů.
- Sémantická analýza
Anmerkungen:
- 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
- Překladač
Anmerkungen:
- Je program který převádí program na posloupnost jiného jazyka či stroje.