autor: Vladimír Vérosta,
Ano, dnes je Silvestr roku 2014, tedy pokud to dobře počítám, propast času, celých 49 let a nějaký měsíc tomu od chvíle, kdy jsem v říjnu 1965 začal studium na brněnské UJEP, dnešní MU, přírodovědecké fakultě, čiré řízení osudu mně postavilo na startovní čáru oboru odborná matematika. Po absolvování nezbytných všeobecných základních matematických semestrů jsem přilnul k tehdy specializaci s názvem "numerická matematika", která se hlavně díky osobnosti docenta Jiřího Hořejše, našeho velkého a oblíbeného učitele věnovala tzv. počítačovým vědám.
Na svoji dobu jsme dostali solidní teoretické základy o principech fungování počítačů, o jejich operačních systémech, a hlavních pilířích jejich aplikačního vybavení. Jako studenti jsme si sami vedli semináře o programovacích jazycích, např. Cobol a Algol. Žádnou teorii ovšem nenahradí dobře organizovaná a na vlastní kůži prožitá praxe.
Jedno z nejznámějších brněnských ulic je Údolní, která se společně s klasickou tramvají číslo 4 vine z Komenského náměstí západním směrem, překonává rušnou ulici Úvoz a pak se nadechne až pomalu do výšky brněnské hvězdárny a končí v dnešní Masarykově čtvrti. Vlastně hned zpočátku poblíž Komenského náměstí se v jednom z domů po levě straně nacházela Laboratoř výpočetní techniky VUT (nebo tak nějak se to jmenovalo), kde byl v lednu 1966 instalován počítač Minsk 22 (produkce tehdejšího SSSR), který se zde používal jako pro účely výzkumu tak i výuky studentů tehdejších brněnských vysokých škol.
V místnosti velikosti menší tělocvičny se nacházela řada skříní plných tehdejší elektroniky, jejichž směšná výkonnost by se dnes vešla do poloviny hloupějšího mobilu. :-) někde se mně podařilo přece jenom sehnat jakýsi ilustrační obrázek.
Po jistém počtu základních přednášek a pár hodinách cvičení věnovaných našemu vzdělávání v jazyce Algol, jsme se rozdělili na týmy po dvou lidech a dostali praktické zadání, Já s kolegou Oldřichem jsme měli rozlousknout načtení dvou čísel a následně vytisknout jejich maximum. Dnes směšně jednoduché, v Javě vyřízeno za minutu!
Nás však čekalo několik úskalí: vymyslet algoritmus, vyjádřit ho v jazyce ALGOL, připravit data, ona dvě čísla ke srovnání. Katedra matematiky byla vybavena dálnopisnými stanicemi, které nesloužily k odesílání dálnopisů, ale k psaní zdrojových textů v Algolu, protože, co se tam na klávesnici podařilo naťukat, to se objevilo ve formě 5-tistopé děrné pásky, která z toho lezla ven. Jak taková děrná páska vypadala??
(red-pozn:
na obrázku je 8-stopá páska bez paritního bitu vlevo, příklad 5-stopé vč. kódování viz komentář dále - ČeV)
Skutečně papírová páska se sloupci, ve kterých bylo pomocí systému dírek-nedírek kódováno asi 32 dostupných znaků. Pokud se člověk při psaní spletl nebo potřeboval již hotovou pásku opravit, přišly ke slovu nůžky, lepidlo a pomocné děrovátko, aby se nepotřebné dírky zalepily, nové chybějící dírky ručně udělaly, páska potřebným způsobem zkrátila či prodloužila. Pro operativní výkon vývojáře naprosto rozkošné a efektivní prostředí!!
Takže jsme s Oldou vymysleli algoritmus, Olda ho naťukal do dálnopisu a náš první zdroják pořízený na tehdy ještě papírovém médiu byl na světě. Jo a ještě krátká páska se dvěma vstupními čísly. Ve stanovenou dobu, někdy odpoledne to bylo, jsme se ještě s dalšími dostavili na Údolní, nazuli galoše a vstoupili do světa počítačů! Jemné šumění klimatizace bylo občas přerušované svištěním načítané děrné pásky, pocvakáváním pracujících magnetopáskových jednotek, do vzduchu zavrčela tiskárnička, na které vystupovaly výsledky.
Vlastně jsme se postavili do fronty, která se utvořila u ovládacího dálnopisu, až na nás došla řada, operátorka do paměti nechala z magnetické pásky načíst kompilátor Algolu, do snímače jsme založili naše dílo, svist a text programu se načetl a přeložil. Na další pokyn jsme do snímače založili pásku se vstupními čísly a pak už jen krátké zarachocení výstupní tiskárničky dalo vědět, že komedie je u konce!
Ano obě dvě vstupní čísla sice byla správně vypsána v protokolu, ale výsledek pod nimi nebylo požadované maximum, nýbrž minimum! Téměř jsme se trefili, žádný učený s nebe nespadl, říkali jsme si s Oldou, sice nás to trochu vzalo, ale přesto jsem tenhle první pokus z nejprvnějších oslavili řízným pivem v nedaleké hospůdce! A naprosto jsem v tu chvíli netušil, že jako IT budu mít v roce 2015 za sebou 45 let praxe v oboru.
A od té doby, poučen nezdarem, píšu (skoro :-) ) všechny příkazy IF správně a bez chyb !!
Vladimír Vérosta - Brno, leden 2015
P.S. Zdrojový kód našeho "superdíla" si přesně nepamatruji, mohlo to ale vypadat asi nějak takhle:
main:
(
INT operanda = read int; # read first number #
INT operandb = read int; # read second number #
INT max; # here store maximum #
# print both input operans #
print (operanda);
print (operandb);
# find maximum and print it #
IF operanda > operandb THEN
max := operanda
ELSE
max := operandb
FI;
print (" maximum number is ");
print (max)
)
pracovní varianta ČeV:
main: ( INT cislo1 = read int; INT cislo2 = read int; INT maximum; print (cislo1); print (cislo2); IF cislo1 > cislo2 THEN maximum := cislo1 ELSE maximum := cislo2 FI; print (" maximum z cisel je "); print (maximum) )
(red-pozn: prezentovaný kód je přizpůsoben tak, aby fungoval pod současným kompilátorem www.tutorialspoint.com/execute_algol_online - jak asi vypadal v 60-tých letech min. století na Minsku je diskutováno v komentáři dále - ČeV)
postup pro on-line ověření příkladu:
- zkopírovat text z rámečku na stránku kompilátoru do okna zdrojového textu v záložce "main.alg"
- do okna stand. vstupu v záložce "STDIN" vložit čísla 1 a 2, oddělena mezerou, nebo novým řádkem
- kliknout na záložku "Execute" pro kompilaci, spuštění programu a zobrazení výstupu
zrojový text příkladu i data lze libovolně modifikovat a spouštět opakovaně ...
Komentáře
viz též https://cs.wikipedia.org/wiki/Děrná_páska
definice kódu ukazuje, že byla k dispozici jen velká písmena a nebyl znak "#", který se dnes používá pro komentáře ...
rovněž kódová tabulka pro dálnopis (odkaz výše), který se využíval jako vstup dat pro Minsk, malou abecedu nemá ...
z uvedeného by mělo vyplývat, že se programy asi musely psát pouze velkými písmeny, podobně jako na dalších sálových počítačích té doby - osobně jsem s Minskem nepracoval, ale na Tesle 200 v roce 1970 to tak bylo ...
RSS informační kanál komentářů k tomuto článku.