OOJ - created from Mind Map

Description

Note on OOJ - created from Mind Map, created by Vašek Hanselka on 28/03/2014.
Vašek Hanselka
Note by Vašek Hanselka, updated more than 1 year ago More Less
Vašek Hanselka
Created by Vašek Hanselka about 10 years ago
Vašek Hanselka
Copied to Note by Vašek Hanselka about 10 years ago
337
0

Resource summary

Page 1

výhody a nevýhody

objektidentita vs shoda

zprávareakce na zprávy

abstrakce

zapouzdření

polymorfizmus

dědičnost

Třídně orientované jazyky třída instantinace oběktů kopírování oběktů manipulace s v kodů a v paměti rušení oběktů dědičnost a hiearchije tříd typy podtypy a nadtypy práce s metodami polymorfizmus klasifikace dědičnosti Konflikt u vícenásobné přstupy k typům staticky a dynamicky typovaný jazyk redefinice metod časná vazba pozdní vazba mechanizmus směřování zpráv

prototypově orientované jazyky sdílené chování nové objekty delegace dědičnost Prototypy výhody a nevýhody Klonování rodičovský slot dynamická dědičnost

formazlizmy a jejich užití UML sigma calcul výhody a nevýhody důvod Definice uml pohled diagram dělení pohledů stavení bloky prvky vztahy meh....

vlastnosti OOJ pojmy klasifikace jazyků vlastnosti třídních jazyků zpracování, vyhodnocení, analýza, interpretace poznámky k implementaci poznámka o návrhových vozrech ortogonalita datový typ typový systém typová chyba silně typová kontrola podle určování typů pri zápisu proramu podle doby vytovoření vazby proměnné na typ podle způsobu typové kontroly podle důkladnosti typové kontroly řízení toku programu jmenné prostory modifikátory viditelnosti přetěžování metod vícenásobná dědičnost rozhraní vyjímky šablony systémy s rolemi perzistentní objekty problémy řešení meh... Manipulace s třídami virtuální stroj vykonávání kódu bytekód vytvářecí strukturální vzory vzory chování

IPP Klasifikace jazyků Nestrukturované programovací jazyky Co je to programovací jazyk dělení dle abstrakce Abstrakce řízení Specifikace jazyků, názvosloví Programování Programátor vlastnosti procesu tvorby programu programovací jazyk Abstrakce dat Procedurální Jazyky Deklarativní jazyky Podprogramy Bloky Ko-programy Paralelní programy a procesy Odložené zpracování syntaxe sémantika Struktůrované jazyky. Formalismy statická a dynamická Deklarace a definice Vlastnosti proměnné sémantika Formální V&V SW inženýrství Shrnutí Datové a řídící abstrakce Návrh programu Typy a jejich pracování Tok a řízení programu Překladače Nový typ ukazatel Datové struktůry. variatní datová struktůra lexikální analýza syntaktická analýza interprety Formální báze Formální verifiakce a validace Datové řídící abstrakce Shrnutí podprogramů Typy a jejich zpracování Tok řízení programu. Zpracování. Otevřené podporogramy Pseoudo Moduly Analyzátor Interpret Překladač Lexikání analýza. Syntaktická analýza. Sémantická analýza

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  

+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

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

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

blackbox

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

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

nové oběkty mohou rozšiřovat vlastnosti těch existujících bez nutnosti je znovu implementovat

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

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

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

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

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

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 

garbage collector - automatciky vyhledá jednou za čas objekty na které neexistuje odkaz a ty zruší destruktor - rušíme ručně

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

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

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

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

č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

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

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)

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

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 

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é

je to algoritmus pro hledání správné metody pro reagování na přijatou zprávu 

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 

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

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

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

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

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

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

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

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

+ 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

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 

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 

vidina částečné formální verifikace

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

+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

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 

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

je to strukutra podobná obecnému grafu obsahující vrcholy propojenými vztahy(hrany)

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

asociace, závislost, agregace a kompozice, realizace, generalizace

-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

nezávislost vlastní programovacího jazyka na daném paradigmatu

popisuje strukturu, reprezentaci a intepretaci hodnot použivaných algoritmy nebo objekty v paměti PC

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

ohlášení chyby která označuje použití nepovolených, nekompatibilních, nevhodných operandů při libovolné operaci

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 

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

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 

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

 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

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 

-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

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

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 definici předků dané třídy může být uvedeno více tříd - více nevýhod než výhod

-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

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í 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í.

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

šablona je mechanizmus, který umožňuje parametrizaci daných datových typů

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

-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)

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

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.

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. 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í

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

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

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ů

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

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

Dušan tddd! Dušan tddd!

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ě-

Realizuje proces tvorby programu.

-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

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.

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

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

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

sestavují program jako posloupnost příkazů

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.

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

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

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.

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.

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í.   

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. 

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.

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á - 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 ú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]); }

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.

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 

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.

U nestrukturovaných velmi obtížně realizovatelné.  Floyd-Hoare logika uplnatněna jen na nekteré konstrukce.

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

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.

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.

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.

Nestruktur PJ jsou většinou netypované ale typ proměnné je v kontextu znám.

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é.

Je program který program kontroluje pouze na základě jeho textu

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

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

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

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é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

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.

neformální cestou, ale standardizovaný

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.

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

je možné jej používat pro větší projekty idykž velikost je stále shora ohraničena, megavelké proejkty jsou nemyslitnelné

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

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 

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

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í

pod kontrolou uživatele ntice jednoznačně definovaná jménem

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 

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)

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

nezatíženejší část překladače, program je jen jeden soubor  více kategoríí lexikálních symbolů 

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

š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

OOJ

Annotations

Show full summary Hide full summary

Similar

Maths Quiz
Andrea Leyden
AQA GCSE Physics Unit 2.3
Matthew T
IB SL Biology: Cells
mcgowan-w-10
B5 - Growth and Deveolopment
blairzy123
A2 Ethics - Virtue Ethics
Heloise Tudor
Input Devices
Jess Peason
GCSE AQA Biology 2 DNA & Cell Division
Lilac Potato
Topic 1 Quiz - Elements & The Periodic Table
Musicdudejoe
What are they doing?
Tamara Urzhumova
Část 3.
Gábi Krsková
Core 1.4 Developments in Modern and Smart Materials
T Andrews