Hlavní navigace

Programovací jazyky používané v SSSR (část 1 – DSSP)

23. 2. 2010
Doba čtení: 16 minut

Sdílet

V dnešním článku se seznámíme s jedním, u nás poměrně neznámým, programovacím jazykem, který byl používán pro psaní aplikací na počítačích vyráběných v SSSR. Kromě programovacích jazyků, které jsme si již stručně popsali dříve, byl v SSSR oblíben též jazyk SNOBOL a na počítačích Setuň také DSSP.

Obsah

1. Programovací jazyky používané v SSSR

2. Programovací jazyk DSSP (Dialog System for Structured Programming)

3. Zásobníkové jazyky a RPN

4. Odlišnosti mezi Forthem a programovacím jazykem DSSP

5. Řízení běhu programů v jazyce DSSP

6. Tvorba programových smyček

7. Obsah následující části seriálu

8. Literatura

9. Odkazy na Internetu

1. Programovací jazyky používané v SSSR

V předchozích třech částech tohoto seriálu jsme si popsali některé počítače, které byly vyvinuty v Sovětském Svazu v průběhu padesátých a na začátku šedesátých let minulého století. Prozatím jsme se však zabývali především technickými parametry těchto počítačů, nikoli způsobem jejich programování. První počítače vyráběné v SSSR se programovaly, podobně jako tomu bylo například i u prvních počítačů v USA a samozřejmě i v dalších zemích, přímo ve strojovém kódu, který se zapisoval (zadával) pomocí tlačítek na řídicím panelu buď do operační paměti počítače (typicky se jednalo o feritovou nebo bubnovou paměť), nebo na děrnou pásku či štítek. Ovšem přímý zápis programů ve strojovém kódu je složitý, zdlouhavý a s velkou pravděpodobností vzniku chyb při ručním překladu programu a jeho následném přepisu do paměti. Z tohoto důvodu byly postupně vyvinuty první jednoduché assemblery a později makroassemblery (jedná se o assemblery vybavené preprocesorem umožňujícím tvorbu více či méně složitých maker) a takzvané autokódy, z nichž se později vyvinuly vyšší programovací jazyky (HLL – High(er) Level Languages).

sssr-lang-1

Obrázek 1: Elektronkový počítač Ural-2, jenž se programoval přímo ve strojovém kódu postupným zadáváním instrukcí i jejich operandů v osmičkové soustavě pomocí tlačítek umístěných na řídicím panelu. Tímto způsobem s počítačem Ural-2 v minulosti „konverzoval“ i známý programátor a vizionář Charles Simonyi, po němž je mj. pojmenována maďarská notace zápisu prefixů u jmen proměnných a funkcí (kdo zná například WinAPI, jistě se s touto notací již mnohokrát setkal).

Některé z programovacích jazyků používaných mj. i v SSSR jsme si již v seriálu o historii výpočetní techniky popsali. Jedná se především o FORTRAN (první vyšší programovací jazyk vyvinutý firmou IBM, ale později používaný i v zemích RVHP, především v souvislosti s vývojem počítačů kompatibilních s mainframy firmy IBM), COBOL (v azbuce zapisovaný Кобол) a taktéž ALGOL (Алгол, využitý například i na prozatím nezmíněných počítačích Elbrus a Odra), popř. jeho varianta pojmenovaná Алгэк, která byla jakýmsi hybridem mezi COBOLem a originálním ALGOLem. Ovšem v Sovětském Svazu se používaly i mnohé další programovací jazyky. Dnes si popíšeme jeden z těchto jazyků. Jedná o originální Sovětský programovací jazyk DSSP, který byl původně vyvinut pro tvorbu aplikací na minule popsaném „trojkovém“ počítači Setuň (Сетунь), ale později se z různých důvodů rozšířil i na mnohé další platformy, například i na třicetidvoubitové osobní počítače PC.

sssr-lang-2

Obrázek 2: Počítač IBM System/360 Model 40, kterým se taktéž „inspirovali“ konstruktéři ze zemí RVHP při návrhu počítačů řady JSEP (jednotného systému elektronických počítačů).

2. Programovací jazyk DSSP (Dialog System for Structured Programming)

„One word of text – One word of machine code“

Z instrukčního kódu minule popsaného počítače Setuň (pracujícího z dnešního pohledu velmi netradičně ve vyvážené trojkové soustavě namísto dnes obvyklé soustavy binární) byl na začátku osmdesátých let minulého století odvozen vyšší programovací jazyk nazvaný (v překladu) DSSP neboli Dialog System for Structured Programming. Některé syntaktické i sémantické konstrukce, které můžeme v tomto programovacím jazyku nalézt, pochází z programovacího jazyka Forth Chucka Moorea, ovšem tvůrci DSSP se při návrhu tohoto jazyka, na rozdíl od Forthu, poměrně striktně drželi hesla: „One word of text – One word of machine code“ (jde samozřejmě o slovní hříčku, neboť termín „slovo“ má v tomto hesle dva odlišné významy). To zjednodušeně řečeno znamená, že téměř každé klíčové slovo či speciální znak se přímo překládá do jednoho operačního kódu uloženého v operační paměti v jednom slově, což je v případě počítače Setuň n-tice tritů (viz též předchozí část tohoto seriálu). V následujících odstavcích si velmi stručně popíšeme některé základní konstrukce, ze kterých se programy vytvářené v programovacím jazyce DSSP skládají.

sssr-lang-3

Obrázek 3: Počítač Setuň zpracovávající operandy uložené ve vyvážené trojkové soustavě.

3. Zásobníkové jazyky a RPN

Oba výše zmíněné programovací jazyky, tj. jak „východní“ DSSP, tak i „západní“ Forth, jsou založeny na použití dvou zásobníků. První z těchto zásobníků se nazývá zásobník operandů, druhý zásobník návratových adres. Většina matematických operací je prováděna buď s jedním operandem (uloženým na vrcholu zásobníku operandů, což je místo označované zkratkou TOS neboli Top Of Stack) nebo s dvojicí operandů (první je uložený v TOS, druhý těsně pod prvním operandem). Funkce zásobníku návratových adres je zřejmá – obsahuje adresy, na které se má řízení programu vrátit při opuštění právě prováděné funkce. Poznámka – funkce jsou v programovacích jazycích ForthDSSP označovány termínem slova (words), protože se při jejich definici ani volání nemusí zapisovat jejich parametry, neboť ty jsou vždy uloženy na zásobníku operandů, odkud si je volaná funkce (slovo) může přečíst a následně zpracovat. Zásobník operandů je taktéž použit pro uložení návratových hodnot, kterých může být více (nejenom jedna návratová hodnota, jak je tomu u většiny ostatních programovacích jazyků).

sssr-lang-4

Obrázek 4: Pohled na jiný model počítače Setuň.

Oba programovací jazyky taktéž používají prakticky totožnou syntaxi pro vytváření nových slov (funkcí) i postfixovou notaci (RPN – Reverse Polish Notation) pro zápis matematických a logických výrazů. Následuje několik příkladů zápisu aritmetických výrazů v postfixové notaci, jenž je oběma jazyky používána (a nejenom jimi – viz například tradiční prastará a stále existující a využívaná Unixová utilita dc nebo jazyk PostScript):

Zápis výrazu v RPN Infixový ekvivalent Výsledek
1 2 + 1 + 2 3
1 2 3 * – 1 – 2 * 3 –5
1 2 * 3 – 1 * 2 – 3 –1
1 2 + 3 4 + * (1 + 2) * (3 + 4) 21
4 3 2 1 + + * (1 + 2 + 3) * 4 24

Podrobnější popis RPN najde čtenář například v seriálu o programovacím jazyce Forth nebo programovacích jazycích Joy a Factor, které již na Rootu v minulosti vyšly. Ukažme si ještě, jakým způsobem lze v programovacím jazyku DSSP vytvářet nová slova. Nově definované slovo (funkce) vždy začíná znakem : (tím se interpret jazyka přepne do režimu překladu) a končí znakem ;, který se překládá na instrukci RETURN:

( toto slovo očekává na zásobníku operandů dvě hodnoty, které sečte a výsledek uloží do TOS )
: soucet + ;

( slovo C má v DSSP stejný význam jako slovo DUP ve Forthu - zduplikuje hodnotu v TOS )
( nejprve se tedy nějaká hodnota X zkopíruje, takže zásobník obsahuje dvojici X X )
( posléze se oba shodné operandy vynásobí a výsledek je uložen zpět na vrchol zásobníku )
: mocnina C * ;

( vynulování proměnné X )
( ve Forthu by se toto slovo zapsalo jako 0 X ! ovšem syntaxe DSSP je odlišná)
: clear_x !0 X ;

comp_hist_19_1

Obrázek 5: Chuck Moore – tvůrce jazyka Forth.

4. Odlišnosti mezi Forthem a programovacím jazykem DSSP

DSSP was not invented. It was found. That is why DSSP has not versions, but only extensions. Forth is created by practice. DSSP is created by theory.

Programovací jazyky DSSP a Forth se i přes mnohé společné prvky, jimiž jsme se částečně zabývali v předchozí kapitole, v několika oblastech odlišují. Týká se to především konstrukce podmínek a programových smyček, kterými se budeme zabývat v následující kapitole, ale i některých základních slov, z nichž některé jsou v obou jazycích odlišné. Autoři jazyka DSSP evidentně dávali přednost kratšímu zápisu základních slov, tj. slov (funkcí) implementovaných přímo v jádru jazyka. Ovšem v případě potřeby většinou není velkým problémem si vytvořit slova, jež mají stejný význam jako slova základní. V jazyce DSSP je například možné vytvořit slovo DUP s využitím základního slova C (pravděpodobně se jedná o zkratku ze slova „copy“) následujícím způsobem – : DUP C ;. V tabulce zobrazené pod tímto odstavcem jsou pro ilustraci vypsána některá slova, která jsou v obou programovacích jazycích rozdílná:

DSSP Forth Význam slova
D DROP odstranění operandu z vrcholu zásobníku
C DUP duplikace (kopie) operandu ležícího na vrcholu zásobníku
. DUP . tisk operandu ležícího na vrcholu zásobníku bez jeho odstranění
DD 2DROP odstranění dvou operandů ze zásobníku
SP SPACE vložení ASCII znaku mezery na zásobník operandů

5. Řízení běhu programů v jazyce DSSP

Programovací jazyky DSSP a Forth se kromě odlišných jmen některých základních slov (funkcí) navzájem liší i ve způsobu tvorby podmínek (podmíněných příkazů) a programových smyček. Zatímco jazyk Forth je v tomto ohledu jazykem na poněkud vyšší úrovni, protože jak základní podmínkový příkaz (if-else-then), tak i všechny podporované programové smyčky mohou ve svém těle obsahovat libovolné množství slov, včetně dalších smyček či podmínek, v jazyku DSSP se jeho tvůrci tvrdošíjně drželi svého hesla „One word of text – One word of machine code“, což mj. znamená, že se například v každé větvi podmíněného příkazu může vyskytovat pouze jedno slovo (tj. volání příkazů, které toto slovo představuje).

To je sice z hlediska tvorby aplikací poněkud nepříjemná vlastnost (je to podobné, jako by například v Céčku nebo Javě nebylo možné za příkazem if vytvořit blok pomocí složených závorek {}, ale bylo by povoleno uvést pouze jedno volání funkce či metody), ale je vhodné si uvědomit, že vytváření i volání slov v DSSP či Forthu je velmi jednoduché, dokonce s velikou pravděpodobností mnohem jednodušší, než v jakémkoli jiném programovacím jazyce. Druhá výhoda tohoto přístupu k tvorbě podmínek a programových smyček spočívá v tom, že se tyto příkazy dají přímo převést na instrukce procesoru. Pokud by bylo možné například v obou větvích podmíněného příkazu zapisovat libovolné množství příkazů (tj. programový blok), musel by se plný podmíněný příkaz převést na minimálně jeden podmíněný a jeden nepodmíněný skok tak, jak je naznačeno níže:

        vyhodnocení_podmínky
        if podmínka_splněna jump BLOK1
BLOK2:  první příkaz ve větvi else
        druhý příkaz ve větvi else
        ....
        jump KONEC_PODMINKY
BLOK1:  první příkaz ve větvi then
        druhý příkaz ve větvi then
        ....

KONEC_PODMINKY:

Navíc programovací jazyk DSSP podporuje hned několik podmíněných příkazů, které jsou však, na rozdíl od univerzálního Forthovského příkazu if, specializovány na určitý typ podmínek, jak je to ostatně patrné z popisu uvedeného v následující tabulce. Povšimněte si především existence podmíněného příkazu BRS, který je možné na počítači Setuň přeložit do jediné instrukce, protože se jedná, jak jsme si již řekli v předchozí části tohoto seriálu, o počítač pracující ve vyvážené trojkové soustavě, který většinu instrukcí pro podmíněné skoky nahrazuje právě obdobou slova BRS, v níž se vyhodnocuje znaménko čísla, popř. jeho nulovost (znalci programovacího jazyka FORTRAN možná znají takzvané „aritmetické if“, které je vlastně obdobou tohoto příkazu). Ve skutečnosti jsou všechny ostatní podmíněné příkazy jen variantou příkazu BRS, který je z tohoto pohledu zcela universální (pokud je například zapotřebí porovnávat dvě celočíselné hodnoty, postačuje je nejdříve odečíst, podobně logické výrazy se nejdříve vyhodnotí a testuje se, zda je výsledek nulový či nenulový atd.). Připomeňme si, že zkratkou TOS (Top Of Stack) je označována hodnota ležící na vrcholu zásobníku operandů:

Podmíněný příkaz Význam
IF+ A pokud je operátor ležící na TOS větší než 0, proveď slovo A
IF- A pokud je operátor ležící na TOS menší než 0, proveď slovo A
IF0 A pokud je operátor ležící na TOS nulový, proveď slovo A
BR+ A B pokud hodnota na TOS je větší než 0, proveď slovo A, jinak slovo B
BR- A B pokud hodnota na TOS je menší než 0, proveď slovo A, jinak slovo B
BR0 A B pokud je hodnota na TOS nulová, proveď slovo A, jinak slovo B
BRS A B C TOS záporné: proveď A, TOS nulové: proveď B, jinak proveď C

6. Tvorba programových smyček

Programové smyčky jsou v jazyku DSSP taktéž navrženy takovým způsobem, aby, podobně jako je tomu u podmíněných příkazů, byl jejich překlad do strojového kódu co nejjednodušší. Tento jazyk podporuje pouze dva typy smyček – nepočítanou smyčku (s podmínkou) a počítanou smyčku. Nepočítaná smyčka se zapisuje slovem RP (repeat), za nímž následuje jediné slovo tvořící tělo smyčky. Pokud je po provedení tohoto slova na vrcholu zásobníku uložena nula, smyčka je ukončena, v opačném případě je provedena další iterace. Počítaná smyčka se zapisuje pomocí slova DO, za nímž (jak již jistě tušíte) následuje jediné slovo tvořící její tělo. Před vstupem do této smyčky musí být na vrcholu zásobníku uložen počet opakování, který je v každé iteraci snížen o jedničku – to mj. znamená, že slovo tvořící tělo smyčky sice zásobník může používat (jinak by se v něm nemohly vyskytovat prakticky žádné příkazy ani výrazy), ale po opuštění tohoto slova musí zásobník opět na svém vrcholu obsahovat počitadlo (které ovšem vývojáři aplikací mohou programově změnit, podobně jako je možné například v céčku měnit počitadlo smyčky for).

Programové smyčky je možné opustit též jedním z příkazů EX (exit), EX+, EX- a EX0. Funkce těchto příkazů (slov) je vypsána v následující tabulce:

Příkaz Význam příkazu
EX nepodmíněné opuštění smyčky
EX+ opuštění smyčky za předpokladu, že obsah TOS je větší než 0
EX- opuštění smyčky za předpokladu, že obsah TOS je menší než 0
EX0 opuštění smyčky za předpokladu, že obsah TOS je nulový

Výše uvedená čtveřice příkazů slouží k opuštění nejvnitřnější smyčky (za předpokladu, že jsou smyčky vnořeny). Pokud je zapotřebí vyskočit z více vnořených smyček, je možné použít příkaz EXT, který na zásobníku očekává číslo odpovídající počtu vnořených smyček, z nichž se má vyskočit. Interně toto slovo pracuje tak, že vyjme ze zásobníku návratových adres n hodnot a provede skok na poslední vyjmutou adresu. Záleží jen na programátorech, jakým způsobem ošetří zpracování hodnot uložených na zásobníku operandů.

7. Obsah následující části seriálu

V následující části seriálu o historii výpočetní techniky se zaměříme na popis programovacího jazyka SNOBOL, jenž je (či spíše byl) specializovaný na zpracovávání textů. Jedná se o ideového předchůdce jazyků AWK či Perl, i když sémanticky jde o poněkud odlišný jazyk, který se v některých ohledech podobá spíše konečnému automatu specifikovanému pomocí množiny stavů a přechodových funkcí. Taktéž si vysvětlíme principy snad nejdůležitějšího jazyka, jaký byl ve druhé polovině padesátých let minulého století vytvořen. Jedná se o jazyk LISP, jehož různé varianty se používají dodnes.

CS24_early

8. Literatura

  1. Ankrum,T. Scott
    „COBOL – A Best Practice (Sept, 2001)“
    COBOLReport.com
  2. Arranga,Edmund C.
    „The Viagrazation of COBOL“
    COBOLwebler.com
  3. Arranga, Edmund C. & Price, Wilson
    „Fresh from Y2K, What's next for COBOL? (March/April 2000)“
    IEEE Software
  4. Arranga et al
    „In COBOL's Defense : Roundtable Discussion (March/April 2000)“
    IEEE Software
  5. Badower, Justin
    „COBOL: Foundation of the future“
    COBOLwebler.com
  6. Brown, Gary DeWard
    „COBOL: The failure that wasn't“
    COBOLReport.com
  7. Burger,Thomas Wolfgang
    „COBOL in an open source future (May 2000)“
    IBM developerWorks : Linux : Linux articles
  8. Carr, Donald and Kizior, Ronald J.
    „The Case for Continued COBOL Education (March/April 2000)“
    IEEE Software
  9. Feiman, J.
    „The Gartner Programming Language Survey (October 2001)“
    Gartner Advisory
  10. Glass, Robert L.
    „Cobol – A Contradiction and an Enigma“
    COMMUNICATIONS OF THE ACM September 1997/Vol. 40, No. 9
  11. Griswold R. E., Poage J. F., Polonsky I. P.:
    „The SNOBOL4 Programming Language“
    second edition, Bell Telephone Laboratories, 1968, 1971
  12. Jones, Capers
    „The global economic impact of the year 2000 software problem“
    (Jan, 1997)
  13. Kappelman, Leon A.
    „Some Strategic Y2K Blessings (March/April 2000)“
    IEEE Software
  14. Kizior, Dr. Ronald J. and Carr, Donald and Halpern, Dr. Paul
    „What Professionals think of the Future of COBOL? “
  15. Murach, Mike
    „Is COBOL Dying … or Thriving? (February 2001)“
    The Cobol Newswire
  16. Pagnan, Martin
    „Can A Java Programmer Be Transitioned To Cobol? (Feb, 2002)“
    COBOLReport.com
  17. Reimann, Artur
    „COBOL, Language of Choice – Then and Now (January, 2001)“
    COBOLReport.com
  18. Sayles, Jonathan
    „COBOL and the Enterprise Business Application Programming Legacy“
    MicroFocus Ltd.
  19. Silverberg, Fred
    „COBOL and the Business Programming Paradigm“
    (1996)
  20. Sneed, Harry M.
    „The Evolution of COBOL“
    COBOLReport.com
  21. Wilkinson,Stephanie
    „From the Dustbin, Cobol Rises (May, 2001)“
    eWeek
  22. C.A.R. Hoare:
    „The Emperor's Old Clothes Communications of the ACM“
    1981
  23. IBM:
    „VS BASIC Language, Third edition“
  24. IBM:
    „VS Fortran Application Programming: Language reference“
  25. IBM:
    „IBM System/360 Operating System: ALGOL Language“
  26. B. Randell and L.J. Russell,
    „ALGOL 60 Implementation: The Translation and Use of ALGOL 60 Programs on a Computer“
    Academic Press, 1964. The design of the Whetstone Compiler.
  27. E. W, Dijkstra,
    „Algol 60 translation: an algol 60 translator for the x1 and making a translator for algol 60, report MR 35/61“
    Mathematisch Centrum, Amsterdam, 1961.
  28. Akin, Ed (2003):
    „Object Oriented Programming via Fortran 90/95 (1st ed.)“
    Cambridge University Press. ISBN 0–521–52408–3.
  29. Etter, D. M. (1990):
    „Structured FORTRAN 77 for Engineers and Scientists (3rd ed.)“
    The Benjamin/Cummings Publishing Company, Inc.. ISBN 0–8053–0051–1.
  30. Chapman, Stephen J. (2007):
    „Fortran 95/2003 for Scientists and Engineers (3rd ed.)“
    McGraw-Hill. ISBN 978–0–07–319157–7.
  31. Chapman, Stephen J. (2003):
    „Fortran 90/95 for Scientists and Engineers (2nd ed.)“
    McGraw-Hill. ISBN 0–07–282575–8.
  32. Chivers, Ian; Jane Sleightholme (2006):
    „Introduction to Programming with Fortran (1st ed.)“
    Springer. ISBN 1–84628–053–2.
  33. Ellis, T. M. R.; Ivor R. Phillips, Thomas M. Lahey (1994)
    „Fortran 90 Programming (1st ed.)“
    Addison Wesley. ISBN 0–201–54446–6.
  34. Kupferschmid, Michael (2002):
    „Classical Fortran: Programming for Engineering and Scientific Applications“
    Marcel Dekker (CRC Press). ISBN 0–8247–0802–4.
  35. McCracken, Daniel D. (1961):
    „A Guide to Fortran Programming“
    Wiley.
  36. McCracken, Daniel D. (1965):
    „A Guide to Fortran IV Programming“
    Wiley.
  37. Metcalf, Michael; John Reid, Malcolm Cohen (2004):
    „Fortran 95/2003 Explained“
    Oxford University Press. ISBN 0–19–852693–8.
  38. Nyhoff, Larry; Sanford Leestma (1995):
    „FORTRAN 77 for Engineers and Scientists with an Introduction to Fortran 90 (4th ed.)“
    Prentice Hall. ISBN 0–13–363003-X.

9. Odkazy na Internetu

  1. Vanilla Snobol4 Reference Manual
    http://burks.bton­.ac.uk/burks/lan­guage/snobol/cat­spaw/manual/con­tents.htm
  2. SNOBOL4.ORG – SNOBOL4 Resources
    http://www.sno­bol4.org/
  3. Snobol3 – Snobol 3 Interpreter Implemented in Java
    http://serl.cs­.colorado.edu/~den­nis/software/s3­.html
  4. Exploring Beautiful Languages – A guick look at SNOBOL
    http://langex­plr.blogspot.com/2007/12­/quick-look-at-snobol.html
  5. Rosetta Code: Roman_numerals
    http://rosetta­code.org/wiki/Ro­man_numerals
  6. Category:SNOBOL4
    http://rosetta­code.org/wiki/Ca­tegory:SNOBOL4
  7. An introduction to SNOBOL by James Ford
    http://drofmij­.awardspace.com/sno­bol/
  8. Rosetta Code – Category:COBOL
    http://rosetta­code.org/wiki/Ca­tegory:COBOL
  9. COmmon Business Oriented Language
    http://foldoc­.org/COBOL
  10. COBOL Compilers
    http://www-01.ibm.com/sof­tware/awdtool­s/cobol/
  11. Cobol: Not Dead Yet
    http://www.com­puterworld.com/s/ar­ticle/266156/C­obol_Not_Dead_Y­et?intsrc=kc_rfavs
  12. The future's bright … the future's Cobol
    http://features­.techworld.com/ap­plications/3056/the-futures-bright–the-futures-cobol/
  13. COBOL Example Programs
    http://www.csis­.ul.ie/COBOL/e­xamples/defau­lt.htm
  14. Introduction to COBOL
    http://www.csis­.ul.ie/COBOL/Cou­rse/COBOLIntro­.htm
  15. COBOL programming – tutorials, lectures, exercises, examples
    http://www.csis­.ul.ie/COBOL/
  16. Wikipedia: COBOL
    http://en.wiki­pedia.org/wiki/CO­BOL
  17. Humor on Computers, Systems and Programming
    http://www-crypto.htw-saarland.de/we­ber/misc/program­ming.html
  18. OpenCOBOL
    http://en.wiki­pedia.org/wiki/O­penCOBOL
  19. OpenCOBOL.org
    http://openco­bol.org/
  20. OpenCOBOL FAQ
    http://openco­bol.add1tocobol­.com/
  21. TinyCOBOL
    http://tiny-cobol.sourcefor­ge.net/
  22. TinyCOBOL FAQ
    http://tiny-cobol.sourcefor­ge.net/docs/faq/
  23. JTC1/SC22/WG4 – COBOL
    http://ra.dku­ug.dk/jtc1/sc2­2/wg4/
  24. COBOL on COGS
    http://www.co­boloncogs.org/IN­DEX.HTM
  25. Cobol Coders: Going, Going, Gone?
    http://www.com­puterworld.com/s/ar­ticle/266228/C­obol_Coders_Go­ing_Going_Gone_
  26. Rosetta Code – Category:Fortran
    http://rosetta­code.org/wiki/For­tran
  27. Rosetta Code – Category:Lisp
    http://rosetta­code.org/wiki/Ca­tegory:Lisp
  28. Algol 68 – 25 Years in the USSR
    http://www.com­puter-museum.ru/english/al­gol68.htm
  29. Charles Simonyi
    http://en.wiki­pedia.org/wiki/Char­les_Simonyi
  30. Charles Simonyi
    http://cs.wiki­pedia.org/wiki/Char­les_Simonyi
  31. Charles Simonyi returns to space
    http://www.char­lesinspace.com/
  32. Charles Simonyi
    http://www.sha­mit.org/charles_si­monyi.htm
  33. Minsk Family of Computers
    http://www.com­puter-museum.ru/english/min­sk0.htm
  34. Minsk family of computers
    http://en.wiki­pedia.org/wiki/Min­sk_family_of_com­puters

Byl pro vás článek přínosný?

Autor článku

Vystudoval VUT FIT a v současné době pracuje na projektech vytvářených v jazycích Python a Go.