Prostředí ČeV-OCP je vyvíjeno postupně od poloviny května 2020 - děkuji za trpělivost ... :o)
Vlastimil Čevela - Modřice, 23.5.2020 logo (C) Lenka Dufková pro INVEX Computer - Brno 91
1. Úvod
Programování
je proces od návrhu řešení problému pomocí výpočetní techniky ke spustitelnému počítačovému programu. Zahrnuje činnosti jako je analýza problému, jeho pochopení, nalezení algoritmu a zápis zdrojového kódu ve zvoleném programovacím jazyku. Patří k nim i testování a ladění programu, včetně údržby po dobu jeho životnosti.
COBOL
je programovací jazyk, který byl navržen s cílem maximální srozumitelnosti pro uživatele bez specializované IT nebo matematické kvalifikace. Proto kromě několika výjiḿek nepoužívá žádné zkratky, ale vybraná anglická slova.
Čevela Online COBOL Průvodce (ČeV-OCP)
je interaktivní pracovní a vzdělávací prostředí na portále prog story Technického muze a v Brně. Jeho autor, jako profesionál v oblasti analýzy a programování v COBOLU na sálových počítačích Tesla 200 a EC 1026 ve VS Ingstav Brno v letech 1970-1990, patříl k průkopníkům praktické metodiky strukturovaného programování v bývalém Československu. Následně v rámci vlastní firmy Programátorské služby COBOL úspěšně realizoval převody několika velkých projektů se stovkami programů do prostředí PC a sítě Novell. Významnou část služeb pak až do roku 2014 představovaly odborné konzultace a školení všech běžných dialektů jazyka COBOL pro několik stovek absolventů z různých podniků a institucí v Česku i na Slovensku. Průběžně si také až do současnosti v rámci volnočasových aktivit navrhuje různé programy COBOL ke generování zdrojových HTML kódů i jiných textových souborů při tvorbě webových stránek.
K vytvoření tohoto prostředí inspirovaly autora dva důvody. Prvním bylo upozornění kolegů z Ostravy na články o aktuálních (duben 2020) problémech v USA s nedostatkem kvalifikovaných programátorů se znalostí COBOLU. V souvislosti se zkušeností, že i u nás se tento jazyk pro velké projekty stále používá, by proto jednoduchý úvod do něj mohl být užitečným nástrojem k doplnění kvalifikace. Hlavním impulzem pak bylo objevení dále popisovaného JDoodle IDE, které prakticky odstiňuje všechny realizační záležitosti kolem kompilací, alokací, knihoven a dalších složitostí, takže je možno pracovat výhradně s jazykem COBOL jako takovým. To znamená příležitost důvěrně poznat a ocenit geniální jednoduchost a sílu, kterou do něj jeho tvůrci před 60 lety vložili.
Interaktivní prostředí ČeV-OCP je vyvíjeno postupně s cílem nabídnout podporu ve třech směrech:
- Důsledný frekvenční přístup, soustředěný na podstatné a nejčastější jevy
- Minimalizovaný popis jazyka dle vlastní metodiky s využíváním on-line odkazů na profesionální dokumentace
- Širokou paletu názorných příkladů a vzorů typických řešení
Reference pro školení a konzultace - prog-story.technicalmuseum.cz/cobol
IDE (Interactive Development Environment)
je v tomto případě Interaktivní vývojové prostředí firmy JDoodle, které v rámci určitých limitovaných vlastností umožňuje zdarma online spouštění programů, napsaných v programovacím jazyku GNU Cobol a dalších.
www.jdoodle.com/execute-cobol-online
GnuCOBOL (dříve Open COBOL)
je zdarma dostupný personální kompilátor, fungující pod MS Windows, Linux a kromě JDoodle IDE i v několika dalších online IDE. Průběžně probíhá vývoj a v současnosti jeho vlastnosti zahrnují podstatnou část ISO standardů COBOL '85, 2002 a 2014 i mnoho rozšíření IBM, MF a jiných ...
sourceforge.net/projects/open-cobol - GNU COBOL 2.0 Programmers Guide.pdf
2. Systematický přístup
Autor stránek ČeV-OC se poprvé s pojmem SYSTÉMOVÝ PŘÍSTUP setkal někdy na začátku 70-tých let minulého století a v následujících několika desetiletích analyticko-programátorské praxe měl nespočet příležitostí si ověřit jeho užitečnost. Teorie a vědecké metody kolem systémů a modelování jsou v detailech značně složitou záležitostí, ale na druhé straně základ systémového přístupu vlastně odpovídá pravidlu, že při hledání cesty k určitému cíli musíme nejprve vidět věci z nadhledu a vyhmátnout jádro problému, tj. v podstatných souvislostech i vazbách na okolí, a teprve pak se můžeme zabývat podrobnostmi ...
Rovněž odborná terminologie jako "systém, podsystém, prvek, vazba, úroveň abstrakce, okolí, chování, atd ...", není všeobecně srozumitelná a už samotný pojem "systémový přístup" většině lidí nic neříká. Možná i to je jeden z důvodů, proč tato metoda není využívána v takové míře, jak by ku prospěchu věcí využívána být mohla.
Jde přitom o mimořádně silné nástroje nejen pro popis konkretních reálných systémů a námětů, ale i pro modelování různých životních situací. V zájmu odstranění pojmové bariéry je zde proto používán pojem "systematický přístup", který není sice vědecky přesný, ale v obecném chápání běžně srozumitelný.
Systematický přístup
tedy znamená, že máme-li řešit nějakou složitou záležitost (problém, úkol, program, ...), tak musíme zkoumat vše podstatné, co by mohlo ovlivnit dosažení požadovaného účelu (výsledku zpracování).
Žádná záležitost se ale nikdy nevyskytuje sama o sobě, takže vždy musíme brát v úvahu její vztahy s okolím. V případě návrhu programu jsou to především vstupní a výstupní data, ale i počítačové prostředí, ve kterém má fungovat a samozřejmě možnosti a vhodnost programovacího jazyka či jiných nástrojů v souladu s typem zadané úlohy.
Složitou záležitost (celek) nelze najednou vyřešit do všech podrobností, ale je potřeba si ji rozdělit na zvládnutelný počet dílčích částí (uvádí se max 7). Tyto dílčí části (prvky) je třeba nejprve chápat jako nedělitelný celek, tj. "černou skříňku" a jejím vnitřním uspořádáním se zabývat teprve na další úrovni podrobnosti.
Předpoklad o struktuře
říká, že každý celek by mělo být možno na každé úrovni podrobnosti popsat jako kombinaci tří základních typů prvkové skladby, kterými jsou postupný, alternativní a opakovaný výskyt jejích dílčích částí, Opírá se přitom o matematický důkaz pro popis algoritmů, publikované názory i konkretní zkušenosti. Ty ukazují na možnost obdobné aplikace tohoto principu jak na datové struktury, tak na popisy informačních systémů vůbec.
Systematický přístup po úrovních a zmíněné tři prvkové skladby jsou základem strukturovaného programování, publikovaného v 70-tých letech min. století. To umožnilo doslova revoluční změnu v čitelnosti a srozumitelnosti zdrojových programových textů oproti dřívějšímu nekontrolovanému používání příkazů skoku "go to". Bohužel ale jeho zavádění nemělo rychlou, dostatečně srozumitelnou a jednoznačnou podporu, takže zdaleka ne všude byly tyto možnosti využívány.
Systematický přístup k programování
- náklady na program se rovnají součtu všech nákladů za celou dobu jeho životnosti,
autor píše program jednou, ale on nebo někdo další ho čte mnohokrát, proto musí být čitelný a srozumitelný,
čitelnost a srozumitelnost je tedy priorita, případná optimalizace se musí dělat až následně
- struktura programu by měla odpovídat struktuře zpracovávaného problému,
na problém je potřeba pohlížet "shora dolů", tj. od nejobecnější úrovně do postupného zpřesňování,
samozřejmě je ale také třeba kontrolovat, zda máme vhodně vyřešeny i detaily tj. "zdola nahoru"
- celková struktura textu programu by měla být rozdělena do rozsahově zvládnutelných bloků,
pokud se jedná o proceduru příkazů, každý blok by měl mít jeden vstup a jeden výstup,
vnitřní struktura bloků by měla obsahovat postupný, alternativní a opakovaný výskyt prvků,
obdobná pravidla platí i pro popis definice dat, která program zpracovává
- každá činnost (proces, program, dílčí procedura) má tři základní fáze:
1) ZAČÁTEK = jednorázová příprava
2) vlastní PRÁCE = opakovaná aktivita
3) KONEC = jednorázové ukončení
- při zpracování souborů dat mohou být potřebná další detailnější řešení:
- speciální zpracování prvního záznamu
- v průběhu opakované práce s jednotlivými záznamy se mohou vyskytovat úrovně,
>>> každá má 3 základní fáze
- speciální zpracování posledního záznamu
- počítač je univerzální automat, který má prakticky někonečný počet stupňů volnosti, tj. možností (parametrů), které určují jeho chování, proto je zcela normální, že program nelze vytvořit "z jedné vody na čisto", ale že se musí testovat (ladit), zda splňuje to, co se od něj očekává ...
při hledání, proč něco nefunguje jak má, je užitečné si uvědomit, že "NIC NENÍ TAKOVÉ, ABY TO NEMOHLO BÝT RELATIVNÍ", tj. že musíme systematicky prověřit skutečně vše, co by mohlo být podstatné, i když se to na první pohled tak nejeví ...
- z uvedeného vyplývá, že kromě schopnosti určitého nadhledu a logického myšlení patří k nejdůležitějším předpokladům pro úspěšné programování důslednost a hodně velká míra trpělivosti, ale především jistá forma "pokory" - a to jak vůči počítači, který sám o sobě chybu udělá jen naprosto výjimečně, tak při profesionálním programování vůči uživateli dat, která mu náš program zpracovává ...
programování jako řemeslo, definované v 1. úvodní kapitole, totiž znamená převzetí zodpovědnosti za vše, co je tam zmíněno - takže když něco nefunguje, tak je kromě hledání chyby v programu taky potřeba si především klást otázku, zda to programátor dobře navrhl, zda poskytl uživateli dostatečně srozumitelný návod, atd, atd, ...
jsme totiž stále u profesionální klíčové zásady, že systematicky prověřujeme vše podstatné, co by mohlo ovlivnit výsledek a víme, že to vždycky je a bude relativní ...
3. Unikátní vlastnosti jazyka COBOL
Připravováno ...
4. Minimální slovník pojmů
ROZPRACOVÁNO - samostatná rubrika
5. Struktura programu COBOL
ROZPRACOVÁNO - samostatná rubrika
DEVELOPED ... ČeV, May 2020