Hlavní navigace

IBM a sedm trpaslíků - interaktivní operační systém DTSS na počítačích řady GE-200

7. 4. 2011
Doba čtení: 21 minut

Sdílet

V dnešní části seriálu o historii vývoje výpočetní techniky se zaměříme na popis operačního systému nazvaného Dartmouth Time Sharing System (DTSS), který byl původně provozovaný na počítačích General Electric řady GE-200. Tento operační systém změnil náhled na způsob ovládání počítačů (nejenom mainframů).

Obsah

1. Jazyk symbolických instrukcí i vyšší programovací jazyky na mainframech GE-200

2. Překladače programovacích jazyků a jejich nedostatky při programování sálových počítačů

3. Dartmouth Time Sharing System – DTSS

4. Interaktivní způsob práce s DTSS

5. Vznik programovacího jazyka BASIC na systému DTSS

6. Příkazy dostupné v prvních verzích programovacího jazyka BASIC

7. Vliv DTSS na další vývoj operačních systémů

8. Mainframy General Electric, systém DTSS a UNIX

9. Odkazy na Internetu

1. Jazyk symbolických instrukcí i vyšší programovací jazyky na mainframech GE-200

V předchozí části seriálu o historii vývoje výpočetní techniky jsme se seznámili jak s technickými parametry sálových počítačů řady GE-200 (konkrétně s mainframy nesoucími označení GE-215, GE-225 a GE-235), tak i s programovacími jazyky, které byly na těchto počítačích zpočátku používány a podporovány přímo společností General Electric. Z nižších programovacích jazyků měli vývojáři na výběr mezi jazykem symbolických instrukcí nazvaným General Assembly Program (zkráceně GAP) a plnohodnotným assemblerem se jménem ZOOM, který mj. podporoval i tvorbu maker. K těmto nízkoúrovňovým programovacím jazykům můžeme připočíst i specializovaný jazyk WIZ, který sloužil pro překlad aritmetických a logických výrazů do strojového kódu. Tyto přeložené výrazy bylo díky kompatibilnímu binárnímu formátu samozřejmě možné volat jak z assembleru (přesněji řečeno z programů napsaných v jazyku symbolických instrukcí), tak i z programů vytvořených v některém vyšším programovacím jazyku.

Obrázek 1: Procesorová jednotka sálového počítače GE-225.
Autor fotografie: Ed Thelen

Vyšší programovací jazyky byly na mainframech dostupné přes nástroj nazvaný GECOM, což je zkratka plného názvu General Compiler. Tento nástroj podporoval především dvojici programovacích jazyků COBOL a ALGOL, kterými jsme se podrobněji zabývali v předchozích částech tohoto seriálu. Kromě těchto v podstatě obecných programovacích jazyků byl nástrojem GECOM podporován i specializovaný jazyk GECOM Report Writer, jehož jméno přesně vystihuje oblast jeho použití (tvorba tiskových sestav), a taktéž programovací jazyk TABSOL, který byl specializovaný na programování úloh, v nichž se používaly rozhodovací tabulky. Díky možnosti vzájemné kombinace jednotlivých programovacích jazyků podporovaných nástrojem GECOM bylo možné psát nízkoúrovňové rutiny aplikace v assembleru, základní rutiny v COBOLu a/nebo v ALGOLu, rozhodovací část aplikace (dnes je moderní používat termín „business logika“) v TABSOLu a definici výstupních sestav bylo možné provést v GECOM Report Writeru.

Obrázek 2: Pohled na vnitřní uspořádání procesorové jednotky sálového počítače GE-225.
Autor fotografie: Ed Thelen

2. Překladače programovacích jazyků a jejich nedostatky při programování sálových počítačů

I přes na svou dobu velmi široké spektrum programovacích jazyků, které jsme si stručně představili v předchozí kapitole však nebyla nabídka jazyků úplná do té míry, aby vyhovovala potřebám všech uživatelů a programátorů mainframů. Z tohoto důvodu byl pro sálové počítače řady GE-200 vyvinut i překladač programovacího jazyka FORTRAN II, který spolu s COBOLem patřil až do poloviny šedesátých let minulého století mezi nejpoužívanější jazyky na sálových počítačích. Ovšem všechny výše zmíněné programovací jazyky, ať již se jednalo o assemblery či o vyšší programovací jazyky, trpěly jedním poměrně závažným nedostatkem – zdrojové texty programů se nejdříve musely napsat na specializované formuláře (pro každý jazyk byl určen jiný formulář), poté se texty napsané na formulářích vyděrovaly na děrné štítky, což se provádělo na mechanickém či elektromechanickém zařízení bez jakékoli návaznosti na počítač a teprve poté bylo možné děrné štítky umístit do čtečky, která zapsané zdrojové texty postupně načítala a předávala překladači.

Obrázek 3: Jednotka pro přípravu děrných štítků.

Pokud nastala při překladu zdrojového textu chyba (vypsaná většinou na systémovou tiskárnu nebo do generovaného listingu programu), nebo i úspěšně přeložený program nevykonával takovou činnost, jakou programátor zamýšlel, musel se celý postup překladu znovu opakovat. Díky tomu, že se pořadí děrných štítků mohlo měnit, nemusel se většinou přepisovat celý program, ale pouze se do něj mohly doplňovat (či nahrazovat) další příkazy, i tak se však jednalo o velmi zdlouhavou činnost, která navíc vyžadovala spolupráci mezi programátorem, pracovníky, kteří program vyděrovali na děrné štítky a operátory pracujícími přímo se sálovým počítačem. Určité zrychlení přineslo použití dálnopisů pro zápis programů na děrné pásky s tím, že se při opravě programu musela většinou vytvořit nová páska, popř. přišly ke slovu nůžky a lepidlo. Děrná páska se v místě opravy přestřihla a při troše trpělivosti se mohlo přestřižené místo nahradit kusem nové pásky – i z tohoto důvodu také mnoho tehdejších programátorů znalo nazpaměť kódování EBCDIC či ASCII, aby dokázali kód na pásce číst z hlavy a tak snadno najít místo, které je potřeba opravit.

Obrázek 4: Část programu napsaného v programovacím jazyce TABSOL na formuláři určeném k vyděrování a následnému překladu (kompilaci).

3. Dartmouth Time Sharing System – DTSS

Řešení s dálnopisy přinášelo i tu výhodu, že programátor nemusel po každé změně ve zdrojových textech svého programu cestovat s děrnými štítky do budovy, kde se nacházel sálový počítač (nebo zařízení pro přípravu děrných štítků), ale mohl svůj program přenést přímo pomocí dálnopisu, resp. při použití běžné telefonní linky přes modem, který většinou obsahoval „kolébku“ pro položení telefonního sluchátka – přenos dat byl prováděn přes běžný telefon (některé modernější dálnopisy již externí telefon nepotřebovaly). Počítač navíc mohl všechny zprávy překladače tisknout pomocí dálnopisu přímo u stolu programátora. Ovšem i tento způsob použití dálnopisu nebyl zcela dokonalý, protože ve svých prvopočátcích vedl k tomu, že se celý mainframe (resp. jeho operační systém) musel věnovat jedinému uživateli, který prováděl překlad svého programu, nebo již přeloženou aplikaci spouštěl. Počet uživatelů obsloužených za jeden den byl při tomto způsobu práce relativně nízký a navíc bylo nutné zavádět a dodržovat časové plány určující termíny připojení jednotlivých uživatelů.

Obrázek 5: Starší typ dálnopisu. Na levé straně je umístěna jednotka pro děrování i čtení děrné pásky, na pravé straně pak klávesnice.

Zatímco při použití sálových počítačů v bankách, pojišťovnách či podobných institucích nebyl problém obsluhy více uživatelů zpočátku příliš omezující, protože se na těchto mainframech většinou spouštěly dlouhotrvající dávkové úlohy, byla situace zcela odlišná na vysokých školách, kde měly sálové počítače sloužit mj. i pro výuku programování, popř. pro implementaci různých výpočtů z oblasti matematiky, fyziky, chemie atd.. To znamenalo, že „univerzitní“ počítače musely zpracovávat větší množství spíše krátkodobějších úloh denně (překlad programu trval několik desítek sekund až jednotek minut, což byla mnohem kratší doba, než například výpočet mezd ve větší společnosti). Z toho důvodu, aby se toto omezení vyřešilo, se začal na Dartmouth College (jedna z prestižních univerzit v USA) již v roce 1963 vyvíjet systém, který by umožnil současnou práci více uživatelů na jednom mainframu, přičemž by jednotliví uživatelé pro komunikaci se sálovým počítačem používali dálnopisy upravené do podoby počítačových terminálů. Vývoj tohoto systému byl veden Johnem Kemenym a Thomasem Kurtzem, kteří při programování tohoto systému spolupracovali s několika svými studenty.

Obrázek 6: Dálnopis ASR-33, který byl poměrně často používaný i jako levná a relativně kvalitní tiskárna.

4. Interaktivní způsob práce s DTSS

Výsledný produkt spolupráce Johna Kemenyho, Thomase Kurtze a skupiny studentů (první použitelná verze jejich systému byla představena již roku 1964), jenž byl nazván Dartmouth Time-Sharing System – DTSS, byl zprvu provozován na sálovém počítači GE-235 vybaveného dálnopisy Datanet 30. Tyto terminály se však nepřipojovaly přímo k mainframu GE-235, ale k jednoduššímu počítači nazvanému Datanet (tedy podobně, jako vlastní dálnopisy), který požadavky z dálnopisů vhodným způsobem předpřipravil pro zpracování mainframem GE-235. Systém DTSS na této konfiguraci umožňoval souběžnou práci několika desítek uživatelů. Po přenosu operačního systému DTSS na modernější a výkonnější mainframy řady GE-600 (konkrétně na typ GE-635) se výkon celého systému zvýšil takovým způsobem, že počet souběžně pracujících uživatelů dosáhl téměř neuvěřitelné hodnoty 300! John Kemeny, který byl, jak již víme, jeden z autorů systému DTSS, ještě před svým působením v Dartmouth College pracoval ve výzkumných laboratořích v Los Alamos (jedná se o známé laboratoře, kde ve čtyřicátých a padesátých letech probíhal intenzivní výzkum v oblasti jaderné fyziky).

ibm-5

Obrázek 7: Manuál k první verzi FORTRANu určeného pro mainframy IBM 704.

Zde John Kemeny tvořil výpočetní a simulační programy a taktéž si sám připravoval děrné štítky se zdrojovými kódy aplikací, které byly následně dávkově (někdy i po delší době) překládány tehdejšími sálovými počítači. Právě při této činnosti si Kemeny uvědomil, jak je tento dávkový způsob práce ve skutečnosti krkolomný, a vzápětí se stal propagátorem interaktivního způsobu práce s počítačem, při němž uživatel zadává mainframu příkazy konverzačním způsobem a počítač následně tyto příkazy vykonává a ihned tiskne veškerá chybová hlášení i výstupy příkazů. Právě díky systému DTSS a dálnopisům se interaktivní způsob komunikace s počítačem stal skutečností – uživatelé (většinou studenti) mohli s počítačem konverzovat takovým způsobem, že napsali příkaz na dálnopisu, tento příkaz byl mainframem vykonán a výsledek se ihned poté vypsal na elektronickém psacím stroji, kterým byl dálnopis vybaven (tento psací stroj mohl taktéž „opisovat“ příkazy zapsané uživatelem). Při čekání na zadání nového příkazu mohl mainframe díky způsobu implementace DTSS vykonávat jiné činnosti, tj. obsluhovat další uživatele, což mnohdy ve výsledku poněkud paradoxně vedlo k lepšímu využití strojového času, než tomu bylo na mainframech orientovaných výhradně na zpracování dávkových úloh.

ibm-5

Obrázek 8: Ukázka programu napsaného ve FORTRANu II, ve kterém můžeme mj. vidět i použití aritmetického IF.

5. Vznik programovacího jazyka BASIC na systému DTSS

Se systémem DTSS je prakticky nerozlučně spojen i programovací jazyk BASIC, jenž byl na tomto systému vyvinut. Nejednalo se v žádném případě o náhodu, ale o cílený vývoj, protože některé vlastnosti BASICu, především jeho interaktivní způsob komunikace s uživatelem (jednalo se sice původně o překladač, ovšem program byl při zápisu kontrolován) i jednoduchost tvorby programů přesně odpovídala potřebám výuky programování, samozřejmě s ohledem na stav výpočetní techniky v polovině šedesátých let minulého století (dnes již jsou samozřejmě k dispozici zcela jiné technické prostředky, včetně grafických displejů a operačních systémů nabízejících plnohodnotné GUI). Programovací jazyk BASIC byl navržen takovým způsobem, aby v něm bylo možné interaktivně vytvářet programy, a to i v případě, že se uživatel k sálovému počítači připojoval „pouze“ s využitím dálnopisu. Omezení na použití dálnopisu ovšem do značné míry vylučovalo použití plnohodnotného textového editoru a tím do značné míry i blokovou strukturu programů psaných v BASICu.

Obrázek 9: John Kemeny a Thomas Kurtz.

Namísto toho byl původní interpret programovacího jazyka BASIC orientován na zápis programových řádků, které byly očíslovány, tj. na začátku každého řádku bylo uvedeno jeho číslo s tím, že se programové řádky automaticky po svém zápisu na klávesnici dálnopisu zařazovaly podle svého čísla na správné místo v programu. To mj. znamenalo, že vývojář mohl zapisovat programové řádky v libovolném pořadí a navíc při zadání řádku se stejným číslem, jaké měl již existující řádek, došlo k přepisu původního obsahu tohoto programového řádku novou sekvencí příkazů. S číslováním řádků částečně souvisely i příkazy GOTO a GOSUB, které obsahovaly číslo cíle skoku a nikoli (textové) návěští. Používání čísel řádků v BASICových programech bylo sice o mnoho let později – již v dobách celoobrazovkových terminálů a domácích i osobních počítačů – kritizováno, ovšem s ohledem na dobu vzniku BASICu a možností, které v té době poskytovala dostupná technika (dálnopisy) se jednalo o velmi dobrý návrh, což je ostatně potvrzeno i tím, že BASIC ve své téměř původní podobě přežil do dob, kdy se jeho způsob zápisu programů již stal v mnoha ohledech zastaralý (mezitím ostatně přišla éra strukturovaného programování i programování objektově orientovaného).

Obrázek 10: Dálnopis Datanet používaný v systému DTSS.

6. Příkazy dostupné v prvních verzích programovacího jazyka BASIC

John Kemeny a Thomas Kurtz navrhli programovací jazyk BASIC s ohledem na to, aby se jednalo o jazyk využitelný pro prakticky libovolné úlohy, který by byl jednoduchý a současně i nezávislý na použitém hardware i operačním systému. Některé příkazy (jejich syntaxe i sémantika) jsou založeny na FORTRANu a ALGOLu, ovšem oproti oběma zmíněným jazykům byly první verze BASICu mnohem jednodušší a v několika ohledech i omezenější – na rozdíl od ALGOLu například BASIC po velmi dlouhou dobu postrádal možnost definice víceřádkových funkcí či uživatelských datových typů, FORTRAN navíc nabízel například funkce pro práci se soubory, formátovací příkazy, podporu pro komplexní čísla a od verze FORTRAN II taktéž uživatelské podprogramy. Původní verze BASICu byla skutečně velmi jednoduchá, což je pro výuku základů programování spíše pozitivní vlastnost – jazyk obsahoval pouze osmnáct příkazů, deset funkcí a neumožňoval deklarovat vícerozměrná pole ani řetězce.

Obrázek 11: Přední stránka manuálu k historicky první verzi programovacího jazyka BASIC.

Příkazy dostupné v první verzi BASICu jsou vypsány v následující tabulce:

Příkaz Popis
REM začátek komentáře
DEF definice jednořádkové funkce
DIM definice jednorozměrného pole
LET přiřazení hodnoty výrazu do proměnné
GOTO skok na zadané číslo řádku
GOSUB skok do (nepojmenovaného) podprogramu
RETURN návrat z podprogramu
IF začátek podmínky
THEN začátek těla podmínky
FOR začátek počítané smyčky
TO za tímto příkazem je koncová hodnota počitadla smyčky
STEP krok, o který se změní počitadlo smyčky po jedné iteraci
NEXT konec počítané smyčky
PRINT tisk výsledné hodnoty výrazu
DATA datová sekce programu obsahující statická data
READ načtení hodnot uložených v sekci DATA
STOP zastavení programu na tomto příkazu
END konec programu, jedná se o příkaz umístěný na posledním řádku

Obrázek 12: Program zapsaný v AppleSoft BASICu spuštěný na počítači Apple II.

7. Vliv DTSS na další vývoj operačních systémů

I když byl operační systém DTSS určen především pro použití na univerzitách (s čímž souvisel i zpočátku poněkud jednodušší plánovač úloh), byl jeho vliv na vývoj dalších operačních systémů poměrně velký. Možnosti souběžné práce většího množství uživatelů a současně i podpora interaktivní komunikace s počítačem se o několik let později stala součástí i některých dalších operačních systémů a obliba konverzační práce uživatele s počítačem (většinou prováděná přes příkazový řádek, který nám v prakticky nezměněné podobě vydržel dodnes) se ještě více zvětšila ve chvíli, kdy se k sálovým počítačům a později i k minipočítačům začaly dodávat terminály vybavené klávesnicí a monitorem (resp. obrazovkou).

Obrázek 13: Práce s numerickými proměnnými a poli v BASICU. Povšimněte si, že na řádku 50 se do proměnné A vloží hodnota 0 a současně se vytvoří numerické proměnné B a C inicializované na nulu. Dále se na řádku 70 vytvoří desetiprvkové pole, na řádku 80 se nastaví hodnota prvního prvku tohoto pole na 42 a na řádku 100 se vypíše hodnota zdánlivě neinicializovaného prvku číslo 2 (který je ve skutečnosti automaticky nastaven na nulu).

Tím se vlastně oklikou (trvající padesát dílů :-) dostáváme zpět k úvodním částem tohoto seriálu, v nichž jsme se zabývali popisem minipočítačů PDP a vznikem operačního systému UNIX, který již od svých prvních verzí podporoval souběžnou práci uživatelů a samozřejmě i ovládání přes příkazový řádek.

Obrázek 14: Demonstrační příklad zapsaný v Sinclair BASICu. Jednotlivé příkazy nebyly vypisovány znak po znaku, ale použily se klávesové zkratky, které si uživatelé nemuseli pamatovat, neboť je měli natištěné přímo na klávesnici.

root_podpora

8. Mainframy General Electric, systém DTSS a UNIX

Připomeňme si, že v roce 1968 Ken Thompson a jeho kolegové vytvořili na sálovém počítači GE-635 (kde mohl být mj. provozován i systém DTSS) hru Space Travel, ovšem strojový čas tohoto stroje byl velmi drahý, takže vedení firmy samozřejmě nebylo spokojeno s tím, že se výkonný počítač využívá pro hraní a ne pro vážnou práci (což je možná trošku paradoxní, protože právě práce na této hře vedly ke vzniku mnoha zajímavých technologií). Ken Thompson se tedy rozhodl, že hru přepíše tak, aby ji bylo možné spustit na mnohem jednodušším počítači PDP-7, ovšem takovým způsobem, aby s počítačem mohli pracovat i další uživatelé – jinými slovy, musel se vytvořit operační systém podporující multiuživatelský režim. Ovšem kvůli omezeným technickým možnostem PDP-7 pokračoval vývoj operačního systému, který byl později nazván UNIX, stále na mainframu GE-635 s využitím makroassembleru GEMAP, což je vzdálený potomek již dnes zmíněného assembleru GAP (General Assembly Program). Teprve později bylo jádro UNIXu přepsáno do céčka, což však již s mainframy GE příliš nesouvisí :-)

pdp2

Obrázek 15: Známá fotografie Kena Thompsona a Dennise Ritchieho sedících před PDP.

9. Odkazy na Internetu

  1. General Electric GE-400
    http://www.feb-patrimoine.com/PRO­JET/ge400/ge-400.htm
  2. GE-400 Time-sharing information systems:
    http://www.com­puterhistory.or­g/collections/ac­cession/102646147
  3. A brief history of the development of BASIC
    http://www.phys­.uu.nl/~bergman­n/history.html
  4. History of BASIC (PDF)
    http://www.q7ba­sic.org/Histo­ry%20of%20BASIC­.pdf
  5. The History of the Mainframe Computer
    http://www.vi­kingwaters.com/htmlpa­ges/MFHistory­.htm
  6. Dartmouth Time Sharing System
    http://en.wiki­pedia.org/wiki/Dar­tmouth_Time_Sha­ring_System
  7. General Electric (Wikipedia)
    http://en.wiki­pedia.org/wiki/Ge­neral_Electric
  8. GE 225 vs. IBM 1401
    http://ed-thelen.org/GE225-IBM1401.html
  9. A GE-225 is found
    http://ed-thelen.org/comp-hist/GE225.html
  10. G.E. 200 Series Computers
    http://www.smec­c.org/g_e__200_s­eries_computer­s.htm
  11. DTSS – Dartmouth Time Sharing System
    http://dtss.dar­tmouth.edu/in­dex.php
  12. John G. Kemeny: BASIC and DTSS: Everyone a Programmer
    http://dtss.dar­tmouth.edu/eve­ryoneaprogram­mer.php
  13. GE-200 series (Wikipedia)
    http://en.wiki­pedia.org/wiki/GE-200_series
  14. GE-400 series (Wikipedia)
    http://en.wiki­pedia.org/wiki/GE-400_series
  15. GE-600 series (Wikipedia)
    http://en.wiki­pedia.org/wiki/GE-600_series
  16. Mainframe – Introduction
    http://www.thoc­p.net/hardware/ma­inframe.htm
  17. Craig Jensen (as programmer)
    http://www.cra­igjensen.com/pro­grammer.html
  18. Honeywell 800 (1958)
    http://www.cs­.clemson.edu/~mar­k/h800.html
  19. Real Machines with 24-bit and 48-bit words
    http://www.qu­adibloc.com/com­p/cp0303.htm
  20. Honeywell ARGUS
    http://en.wiki­pedia.org/wiki/Ho­neywell_ARGUS
  21. Honeywell Datamatic 1000
    http://www.smec­c.org/honeywe­ll_datamatic_1000­.htm
  22. Honeywell
    http://en.wiki­pedia.org/wiki/Ho­neywell
  23. Whatever Happened to IBM and the Seven Dwarfs? Dwarf Four: Honeywell
    http://www.dvo­rak.org/blog/ibm-and-the-seven-dwarfs-dwarf-four-honeywell/
  24. Datamatic 1000 by DATAmatic Corporation (1955)
    http://www.com­putermuseum.li/Tes­tpage/Datamatic-1000.html
  25. Burroughs – Third Generation Computers
    https://wiki.cc­.gatech.edu/fol­klore/index.php/Bu­rroughs_Third-Generation_Com­puters
  26. NX bit (používán u některých moderních mikroprocesorů)
    http://en.wiki­pedia.org/wiki/NX_bit
  27. Burroughs B5000, B5500 and B5700 (original) documentation
    http://www.bit­savers.org/pdf/bu­rroughs/B5000_55­00_5700/
  28. Burroughs B6500 and B6700 (original) documentation
    http://www.bit­savers.org/pdf/bu­rroughs/B6500_67­00/
  29. Burroughs B8500 (original) documentation
    http://www.bit­savers.org/pdf/bu­rroughs/B8500/
  30. ALGOL in the early 1970s
    http://www.sim­nia.com/it/cly­cl/algol/algol­.htm
  31. Burroughs: IF (Dec, 1961)
    http://blog.mo­dernmechanix.com/2009/02­/10/burroughs-if/
  32. Burroughs B5000: Encyclopedia II – Burroughs B5000 – ALGOL
    http://www.ex­periencefesti­val.com/a/Burrou­ghs_B5000_-_ALGOL/id/4823149
  33. HOW ASCII GOT ITS BACKSLASH
    http://www.bob­bemer.com/BAC­SLASH.HTM
  34. Burroughs B5000 Computer
    http://www.cs­.uaf.edu/2010/fa­ll/cs441/proj1/b5000/
  35. Burroughs large systems (Wikipedia)
    http://en.wiki­pedia.org/wiki/Bu­rroughs_large_sys­tems
  36. Burroughs large systems instruction sets (Wikipedia)
    http://en.wiki­pedia.org/wiki/Bu­rroughs_large_sys­tems_instructi­on_sets
  37. William Seward Burroughs
    http://history-computer.com/Mecha­nicalCalculator­s/19thCentury/Bu­rroughs.html
  38. Burroughs Corporation (Wikipedia)
    http://en.wiki­pedia.org/wiki/Bu­rroughs_Corpo­ration
  39. Adding machine (Wikipedia)
    http://en.wiki­pedia.org/wiki/Ad­ding_machine
  40. Burroughs B-205
    http://www.an­gelfire.com/sci­fi/B205/
  41. Burroughs 205 Hardware Package Design
    http://tjsawy­er.com/B205Pkg­.htm
  42. ERA 1101 Documents
    http://ed-thelen.org/comp-hist/ERA-1101-documents.html
  43. Ukázkový program pro UNIVAC 1101/ERA 1101
    https://wiki.cc­.gatech.edu/fol­klore/index.php/En­gineering_Rese­arch_Associates_an­d_the_Atlas_Com­puter_(UNIVAC_1101)
  44. UNIVAC I Computer System
    http://univac1­.0catch.com/
  45. UNIVAC I Computer System
    http://univac1­.0catch.com/y­ellowpage.htm
  46. UNIVAC (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­nivac
  47. UNIVAC I (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_I
  48. UNIVAC II – Universal Automatic Computer Model II
    http://ed-thelen.org/comp-hist/BRL61-u4.html
  49. UNIVAC II (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_II
  50. UNIVAC III (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_III
  51. UNIVAC 1101 (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_1101
  52. UNISYS History Newsletter
    https://wiki.cc­.gatech.edu/fol­klore/index.php/Ma­in_Page
  53. UNIVAC Solid State (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_Solid_Sta­te
  54. Bi-quinary coded decimal (Wikipedia)
    http://en.wiki­pedia.org/wiki/Bi-quinary_coded_de­cimal
  55. UNIVAC III Data Processing System
    http://ed-thelen.org/comp-hist/BRL61-u4.html#UNIVAC-III
  56. The UNIVAC III Computer
    https://wiki.cc­.gatech.edu/fol­klore/index.php/The_U­NIVAC_III_Com­puter
  57. UNIVAC III Photos
    http://jwstep­hens.com/univac3/pa­ge01.htm
  58. A History of Unisys Computers (kniha)
    http://www.lu­lu.com/produc­t/hardcover/a-history-of-unisys-computers/4627477
  59. UNIVAC III Instructions Reference Card
    http://www.bit­savers.org/pdf/u­nivac/univac3/UT-2455_UNIVACII­I_RefCd61.pdf
  60. Index register (Wikipedia)
    http://en.wiki­pedia.org/wiki/In­dex_register
  61. FLOW-MATIC, COBOL's Roots, Birth of COBOL…
    http://www.inf.fu-berlin.de/leh­re/SS01/hc/pl/co­bol.htm
  62. FLOW-MATIC
    http://en.wiki­pedia.org/wiki/FLOW-MATIC
  63. FLOW-MATIC Manual
    http://archive­.computerhisto­ry.org/resources/tex­t/Remington_Ran­d/Univac.Flow­matic.1957.102646140­.pdf
  64. Grace Murray Hopper
    http://cs-www.cs.yale.e­du/homes/tap/Fi­les/hopper-story.html
  65. Grace Hopper (Wikipedia)
    http://en.wiki­pedia.org/wiki/Gra­ce_Hopper
  66. Biographies of Women Mathematicians: Grace Murray Hopper
    http://www.ag­nesscott.edu/lrid­dle/women/hop­per.htm
  67. A-0 System (Wikipedia)
    http://en.wiki­pedia.org/wiki/A-0_programming_lan­guage
  68. Rosetta Code – Category:COBOL
    http://rosetta­code.org/wiki/Ca­tegory:COBOL
  69. COmmon Business Oriented Language
    http://foldoc­.org/COBOL
  70. COBOL Compilers
    http://www-01.ibm.com/sof­tware/awdtool­s/cobol/
  71. Cobol: Not Dead Yet
    http://www.com­puterworld.com/s/ar­ticle/266156/C­obol_Not_Dead_Y­et?intsrc=kc_rfavs
  72. The future's bright … the future's Cobol
    http://features­.techworld.com/ap­plications/3056/the-futures-bright–the-futures-cobol/
  73. COBOL Example Programs
    http://www.csis­.ul.ie/COBOL/e­xamples/defau­lt.htm
  74. Introduction to COBOL
    http://www.csis­.ul.ie/COBOL/Cou­rse/COBOLIntro­.htm
  75. COBOL programming – tutorials, lectures, exercises, examples
    http://www.csis­.ul.ie/COBOL/
  76. Wikipedia: COBOL
    http://en.wiki­pedia.org/wiki/CO­BOL
  77. Humor on Computers, Systems and Programming
    http://www-crypto.htw-saarland.de/we­ber/misc/program­ming.html
  78. OpenCOBOL
    http://en.wiki­pedia.org/wiki/O­penCOBOL
  79. OpenCOBOL.org
    http://openco­bol.org/
  80. OpenCOBOL FAQ
    http://openco­bol.add1tocobol­.com/
  81. TinyCOBOL
    http://tiny-cobol.sourcefor­ge.net/
  82. TinyCOBOL FAQ
    http://tiny-cobol.sourcefor­ge.net/docs/faq/
  83. JTC1/SC22/WG4 – COBOL
    http://ra.dku­ug.dk/jtc1/sc2­2/wg4/
  84. COBOL on COGS
    http://www.co­boloncogs.org/IN­DEX.HTM
  85. Cobol Coders: Going, Going, Gone?
    http://www.com­puterworld.com/s/ar­ticle/266228/C­obol_Coders_Go­ing_Going_Gone_
  86. BUNCH
    http://en.wiki­pedia.org/wiki/BUN­CH
  87. The Colossus That Works
    http://www.ti­me.com/time/ma­gazine/article/0,9171,9­49693–5,00.html
  88. Mainframe computer
    http://en.wiki­pedia.org/wiki/Ma­inframe_compu­ter
  89. United States Census Bureau
    http://en.wiki­pedia.org/wiki/U­nited_States_Cen­sus_Bureau
  90. Slideshow – More Core Memories
    http://spectrum­.ieee.org/com­puting/hardwa­re/slideshow-more-core-memories
  91. UNIVAC I Mercury Delay Line Memory
    http://ed-thelen.org/comp-hist/vs-univac-mercury-memory.html
  92. Digital Number System Part-III
    http://www.asic-world.com/digi­tal/numbering3­.html
  93. Excess-3 – Definition
    http://www.wor­diq.com/defini­tion/Excess-3
  94. Excess-3
    http://en.wiki­pedia.org/wiki/Ex­cess-3
  95. Method of complements
    http://en.wiki­pedia.org/wiki/Met­hod_of_comple­ments
  96. Univac documentation
    http://www.bit­savers.org/pdf/u­nivac/univac1/
  97. UNISERVO
    http://en.wiki­pedia.org/wiki/U­NISERVO
  98. John Mauchly (Wikipedia)
    http://en.wiki­pedia.org/wiki/Joh­n_Mauchly
  99. J. Presper Eckert (Wikipedia)
    http://en.wiki­pedia.org/wiki/J­._Presper_Eckert
  100. BINAC (Wikipedia)
    http://en.wiki­pedia.org/wiki/BI­NAC
  101. Delay line memory (Wikipedia)
    http://en.wiki­pedia.org/wiki/De­lay_line_memo­ry
  102. Paměť se zpožďovací linkou (Wikipedia)
    http://cs.wiki­pedia.org/wiki/Pa­měť_se_zpožďo­vací_linkou
  103. Description of the BINAC
    http://www.pa­losverdes.com/las­thurrah/binac-description.html
  104. UNIVersal Automatic Computer
    http://www.thoc­p.net/hardware/u­nivac.htm
  105. IBM 36-bit computers
    http://www.36bit­.org/ibm/
  106. Symbolics 36-bit computers
    http://www.36bit­.org/symbolic­s/
  107. IBM System 360/370 Compiler and Historical Documentation
    http://www.edel­web.fr/Simula/
  108. Who Was Who in IBM's Programming Research? Early FORTRAN Days
    http://www.tra­iling-edge.com/~bob­bemer/PRORES.HTM
  109. Control Data Corporation (CDC) 6600: 1966–1977
    http://www.cis­l.ucar.edu/com­puters/gallery/cdc/6600­.jsp
  110. Control Data Corporation (CDC) 7600: 1971–1983
    http://www.cis­l.ucar.edu/com­puters/gallery/cdc/7600­.jsp
  111. Cray History
    http://www.cra­y.com/About/His­tory.aspx?404;http:­//www.cray.com:80/a­bout_cray/his­tory.html
  112. Cray Historical Timeline
    http://www.cra­y.com/Assets/PDF/a­bout/CrayTime­line.pdf
  113. Company: Cray Research, Inc. (Computer History)
    http://www.com­puterhistory.or­g/brochures/com­panies.php?al­pha=a-c&company=com-42b9d5d68b216
  114. PDP-1 Web Pages
    http://www.pdp-1.org/
  115. PDP-1 Restoration Process
    http://pdp-1.computerhis­tory.org/pdp-1/
  116. Programmed Data Processor (Wikipedia)
    http://en.wiki­pedia.org/wiki/Pro­grammed_Data_Pro­cessor
  117. Digital Equipment Corporation (Wikipedia)
    http://en.wiki­pedia.org/wiki/Di­gital_Equipmen­t_Corporation
  118. PDP-1 (Wikipedia)
    http://en.wiki­pedia.org/wiki/PDP-1
  119. Ancient Computing Machinery
    http://www.ee­.ryerson.ca/~el­f/ancient-comp/index.html
  120. Spacewar – The first computer video game. Really!
    http://www3.sym­patico.ca/mau­ry/games/space/spa­cewar.html
  121. Programmed Data Processor-1 Handbook
    http://www.dbit­.com/~greeng3/pdp1/pdp1­.html

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.