IBM a sedm trpaslíků (čtvrtá část)

23. 12. 2010
Doba čtení: 19 minut

Sdílet

V dnešní části seriálu o historii výpočetní techniky dokončíme popis první série sálových počítačů UNIVAC. Seznámíme se se základními technickými parametry počítače UNIVAC III, který byl – na rozdíl od svých dvou předchůdců – vytvořen na bázi polovodičových součástek (diod a tranzistorů) a feritových pamětí.

Obsah

1. Polovodičový sálový počítač UNIVAC III

2. Technologie počítače UNIVAC III

3. Formát dat zpracovávaných počítačem UNIVAC III

4. Indexové registry – zdánlivá maličkost s velkým dopadem na strukturu programů

5. Instrukční sada a formát instrukčního slova UNIVACu III

6. Cena až na prvním místě?

7. Neslavný konec první série počítačů UNIVAC

8. Řídí to tady CHIEF nebo BOSS?

9. Odkazy na Internetu

1. Polovodičový sálový počítač UNIVAC III

V předchozích třech částech seriálu o historii vývoje výpočetní techniky jsme se seznámili se sálovými počítači, které byly zkonstruovány na základě návrhů provedených J. P. Eckertem a Johnem Mauchlym. Jednalo se především o počítač BINAC neboli BINary Automatic Computer z roku 1949, v němž byla vůbec poprvé použita operační paměť vytvořená z akustických zpožďovacích linek. Stejná technologie byla využita i v elektronkovém počítači UNIVAC, jehož název se po vzniku dalších modelů začal psát s pořadovým číslem, tj. přejmenoval se na UNIVAC I. Tento poměrně úspěšný počítač byl v roce 1952 nahrazen rychlejším strojem UNIVAC II, v němž však byla operační paměť vytvořena z feritových jader a nikoli z rozměrných a na vnější vlivy choulostivějších akustických zpožďovacích linek. Oba zmíněné typy počítačů se používaly především při zpracovávání různých statistických dat; využívaly je například pojišťovny, státní úřady (především nesilová ministerstva) a některé větší korporace, mezi jinými i General Electric, Du Pont, Westinghouse či U. S. Steel.

Obrázek 1: Horní část řídicího panelu počítače UNIVAC III.
Autor fotografie: Jim a Shirley Stephensovi

Nicméně s blížícím se přelomem padesátých a šedesátých let minulého století začalo být zřejmé, že pro výrobu dalších modelů UNIVACů je nutné přejít na technologii polovodičových součástek, jinak by tyto počítače přestaly být konkurenceschopné. Již začátkem roku 1960 totiž firma IBM představila svůj počítač IBM 7090 postavený na bázi tranzistorů a i díky použití této nové technologie byla IBM v prodeji popř. pronájmu svých mainframů úspěšnější, než její konkurenti. Ve firmě Sperry Rand začal vývoj dalšího UNIVACu s pořadovým číslem III sice již v roce 1958, ovšem první skutečně použitelné stroje začaly být zákazníkům nabízeny až v první polovině roku 1962, tedy o více než dva roky později, než model IBM 7090. To se ukázalo být jednou z největších chyb, které se firma Sperry Rand dopustila, protože dvouroční zpoždění znamenalo, že se mnoho jejích zákazníků přiklonilo k výrobkům firmy IBM, popř. k výrobkům některého z dalších „trpaslíků“, s nimiž se seznámíme v některé z dalších částí tohoto seriálu.

Obrázek 2: Spodní část řídicího panelu počítače UNIVAC III.
Autor fotografie: Jim a Shirley Stephensovi

2. Technologie počítače UNIVAC III

J. P. Eckert byl při vývoje počítače UNIVAC III stále významnou osobností, ovšem v jedné poměrně zásadní oblasti se mu nepodařilo prosadit svůj názor. Eckert totiž původně chtěl, aby firma Sperry Rand vyráběla pouze jediný typ zcela univerzálního počítače, který by bylo možné použít jak pro vědeckotechnické výpočty, tak i v oblasti zpracování dat a obchodních aplikací. Šlo o poměrně novátorskou myšlenku (dnes ovšem zcela běžnou), která však nebyla představenstvem společnosti Sperry Rand pochopena – namísto jednoho universálního počítače se vývoj rozdělil – ostatně podobně jako ve firmě IBM – na tři typy specializovaných počítačů. Jednalo se o UNIVAC III specializovaný na obchodní úlohy (neměl například podporu pro operace s čísly v plovoucí řádové čárce), dále o počítač 1107 speciali­zovaný na vědeckotechnické výpočty a konečně o počítač 490, který byl používán pro transakční systémy běžící v reálném čase – jednalo se o bankovní aplikace a rezervace letenek.

Obrázek 3: Logické obvody počítače UNIVAC III byly umístěny na vyměnitelných plošných spojích, což byl oproti oběma předchozím modelům poměrně velký pokrok.
Autor fotografie: Jim a Shirley Stephensovi

Architektura počítače UNIVAC III byla částečně odvozena od stroje LARC navrženého divizí firmy Sperry Rand sídlící ve Filadelfii. Výsledkem návrhu byl stroj s aritmeticko logickou jednotkou sestavenou z tranzistorů schopnou provést součet dvou čísel (každé se šesti číslicemi) za pouhých osm mikrosekund, vynásobení těchto čísel za 48 až 724 mikrosekund a vydělení dvou šesticiferných čísel za 68 až 144 mikrosekund. Na rozdíl od předchozích modelů mohla být čísla uložena v binárním kódu ve slovech o šířce 25 bitů, což je mnohem méně než u 72bitových slov u UNIVACu I a UNIVACu II. Namísto paměti vytvořené ze zpožďovacích akustických linek byla použita feritová paměť umístěná v „kostkách“ o rozměrech 7×7×7 palců, přičemž každá kostka obsahovala 4096 25bitových slov doplněných o paritní a náhradní bity (doba přístupu ke slovu byla čtyři mikrosekundy). Celková kapacita paměti mohla být v rozsahu 8192 až 32768 slov, což odpovídá dvěma až osmi „kostkám“. Tato paměť byla doplněna bubnovou pamětí o kapacitě 4 až 24 milionů slov. Celý počítač vážil 14 tun, měl příkon „pouhých “75 kW a při připojení do sítě se 115 V (USA) byly doporučovány na každé fázi jističe 260 A.

Obrázek 4: V těchto „kostkách“ byla umístěna operační paměť sestavená z feritových jader. Každá kostka o rozměrech cca 7×7×7 palců měla kapacitu 4096 slov (každé slovo 25 bitů + 2 paritní bity + 2 náhradní bity).
Autor fotografie: Jim a Shirley Stephensovi

3. Formát dat zpracovávaných počítačem UNIVAC III

Aritmeticko-logická jednotka počítače UNIVAC III dokázala zpracovávat data ve třech vzájemně rozdílných formátech. První z těchto formátů – decimal – využíval 25bitové slovo takovým způsobem, že do nejvyššího bitu ukládal znaménko čísla a zbylých 24 bitů bylo rozděleno na šest čtyřbitových bloků, přičemž každý blok mohl obsahovat jednu desítkovou číslici kódovanou s využitím kódu excess-3. Pokud se pracovalo pouze s jedním slovem, byl rozsah reprezentovatelných hodnot roven –106 až 106. Ve skutečnosti však některé instrukce mohly pracovat až se čtyřmi slovy současně, čímž se rozsah zpracovávaných čísel zvýšil na –1024 až 1024. Záleželo pouze na programátorech, ve kterém místě si zvolili pozici řádové tečky – pro bankovní operace či účetnictví se například mohla tečka umisťovat mezi třetí a druhou číslicí (pozice je počítána od nejnižšího řádu). Převodní tabulka mezi desítkovou číslicí a čtyřsložkovým binárním vektorem je zobrazena pod tímto odstavcem:

Číslice Sekvence bitů
0 0011
1 0100
2 0101
3 0110
4 0111
5 1000
6 1001
7 1010
8 1011
9 1100

Druhý formát dat podporovaných aritmeticko-logickou jednotkou UNIVACu III byl velmi jednoduchý a současně i blízký dnešním programátorům – jednalo se o binární číslo se znaménkem reprezentované v jedničkovém doplňku. Nejvyšší bit 25bitového slova byl opět rezervovaný pro uložení znaménka čísla, spodních 24 bitů pak pro uložení hodnoty čísla v přímém dvojkovém (binárním) kódu. Vzhledem k tomu, že bylo možné opět pracovat až se čtyřmi slovy současně, byl rozsah hodnot roven ±296-1. Tento formát sice dokázal lépe využít všechny bity slova (±296 zhruba odpovídá ±8×1028, což je zajisté větší rozsah než ±1024), ovšem pokud některá aplikace často prováděla převody mezi desítkovou reprezentací čísel a reprezentací dvojkovou (jednalo se o výstupní sestavy nebo bankovní transakce), mohly operace pro převody mezi číselnými soustavami negativně ovlivnit rychlost celého (dávkového) procesu, takže programátoři mnohdy raději použili sice méně efektivní, ale jednodušší a rychlejší formát dekadický.

Obrázek 5: Počitadlo celkového času, po který byl počítač UNIVAC III (či lépe řečeno jeho napájecí jednotka) v provozu (aneb hardwarová alternativa k uptime).

Třetí podporovaný formát dat se používal při práci s řetězci. Tento formát dokázal do 25bitového slova uložit čtveřici znaků, protože každý znak byl reprezentován šesticí bitů (6×4=24). Význam nejvyššího bitu si mohl zvolit programátor na základě potřeby aplikace. I při použití tohoto formátu bylo možné současně pracovat až se čtyřmi slovy, tj. se šestnácti znaky, takže není divu, že se v aplikacích pro UNIVAC III často používaly maximálně šestnáctiznakové řetězce.

Obrázek 6: Uchladit statisíce diskrétních součástek vyžadovalo výkonnou klimatizaci.

4. Indexové registry – zdánlivá maličkost s velkým dopadem na strukturu programů

Procesorová jednotka sálového počítače UNIVAC III obsahovala kromě čtveřice akumulátorů (tj. běžných pracovních registrů využitelných pro aritmetické a logické operace) i patnáct takzvaných indexových registrů. Indexové registry nebyly na přelomu padesátých a šedesátých let minulého století žádnou žhavou novinkou, protože se poprvé objevily již v roce 1948 v britském počítači Manchester Mark 1. Tento počítač obsahoval tři skupiny registrů – akumulátor označovaný písmenem A (Accumulator), indexový registr označovaný písmenem B (B-line register) a konečně čítač instrukcí označovaný písmenem C (program Counter). Největší význam indexových registrů spočívá v tom, že se jejich použitím odstraňuje (nebo alespoň zmenšuje) nutnost psaní automodifikujícího se kódu, který se například u UNIVACu I musel tvořit při práci s poli, protože instrukce tohoto počítače mohly obsahovat pouze pevně zadanou adresu. Tato adresa se mohla změnit pouze a právě modifikací (přepisem) instrukčního kódu.

Obrázek 7: Sada pracovních registrů počítače Manchester Mark I, kde se poprvé objevuje i indexový registr.

Naproti tomu počítače, přesněji řečeno jejich procesorové jednotky nebo mikroprocesory, které obsahovaly indexové registry, většinou nabízely programátorům instrukce, v nichž byla součástí instrukčního kódu pevně zadaná adresa (báze), k níž se přičetl obsah indexového registru. Popř. si můžeme význam pevně zadané adresy a indexového registru otočit – adresa představovala offset přičtený k bázové adrese uložené v indexovém registru. Teprve výsledná adresa (vypočtená ve sčítačce) byla použita pro adresování operandů v operační paměti. Název index register vychází z toho, že tyto registry mohly obsahovat přímo index prvku v poli a pevně zadaná adresa byla adresou na první prvek v poli. Použití indexových registrů se stalo standardem u většiny počítačů druhé generace, ať již se jednalo o UNIVAC III, tak i o některé počítače řady IBM 700 (včetně slavného stroje IBM 704 s jedním akumulátorem, čítačem adres a třemi indexovými registry) i řady IBM 7000. Prvním mikroprocesorem s plnohodnotným indexovým registrem byl čip Motorola 6800 a dvojice osmibitových indexových registrů X a Y tvořila nedílnou součást instrukční sady slavného čipu MOS 6502, který byl známý různými adresními režimy vycházejícími z kombinace hodnoty indexového registru a osmibitové či šestnáctibito­vé báze.

Obrázek 8: Část instrukční sady počítače UNIVAC III, kde můžeme najít i čtveřici instrukcí pracujících přímo s indexovými registry. Povšimněte si, že mnemotechnické názvy instrukcí se již na začátku šedesátých let minulého století podobaly současnému způsobu zápisu instrukcí procesorů.
Zdroj: digitalizovaná původní dokumentace k UNIVACU III.

5. Instrukční sada a formát instrukčního slova UNIVACu III

Počítač UNIVAC III používal instrukční sadu, která byla zcela odlišná od instrukční sady UNIVACu I a UNIVACu II. Nekompatibility byly způsobeny jak mnohem větší kapacitou operační paměti, tak i novým formátem dat, odlišnou šířkou slova (25 bitů) a taktéž použitím v předchozí kapitole zmíněných indexových registrů. Každá instrukce byla uložena v jednom 25bitovém instrukčním slovu, které bylo rozděleno do pěti skupin bitů (pro jednoduchost vynecháme dvojici paritních bitů na začátku):

Bit(y) Význam
24 příznak nepřímého adresování
23–20 číslo indexového registru
19–14 kód instrukce
13–10 výběr dvojice akumulátorů pro provedení operace (2 bity zdroj, 2 bity cíl)
9–0 adresa (desetibitový offset)

Obrázek 9: Další část tabulky s instrukcemi počítače UNIVAC III – instrukce bitových posunů, instrukce porovnání a podmíněné skoky.
Zdroj: digitalizovaná původní dokumentace k UNIVACU III.

Tyto skupiny jsou v 25bitovém slovu uspořádány následovně:

+--------+--------------------+-------+-------+--------+---------+
| Parity | Indirect Address   |  IR   | Oper  | AR/IR' |    m    |
|        | or Field Select Op |       | Code  |        | Address |
+--------+--------------------+-------+-------+--------+---------+
| 26  25 |          24        | 23 20 | 19 14 | 13  10 |  9    0 |
+--------+--------------------+-------+-------+--------+---------+

Obrázek 10: Formát dat rozpoznávaných a zpracovatelných počítačem UNIVAC III.
Zdroj: digitalizovaná původní dokumentace k UNIVACU III.

Tento formát instrukcí, který byl mimochodem navržený právě J. P. Eckertem, vznikl v podstatě jako náhradní řešení. Eckert totiž původně chtěl, aby se v instrukčním kódu opět objevila celá adresa operandu, podobně jako u předchozích dvou UNIVACů. Ovšem vzhledem k tomu, že čtyři bity bylo nutné ponechat pro výběr akumulátorů, šest bitů pro operační kód a jeden bit pro volbu nepřímého adresování, bylo z 25 bitů instrukčního slova obsazeno 1+4+6=11 bitů, což znamená, že na adresu bylo možné využít pouze 25–11=14 bitů. To je ovšem málo, protože v předchozích kapitolách jsme si řekli, že v UNIVACu III mohla mít operační paměť kapacitu až 32768 slov, což znamená nutnost rezervace minimálně 15 bitů pro adresu. Eckert tedy namísto uložení celé adresy zvolil (a to velmi šťastně, jak se později ukázalo!) kompromis: v instrukčním slově bylo uloženo pouze deset bitů adresy, která se přičetla k obsahu vybraného indexového registru. Toto řešení bylo v praxi mnohem flexibilnější, protože indexové registry bylo možné měnit mnohem snáz než adresu v instrukčním slo­vu.

Obrázek 11: Aritmetické instrukce počítače UNIVAC III. Povšimněte si toho, že se v instrukční sadě nachází i operace násobení (multiply – M) a dělení (divide – D)
Zdroj: digitalizovaná původní dokumentace k UNIVACU III.

6. Cena až na prvním místě?

Firma Sperry Rand vyrobila několik desítek kusů počítače UNIVAC III (oficiálně bylo zákazníkům dodáno 96 strojů). Vzhledem k poměrně vysoké ceně tohoto stroje bylo možné si pouze pronajímat jeho výpočetní výkon. V následující tabulce jsou pro zajímavost vypsány ceny jak za nákup počítače i s příslušným vybavením (včetně páskových jednotek Uniservo II a Uniservo III), tak i ceny za měsíční pronájem. Povšimněte si zejména poměrně vysoké ceny feritových pamětí. Pokud paměť o kapacitě 8192 slov (8192×29=237568 bitů) byla prodávána za cenu 67500 dolarů, znamená to, že jeden bit stál přibližně: 67500/237568=28 centů. Není tedy divu, že se tehdejší programátoři snažili ušetřit doslova každý bit, takže jejich obviňování z toho, že se kvůli jejich „nemístnému šetření“ musel řešit problém Y2K (skutečně – mnoho programů v COBOLu vznikalo již v roce 1960), je minimálně nemístné:

Základní jednotky Cena ($) Měsíční pronájem ($)
Computer – 8 K Memory 390 000 8 000
High Speed Reader 35 000 750
Punch Unit 40 000 850
High Speed Printer 79 000 1 650
Uniservo III Synchronizer 145 000 2 900
Uniservo III Power Supply 17 500 350
Uniservo III 24 000 500
     
Doplňkové moduly Cena Měsíční pronájem
Card Punching Printer 197 500 4 300
Uniservo 11 20 000 450
Uniservo II Synchronizer 92 500 1 925
Uniservo II Power Supply 17 500 350
Memory-Add. 8 K – 67 500 1 400
Add. 24 K 193 500 4 030
Second Uniservo III 145 000 2 900

Obrázek 12: Pásková jednotka připojitelná k UNIVACu III.

7. Neslavný konec první série počítačů UNIVAC

Tabulka s cenami jednotlivých komponent sálového počítače UNIVAC III nebyla v předchozí kapitole uvedena náhodou, protože právě relativně vysoká cena UNIVACu III byla jednou z příčin toho, že již žádný UNIVAC IV nevznikl. Jak jsme si již řekli v úvodních kapitolách tohoto článku, byla prvním problémem tohoto stroje více než dvouletá prodleva, s níž byl uveden na trh. Ovšem mnohem větší nepříjemností bylo to, že další v té době existující velké počítačové společnosti, jakými byla například General Electric a RCA, začaly nabízet sálové počítače, které byly svým výkonem a vlastnostmi zhruba na úrovni UNIVACu III, ovšem současně byly o 30% levnější, takže je zřejmé, podle jakých kritérií se zákazníci kupující stroje za statisíce dolarů, nakonec rozhodovali.

Obrázek 13: Detail vedení magnetické pásky přes čtecí a zápisové hlavy páskové jednotky Uniservo III.

Poslední ranou celé řadě UNIVAC bylo uvedení řady mainframů IBM System/360. Například velmi levný sálový počítač IBM System/360 Model 30 našel své uplatnění i v těch oblastech, kde by se UNIVAC III nemohl kvůli pořizovacím nákladům použít (slova „velmi levný“ je samozřejmě nutné chápat v kontextu doby, ne v porovnání s dneškem :-). Z těchto důvodů nakonec firma Sperry Rand i kvůli nízkému počtu prodaných kusů UNIVACu III již žádný další model této řady nevyrobila a namísto toho se soustředila na jiné typy strojů, například na řadu 9000.

ibm3_

Obrázek 14: Zrekonstruovaný řídicí panel počítače IBM System/360 Model 30. Na dlaždici před panelem (zhruba pod čtveřicí bílých tlačítek) je pro porovnání velikostí umístěný současný mikrořadič PIC :-)

ibm3_

Obrázek 15: Částečně zrekonstruovaný ovládací panel počítače IBM System/360 Model 91.

8. Řídí to tady CHIEF nebo BOSS?

Aplikace pro sálový počítač UNIVAC III byly vytvářeny buď v assembleru, nebo v některém vyšším programovacím jazyce, především v předchůdcích COBOLu (to ostatně odpovídá tomu, že se jednalo o počítače určené především pro provozování obchodních aplikací). Ovšem na rozdíl od elektronkových počítačů předchozí generace, které většinou v daný okamžik mohly zpracovávat pouze jeden program, byly počítače UNIVAC III vybaveny operačním systémem nazvaným Controlled Handling of Internal Executive Functions neboli CHIEF. První verze tohoto systému umožňovala, aby se ve chvíli běhu jednoho programu již mohla připravovat data z dalších programů, druhá verze již skutečně podporovala běh až sedmi programů současně, což samozřejmě vedlo k efektivnějšímu využití řadiče, aritmeticko-logické jednotky i operační paměti. Ovládání operačního systému CHIEF nebylo zcela jednoduché a vyžadovalo zvláštní přípravy ještě před vlastním spuštěním úloh.

ibm6

Obrázek 16: První zveřejněná publikace o programovacím jazyku COBOL.

bitcoin_skoleni

Nejprve bylo zapotřebí všechny přeložené programy překopírovat na takzvanou Master Instruction Tape, která na svém začátku obsahovala samotný systém CHIEF. Každý program začínal blokem o velikosti 100 slov, v nichž byly zapsány požadavky programu na vybavení – počet páskových jednotek, využití operační paměti atd. Z Master Instruction Tape se nejdříve do paměti načetl operační systém, který automaticky zpracoval zmíněné 100slovní bloky, alokoval pro každý program požadované prostředky a nakonec program (či programy) načetl do operační paměti a spustil je. Na závěr je dobré zmínit ještě jednu zajímavost: marketingové oddělení firmy Sperry Rand se obávalo, že systém CHIEF nebude dokončen včas, aby mohl být dodán zákazníkům. Z tohoto důvodu uzavřelo kontrakt s firmou CSC (Computer Science Corporation) na vývoj jednoduššího systému nazvaného Basic Operational Scheduling System neboli BOSS. Nakonec se ukázalo, že nabídka dvou vzájemně odlišných systémů CHIEF a BOSS jen zhoršila situaci UNIVACu III na trhu, protože zákazníci používající BOSS získali dojem, že jim byl nabídnut nedokonalý systém a cítili se být trošku ošizeni.

ibm6

Obrázek 17: Jedna z novějších publikací o programovacím jazyku COBOL.

9. Odkazy na Internetu

  1. UNIVAC I Computer System
    http://univac1­.0catch.com/
  2. UNIVAC I Computer System
    http://univac1­.0catch.com/y­ellowpage.htm
  3. UNIVAC (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­nivac
  4. UNIVAC I (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_I
  5. UNIVAC II – Universal Automatic Computer Model II
    http://ed-thelen.org/comp-hist/BRL61-u4.html
  6. UNIVAC II (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_II
  7. UNIVAC III (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_III
  8. UNIVAC 1101 (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_1101
  9. UNISYS History Newsletter
    https://wiki.cc­.gatech.edu/fol­klore/index.php/Ma­in_Page
  10. UNIVAC Solid State (Wikipedia)
    http://en.wiki­pedia.org/wiki/U­NIVAC_Solid_Sta­te
  11. Bi-quinary coded decimal (Wikipedia)
    http://en.wiki­pedia.org/wiki/Bi-quinary_coded_de­cimal
  12. UNIVAC III Data Processing System
    http://ed-thelen.org/comp-hist/BRL61-u4.html#UNIVAC-III
  13. The UNIVAC III Computer
    https://wiki.cc­.gatech.edu/fol­klore/index.php/The_U­NIVAC_III_Com­puter
  14. UNIVAC III Photos
    http://jwstep­hens.com/univac3/pa­ge01.htm
  15. A History of Unisys Computers (kniha)
    http://www.lu­lu.com/produc­t/hardcover/a-history-of-unisys-computers/4627477
  16. UNIVAC III Instructions Reference Card
    http://www.bit­savers.org/pdf/u­nivac/univac3/UT-2455_UNIVACII­I_RefCd61.pdf
  17. Index register (Wikipedia)
    http://en.wiki­pedia.org/wiki/In­dex_register
  18. FLOW-MATIC, COBOL's Roots, Birth of COBOL…
    http://www.inf.fu-berlin.de/leh­re/SS01/hc/pl/co­bol.htm
  19. FLOW-MATIC
    http://en.wiki­pedia.org/wiki/FLOW-MATIC
  20. FLOW-MATIC Manual
    http://archive­.computerhisto­ry.org/resources/tex­t/Remington_Ran­d/Univac.Flow­matic.1957.102646140­.pdf
  21. Grace Murray Hopper
    http://cs-www.cs.yale.e­du/homes/tap/Fi­les/hopper-story.html
  22. Grace Hopper
    http://en.wiki­pedia.org/wiki/Gra­ce_Hopper
  23. Biographies of Women Mathematicians: Grace Murray Hopper
    http://www.ag­nesscott.edu/lrid­dle/women/hop­per.htm
  24. A-0 System
    http://en.wiki­pedia.org/wiki/A-0_programming_lan­guage
  25. Rosetta Code – Category:COBOL
    http://rosetta­code.org/wiki/Ca­tegory:COBOL
  26. COmmon Business Oriented Language
    http://foldoc­.org/COBOL
  27. COBOL Compilers
    http://www-01.ibm.com/sof­tware/awdtool­s/cobol/
  28. Cobol: Not Dead Yet
    http://www.com­puterworld.com/s/ar­ticle/266156/C­obol_Not_Dead_Y­et?intsrc=kc_rfavs
  29. The future's bright … the future's Cobol
    http://features­.techworld.com/ap­plications/3056/the-futures-bright–the-futures-cobol/
  30. COBOL Example Programs
    http://www.csis­.ul.ie/COBOL/e­xamples/defau­lt.htm
  31. Introduction to COBOL
    http://www.csis­.ul.ie/COBOL/Cou­rse/COBOLIntro­.htm
  32. COBOL programming – tutorials, lectures, exercises, examples
    http://www.csis­.ul.ie/COBOL/
  33. Wikipedia: COBOL
    http://en.wiki­pedia.org/wiki/CO­BOL
  34. Humor on Computers, Systems and Programming
    http://www-crypto.htw-saarland.de/we­ber/misc/program­ming.html
  35. OpenCOBOL
    http://en.wiki­pedia.org/wiki/O­penCOBOL
  36. OpenCOBOL.org
    http://openco­bol.org/
  37. OpenCOBOL FAQ
    http://openco­bol.add1tocobol­.com/
  38. TinyCOBOL
    http://tiny-cobol.sourcefor­ge.net/
  39. TinyCOBOL FAQ
    http://tiny-cobol.sourcefor­ge.net/docs/faq/
  40. JTC1/SC22/WG4 – COBOL
    http://ra.dku­ug.dk/jtc1/sc2­2/wg4/
  41. COBOL on COGS
    http://www.co­boloncogs.org/IN­DEX.HTM
  42. Cobol Coders: Going, Going, Gone?
    http://www.com­puterworld.com/s/ar­ticle/266228/C­obol_Coders_Go­ing_Going_Gone_
  43. BUNCH
    http://en.wiki­pedia.org/wiki/BUN­CH
  44. The Colossus That Works
    http://www.ti­me.com/time/ma­gazine/article/0,9171,9­49693–5,00.html
  45. Mainframe computer
    http://en.wiki­pedia.org/wiki/Ma­inframe_compu­ter
  46. United States Census Bureau
    http://en.wiki­pedia.org/wiki/U­nited_States_Cen­sus_Bureau
  47. Slideshow – More Core Memories
    http://spectrum­.ieee.org/com­puting/hardwa­re/slideshow-more-core-memories
  48. UNIVAC I Mercury Delay Line Memory
    http://ed-thelen.org/comp-hist/vs-univac-mercury-memory.html
  49. Digital Number System Part-III
    http://www.asic-world.com/digi­tal/numbering3­.html
  50. Excess-3 – Definition
    http://www.wor­diq.com/defini­tion/Excess-3
  51. Excess-3
    http://en.wiki­pedia.org/wiki/Ex­cess-3
  52. Method of complements
    http://en.wiki­pedia.org/wiki/Met­hod_of_comple­ments
  53. Univac documentation
    http://www.bit­savers.org/pdf/u­nivac/univac1/
  54. UNISERVO
    http://en.wiki­pedia.org/wiki/U­NISERVO
  55. John Mauchly
    http://en.wiki­pedia.org/wiki/Joh­n_Mauchly
  56. J. Presper Eckert
    http://en.wiki­pedia.org/wiki/J­._Presper_Eckert
  57. BINAC
    http://en.wiki­pedia.org/wiki/BI­NAC
  58. Delay line memory
    http://en.wiki­pedia.org/wiki/De­lay_line_memo­ry
  59. Paměť se zpožďovací linkou
    http://cs.wiki­pedia.org/wiki/Pa­měť_se_zpožďo­vací_linkou
  60. Description of the BINAC
    http://www.pa­losverdes.com/las­thurrah/binac-description.html
  61. UNIVersal Automatic Computer
    http://www.thoc­p.net/hardware/u­nivac.htm
  62. IBM 36-bit computers
    http://www.36bit­.org/ibm/
  63. Symbolics 36-bit computers
    http://www.36bit­.org/symbolic­s/
  64. IBM System 360/370 Compiler and Historical Documentation
    http://www.edel­web.fr/Simula/
  65. Who Was Who in IBM's Programming Research? Early FORTRAN Days
    http://www.tra­iling-edge.com/~bob­bemer/PRORES.HTM
  66. Control Data Corporation (CDC) 6600: 1966–1977
    http://www.cis­l.ucar.edu/com­puters/gallery/cdc/6600­.jsp
  67. Control Data Corporation (CDC) 7600: 1971–1983
    http://www.cis­l.ucar.edu/com­puters/gallery/cdc/7600­.jsp
  68. Cray History
    http://www.cra­y.com/About/His­tory.aspx?404;http:­//www.cray.com:80/a­bout_cray/his­tory.html
  69. Cray Historical Timeline
    http://www.cra­y.com/Assets/PDF/a­bout/CrayTime­line.pdf
  70. Company: Cray Research, Inc. (Computer History)
    http://www.com­puterhistory.or­g/brochures/com­panies.php?al­pha=a-c&company=com-42b9d5d68b216
  71. PDP-1 Web Pages
    http://www.pdp-1.org/
  72. PDP-1 Restoration Process
    http://pdp-1.computerhis­tory.org/pdp-1/
  73. Programmed Data Processor
    http://en.wiki­pedia.org/wiki/Pro­grammed_Data_Pro­cessor
  74. Digital Equipment Corporation
    http://en.wiki­pedia.org/wiki/Di­gital_Equipmen­t_Corporation
  75. PDP-1
    http://en.wiki­pedia.org/wiki/PDP-1
  76. Ancient Computing Machinery
    http://www.ee­.ryerson.ca/~el­f/ancient-comp/index.html
  77. Spacewar – The first computer video game. Really!
    http://www3.sym­patico.ca/mau­ry/games/space/spa­cewar.html
  78. Programmed Data Processor-1 Handbook
    http://www.dbit­.com/~greeng3/pdp1/pdp1­.html

Autor článku

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