Blok (programování): Porovnání verzí

Smazaný obsah Přidaný obsah
m →‎Literatura: šablona
Formulace, styl
Řádek 1:
{{wikifikovat}}
 
[[Soubor:Bloková_struktura.PNG|thumb|Bloková struktura]]
'''Bloková struktura''' je v [[Informatika|informatice]] označení pro [[zdrojový kód]] programu, který je rozčleněn do samostatných bloků (úseků) používaných ve [[Strukturované programování|strukturovaném programování]]. Bloky rozčleňují kód na souvislé logické části ([[Řídicí struktura|řídící struktury]] pro podmínku ''if'', [[Cyklus while-do|cyklus ''while-do'']], [[Cyklus for|cyklus ''for'']] a podobně) nebo samostatné funkční části u [[Funkce (programování)|funkcí]] a procedur a umožňují též zanořování těchto bloků.
 
=== Historie ===
'''Bloková struktura''' je označení pro zdrojový kód programu, který je rozčleněn do samostatných bloků (úseků).
Myšlenka blokové struktury se poprvé objevila v roce [[1950]], akdy byla formalizována ve zprávách [[Algol 58]] 58 a [[Algol 60]] . [[Algol 58]] zavedl pojem "složený„složený příkaz"příkaz“. Upravená zpráva AngolAlgol 60 popisuje syntaxi a sémantiku. Algol 60]] zavedl pojem blok, skládající se ze sekvence prohlášení, ,které následuje posloupnost příkazů uzavřené mezi začátkem a koncem, v níž každé prohlášení, které je zobrazené v bloku v této cestě je platné pouze pro tento blok.
 
=== FunkcePrincip blokového programování ===
== Úvod ==
Blok umožňuje v [[programování]] specifikovat část kódu programu, která se vůči okolí chová tak, jako by byla jedním příkazem. Označuje se proto také jako programátorské závorky. Bloky tímto způsobem zjednodušují [[Syntaktická analýza|syntaktická pravidla]] zápisu [[Zdrojový kód|zdrojového kódu]] programu [[Programovací jazyk|programovacího jazyka]], protože je možné předepsat, že na daném místě zápisu může být pouze jediný příkaz (je-li příkazů více, musí být uzavřeny do programátorských závorek a stanou se tak z vnějšího pohledu jediným příkazem).
V počítačovém programování je blok nějak ohraničená souvislá část kódu. Typickým příkladem jsou procedur a [[Funkce (programování)|funkcí]], [[cykly]] jako [[Cyklus while-do|While]], [[Cyklus while-do|Repeat]], [[Cyklus for|for]] a podmínky. Programovací jazyk, který umožňuje vytváření bloků, včetně bloků vnořených do jiných bloků, se nazývá strukturovaný [[programovací jazyk]].
 
Druhou funkcí bloku je možnost zúžit rozsah platnosti [[Proměnná|proměnné]], procedury nebo funkce tak, že jsou deklarovány v určitém bloku. Označujeme pak jako lokální proměnné nebo vnořené funkce. [[Lexikální analýza]] díky tomu může zajistit, že objekty deklarované v určitém bloku nekolidují s objekty deklarovanými mimo tento blok. Lokální proměnné pak mohou mít stejné názvy, jako proměnné v nadřízených (nebo sousedních) blocích, avšak nedojde k jejich ovlivnění. Stejné pravidlo platí pro funkce a procedury.
=== Historie ===
Myšlenka blokové struktury se poprvé objevila v roce [[1950]], a byla formalizována ve zprávách [[Algol 58]] a [[Algol 60]] . [[Algol 58]] zavedl pojem "složený příkaz". Upravená zpráva Angol 60 popisuje syntaxi a sémantiku. Algol 60]] zavedl pojem blok, skládající se ze sekvence prohlášení ,které následuje posloupnost příkazů uzavřené mezi začátkem a koncem, v níž každé prohlášení, které je zobrazené v bloku v této cestě je platné pouze pro tento blok.
 
Některé programovací jazyky, které podporují bloky s deklarací [[Proměnná|proměnných]] , nepodporují plně všechny deklarace. , napříkladNapříklad mnoho jazyků odvozených od C neumožňuje definici [[FunkceC (programováníprogramovací jazyk)|funkceprogramovacího jazyka C]] neumožňuje definici funkce v rámci bloku na rozdíl od jeho předchůdce AlgolAlgolu. [[Pascal (programovací jazyk)|Pascal]] nepodporuje použití bloků s jejich vlastní deklarací uvnitř začátku a koneckonce stávajícího bloku, pouze složené příkazy umožňujícípodporuje sekvenčnípouze při seskupení v [[FunkceŘídicí (programování)struktura|funkceřídících strukturách]] mohou být seskupeny do [[If]]''if'', [[Cyklus while-do|While]], [[Cykluscyklus ''while-do|Repeat'']] a dalších kontrolních''repeat'', [[FunkceCyklus (programování)for|funkcícyklus ''for'']].
=== Funkce blokového programování ===
[[Funkce (programování)|Funkce]] blokového programování umožňuje bloku programu se chovat jako kdyby byl jeden příkaz, a zúžit rozsah lexikální [[Proměnná|proměnné]], procedury a [[Funkce (programování)|funkce]] deklarované v bloku tak, že nejsou v rozporu s [[Proměnná|proměnnými]], které mají stejný název použitý jinde v programu pro různé účely.
 
== Bloková struktura programu ==
Některé jazyky, které podporují bloky s deklarací [[Proměnná|proměnných]] nepodporují plně všechny deklarace , například mnoho jazyků odvozených od C neumožňuje definici [[Funkce (programování)|funkce]] v rámci bloku na rozdíl od jeho předchůdce Algol. [[Pascal (programovací jazyk)|Pascal]] nepodporuje použití bloků s jejich vlastní deklarací uvnitř začátku a konec stávajícího bloku, pouze složené příkazy umožňující sekvenční [[Funkce (programování)|funkce]] mohou být seskupeny do [[If]], [[Cyklus while-do|While]], [[Cyklus while-do|Repeat]] a dalších kontrolních [[Funkce (programování)|funkcí]].
Bloková struktura programu se využívá hojně využívá v moderních technikách programování ježoznačovaných využívají tzv.[[Strukturované programování|strukturované jazyky]]. Tyto jazyky nám umožňují efektivní kontrolu použití objektů. Bloková struktura programu rozlišuje [[globální]] a [[lokální]] [[Instance třídy|objekty]], kdy přístup do lokálních objektů je omezený. Pokud má lokální objekt stejné jméno jako objekt [[globální]] tak neovlivní objekt globální]] neovlivní.
 
Sémantický význam bloku je dvojí. Za prvé, poskytuje programátorovi způsob, jak vytvořit libovolně velké a složité struktury, které mohou být považovány za jednotky. Za druhé to umožňuje programátorovi omezit rozsah proměnných.
 
== Bloková struktura programu ==
 
Bloková struktura programu se využívá hojně v moderních technikách programování jež využívají tzv. strukturované jazyky. Tyto jazyky nám umožňují efektivní kontrolu použití objektů. Bloková struktura programu rozlišuje [[globální]] a [[lokální]] [[objekty]], kdy přístup do lokálních objektů je omezený. Pokud má lokální objekt stejné jméno jako objekt [[globální]] tak objekt globální]] neovlivní.
 
Dalo by se říci že základním prvkem programu je blok. Každý blok se skládá z hlavičky, deklarační a příkazové části.
 
Jednotlivé bloky mohou obsahovat další podbloky neboli vnořené bloky, které si můžeme představit jako podprogramy. Ovšem každý podblok takto vytvořený opět musí obsahovat všechny náležitosti bloku tedy hlavičku, deklarační a příkazovou část.
 
Skládání celého programu z jednotlivých bloků nám vznikne jakási hierarchická struktura, neboli bloková struktura programu
 
Dalo by se říci že základním prvkem programu je blok. Každý blok se skládá z hlavičky, deklarační a příkazové části. Jednotlivé bloky mohou obsahovat další podbloky neboli vnořené bloky, které si můžeme představit jako podprogramy. Ovšem každý podblok takto vytvořený opět musí obsahovat všechny náležitosti bloku tedy hlavičku, deklarační a příkazovou část. Skládání celého programu z jednotlivých bloků nám vznikne jakási hierarchická struktura, neboli bloková struktura programu
 
== Stromová struktura ==
[[Soubor:Stromova struktura.PNG|thumb|Stromová struktura tabulek (například [[Sémantická analýza|tabulek symbolů]].]]
 
Jednotlivé bloky vytvářejí stromovou strukturu. Vnořené bloky jsou vždy podřízeny blokům nadřazeným. Objekty jsou dosažitelné jen z bloků podřízených a každý blok má svoji tabulku přístupných objektů.
 
[[Soubor: Stromova struktura.PNG]]
 
== Literatura ==