Rudolf Pecinovský: Učíme OOP (7) - Syntaktické definice, dokumentační komentáře

čtvrtek 20. února 2003 ·

Seriál o výuce objektově orientovaného programování postupuje k podkapitolám 2.6. Syntaktická definice a 2.7. Dokumentační komentáře. V minulém díle jsme si probrali definici třídy, úpravu konstruktoru a konstruktor s parametry.

2.6 Syntaktické definice

Poznámka:
Tato kapitola trochu odbočuje od vlastního výkladu. Chtěl bych vás v ní seznámit se způsobem zápisu syntaktických definic, pomocí nichž lze jednoznačně popsat, jak má vysvětlovaná konstrukce vypadat. Možná bude některým z vás připadat těžká. Pokud se vám bude zdát, že je příliš abstraktní, klidně ji přeskočte a vraťte se k ní později, až si budete chtít ujasnit, jak si máte nějakou syntaktickou definici „přeložit".

Při popisu syntaxe programových konstrukcí (syntaxe = souhrn pravidel, jak konstrukci zapsat) nebývá slovní popis optimálním způsobem vyjádření, protože se při něm často ztrácejí cenné informace v záplavě okolních slov. V programátorském světě se proto používají jiné druhy popisu. Jedním z nich jsou syntaktické definice. Ty budu používat i já.

V syntaktických definicích je třeba rozlišit, co se z nich má do programu „opsat", co pouze zastupuje nějaký objekt a co je pouze pomocný vyjadřovací prostředek pro popis struktury dané konstrukce. V syntaktických definicích, které budu v tomto kurzu používat, uvedu vždy na prvním řádku červeně název popisované konstrukce a na dalších, odsazených řádcích pak popíšu vlastní definici. V ní budu používat následující prvky:

modře Modrou barvu budu používat pro ty části konstrukce, které se mají do výsledného programu opsat (např. pro složené závorky ohraničující tělo konstruktoru či třídy nebo pro čárku oddělující jednotlivé parametry v seznamu).

název  Černě a pro vyšší odlišení budu psát názvy prvků, které se v definici vyskytují, kurzivou. Místo nich pak do programu napíšete příslušný prvek.

[ ]  Červené hranaté závorky budou uzavírat tu část konstrukce, která se v ní může, ale také nemusí vyskytovat.

…   Červená výpustka bude následovat za prvkem, který se může v konstrukci vyskytovat opakovaně.

{ }  Červené složené závorky budou uzavírat skupinu prvků, s nimiž budu chtít v definici pracovat jako s celkem - např. za ně budu chtít vložit výpustku naznačující, že celá skupina se může opakovat.

  Červené svislítko bude mít funkci nebo, která říká, že ve výsledné konstrukci se může objevit buď prvek vlevo od něj, anebo prvek vpravo od něj. Ne však oba zároveň (to bychom museli zapsat jinak).

Definici konstruktoru bychom podle těchto pravidel zapsali následovně:

Konstruktor:
[ modifikátor ] název_třídy (
[ definice_parametru [ , definice_parametru ] ] )
{ [ příkaz ] }
Definice_parametru:
typ název

Definici interpretujeme tak, že na počátku se může, ale nemusí vyskytovat modifikátor (zatím známe pouze modifikátor public, ale je jich víc). Modifikátorů dokonce může být i víc.

Za modifikátorem následuje název třídy, jejíž instance konstruktor vytváří, a za ním pak otevírací kulatá závorka uvozující seznam případných parametrů. Za ní může, ale nemusí být uvedena definice použitého parametru. Za definicí prvního parametru mohou být i definice dalších parametrů, ale každá z nich již musí být od předchozí definice oddělena čárkou.

Za seznamem parametrů napíšeme zavírací kulatou závorku a za ní otevírací složenou závorku uvozující tělo konstruktoru. V těle konstruktoru nemusí být nic, ale může tam být i několik příkazů. Tělo ukončí uzavírací složená závorka.

V definici konstruktoru se vyskytuje prvek definice_parametru. Ten vytvoříme tak, že uvedeme typ parametru a za ním jeho název.

Abychom si ukázali použití červených složených závorek a svislítka, rozebereme si ještě definici identifikátoru:

Identifikátor:
{ písmeno | _  | $ } [ písmeno | _  | $ | číslice ]…
Tato definice je však nešikovná a uvedl jsem ji pouze proto, abych v ní mohl použít i složené závorky. V praxi bychom identifikátor definovali asi následovně:

Identifikátor: zobecněné_písmeno [ zobecněné_písmeno | číslice ]…

Zobecněné_písmeno: písmeno | _ | $

Tato definice říká, že identifikátor musí začínat zobecněným písmenem, za ním může následovat libovolný počet zobecněných písmen a číslic.



Rudolf Pecinovský

0 komentářů:

Články dle data



Učitelské listy

Nabídka práce

Česká škola - portál pro ZŠ a SŠ

Česká škola poskytuje svým čtenářům diskusní prostor k vyjádření názorů na školskou problematiku. Tyto příspěvky se nemusí shodovat se stanoviskem redakce České školy a jsou uveřejňovány jako podnět k dalším diskusím.

Obsah článků nemusí vyjadřovat stanovisko redakce nebo vydavatele Albatros Media, a.s.


Všechna práva vyhrazena.

Tento server dodržuje právní předpisy
o ochraně osobních údajů.

ISSN 1213-6018




Licence Creative Commons

Obsah podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně-Nezasahujte do díla 3.0 Česká republika, pokud není uvedeno jinak nebo nejde-li o tiskové zprávy.



WebArchiv - archiv českého webu



Tyto webové stránky používají k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Informace o tom, jak tyto webové stránky používáte, jsou sdíleny se společností Google. Používáním těchto webových stránek souhlasíte s použitím souborů cookie.