Rok | C standard |
---|---|
1972 | Zrození jazyka |
1978 | K&R C |
1989 | ANSI C (C89) |
1990 | ISO C (stejné jako C89) |
1999 | C99 |
2011 | C11 |
2017 | C17 (opraveno C11) |
2018 | C18 (stejně jako C17) |
Programovací jazyk C byl vyvinut v letech 1969 až 1973 v Bellových laboratořích . Podle Ritchieho nastalo nejaktivnější období kreativity v roce 1972 . Jazyk byl nazýván "C" (C je třetí písmeno anglické abecedy ), protože mnoho z jeho rysů pochází ze starého jazyka " B " (B je druhé písmeno anglické abecedy). Existuje několik různých verzí původu názvu jazyka Bi. Ken Thompson poukazuje na programovací jazyk BCPL , ale existuje také jazyk Bon , který také vytvořil. Ritchie naznačuje, že název jazyka mohl být odvozen od jména Thompsonovy manželky Bonnie [1] .
V roce 1973 se jazyk C stal natolik silným, že většina jádra UNIX , původně napsaného v assembleru PDP-11 /20, byla přepsána do jazyka C. Bylo to jedno z prvních jader operačního systému napsané v jiném jazyce než v assembleru; dříve byly pouze Multics (napsané v PL/1 ) a TRIPOS (napsané v BCPL).
Existuje několik legend týkajících se vývoje jazyka C a jeho vztahu k operačnímu systému UNIX , včetně následujících:
Podle jedné legendy byl vývoj C výsledkem skutečnosti, že její budoucí autoři milovali počítačovou hru, jako je populární hra Asteroids (Asteroids)[ zdroj? ] . Dlouhou dobu ji hráli na hlavním serveru společnosti , který nebyl dostatečně výkonný a musel obsluhovat asi stovku uživatelů. Thompson a Ritchie cítili, že jim chybí kontrola nad kosmickou lodí, aby se vyhnuli nárazu do některých kamenů. Rozhodli se tedy přenést hru na bezplatné PDP-7 v kanceláři. Tento počítač však neměl operační systém , což je nutilo jej napsat. Nakonec se rozhodli tento operační systém portovat do kanceláře PDP-11 , což bylo velmi obtížné, protože jeho kód byl celý napsán v assembleru . Byl učiněn návrh použít nějaký druh přenosného jazyka na vysoké úrovni, aby bylo možné OS snadno přenášet z jednoho počítače do druhého. Jazyk B, který k tomu chtěli původně použít, byl zbaven funkcionality, která mohla využívat nové vlastnosti PDP-11. Proto se rozhodli pro vývoj jazyka C.
Existuje další legenda. První počítač, pro který byl UNIX původně napsán, měl být systémem automatického vyplňování dokumentů. První verze UNIXu byla napsána v assembleru. Později, za účelem přepsání tohoto operačního systému, byl vyvinut jazyk C.[ zdroj? ] .
V roce 1978 vydali Brian Kernighan a Dennis Ritchie první vydání The C Programming Language. Tato kniha, programátorům známá jako „K&R“, sloužila po mnoho let jako neformální jazyková specifikace. Verze jazyka C v něm popsaná je často označována jako „K&R C“. Druhé vydání této knihy se zabývá novějším standardem ANSI C , který je popsán níže.
K&R představila následující jazykové funkce:
K&R C je často považováno za nejdůležitější část jazyka, kterou musí kompilátor jazyka C podporovat. Po mnoho let, dokonce i po vydání ANSI C, byla považována za minimální úroveň, kterou by měli programátoři dodržovat, pokud chtějí ze svých programů dosáhnout maximální přenositelnosti, protože ne všechny kompilátory tehdy podporovaly ANSI C a dobrý kód K&R C byl také platí pro ANSI C.
Od vydání K&R C bylo do jazyka přidáno několik funkcí podporovaných kompilátory od AT&T a některých dalších výrobců:
Koncem 70. let C začal nahrazovat BASIC jako vedoucí jazyk pro programování mikropočítačů . To bylo upraveno pro použití na IBM PC v 80-tých letech , což vedlo k dramatickému nárůstu jeho popularity. Ve stejné době Björn Stroustrup a další v Bell Labs začali pracovat na přidání objektově orientovaného programování do C. Jazyk, který nakonec vytvořili, C++ , měl velký vliv na vývoj softwaru, ale nikdy se zcela nevyrovnal [2] popularitě jazyka C, zejména na systémech podobných UNIXu.
V roce 1983 vytvořil American National Standards Institute (ANSI) výbor pro vývoj standardní specifikace pro C. Na konci tohoto dlouhého a obtížného procesu byl v roce 1989 konečně schválen jako „programovací jazyk C“ ANSI X3.159-1989 . Tato verze jazyka se nazývá ANSI C nebo C89. V roce 1990 byla norma ANSI C přijata s malými úpravami Mezinárodní organizací pro normalizaci (ISO) jako ISO/IEC 9899:1990 .
Jedním z cílů tohoto standardu bylo vyvinout nadmnožinu K&R C, která zahrnuje mnoho funkcí jazyka, které byly vytvořeny později. Výbor pro standardy však také zahrnul několik nových funkcí, jako jsou prototypy funkcí (vypůjčené z C++) a sofistikovanější preprocesor .
ANSI C je nyní podporován téměř všemi existujícími kompilátory. Téměř veškerý kód C napsaný v poslední době odpovídá ANSI C. Každý program napsaný pouze ve standardu C je zaručen, že bude správně fungovat na jakékoli platformě, která má vhodnou implementaci v jazyce C. Většina programů je však napsána tak, že se budou kompilovat a spouštět pouze na konkrétní platformě, protože:
Specifikace jazyka C zůstala po standardizaci v ANSI dlouhou dobu relativně nezměněna, zatímco C++ se nadále vyvíjelo (v roce 1995 byl standard C zaveden Prvním normativním dodatkem, ale téměř nikdo jej neuznával). Nicméně, standard byl revidován na konci 90. let , což vedlo k publikaci ISO 9899:1999 v roce 1999 . Tato norma je běžně označována jako "C99". V březnu 2000 byl přijat a upraven organizací ANSI.
Některé nové funkce C99:
8. prosince 2011 byla zveřejněna nová norma pro jazyk C (ISO/IEC 9899:2011) [3] . Hlavní změny:
Návrh verze normy byl předložen jako C17 (ISO/IEC 9899:2017) v roce 2017 [4] . V červnu 2018 byla norma publikována jako C18 (ISO/IEC 9899:2018) [5] [6] . Nový standard odstraňuje vady zaznamenané v předchozí verzi, aniž by přidával nové funkce. Názvy C17 a C18 jsou obvykle označovány jako synonyma [6] .
C programovací jazyk | |
---|---|
Kompilátory |
|
Knihovny | |
Zvláštnosti | |
Někteří potomci | |
C a další jazyky |
|
Kategorie:C programovací jazyk |