Év | C szabvány |
---|---|
1972 | Egy nyelv születése |
1978 | K&R C |
1989 | ANSI C (C89) |
1990 | ISO C (ugyanaz, mint a C89) |
1999 | C99 |
2011 | C11 |
2017 | C17 (javított C11) |
2018 | C18 (ugyanaz, mint a C17) |
A C programozási nyelvet 1969 és 1973 között fejlesztették kia Bell Labsnál . Ritchie szerinta kreativitás legaktívabb időszaka 1972 -ben következett be . A nyelvet "C"-nek (C az angol ábécé harmadik betűje) nevezték el, mert sok jellemzője a régi " B " nyelvből származik(B az angol ábécé második betűje). A bi nyelv nevének eredetének többféle változata létezik. Ken Thompson rámutat a BCPL programozási nyelvre , de létezik a Bon nyelv is, amelyet szintén ő készített. Ritchie azt sugallja, hogy a nyelv neve Thompson feleségének, Bonnie-nak a nevéből származhatott [1] .
1973-ra a C nyelv elég erős lett ahhoz, hogy az eredetileg PDP-11 /20 assemblerben írt UNIX kernel nagy részét átírják C nyelven. Ez volt az egyik legkorábbi operációs rendszer kernel, amelyet az assemblytől eltérő nyelven írtak; korábban csak Multics volt ( PL/1 -ben írva ) és TRIPOS (BCPL-ben írva).
Számos legenda kering a C fejlesztésével és a UNIX operációs rendszerrel való kapcsolatával kapcsolatban , beleértve a következőket:
Az egyik legenda szerint a C fejlődése annak a ténynek köszönhető, hogy leendő szerzői szerettek egy olyan számítógépes játékot, mint az Asteroids (Asteroids) népszerű játék.[ forrás? ] . Sokáig játszották a cég fő szerverén , amely nem volt elég erős, és körülbelül száz felhasználót kellett kiszolgálnia. Thompson és Ritchie úgy érezte, hogy nincs uralmuk az űrrepülőgép felett, hogy elkerüljék a sziklák ütközését. Ezért úgy döntöttek, hogy a játékot áthelyezik egy ingyenes PDP-7 -re az irodában. Ennek a számítógépnek azonban nem volt operációs rendszere , ami arra kényszerítette őket, hogy írjanak egyet. Végül úgy döntöttek, hogy ezt az operációs rendszert az irodai PDP-11- re portolják , ami nagyon nehéz volt, mert a kódja teljes egészében assemblerben íródott . Javasolták valamilyen magas szintű hordozható nyelv használatát, hogy az operációs rendszer könnyen átvihető egyik számítógépről a másikra. A B nyelvet, amelyet eredetileg ehhez akartak használni, megfosztották attól a funkcionalitástól, amely a PDP-11 új funkcióit használni tudta volna. Ezért a C nyelv fejlesztése mellett döntöttek.
Van egy másik legenda. Az első számítógépet, amelyre a UNIX-ot eredetileg írták, egy automatikus dokumentumkitöltő rendszernek szánták. A UNIX első verziója assembly nyelven készült. Később ennek az operációs rendszernek az újraírására kifejlesztették a C nyelvet.[ forrás? ] .
1978- ban Brian Kernighan és Dennis Ritchie kiadta a The C programozási nyelv első kiadását. Ez a könyv, amelyet a programozók "K&R" néven ismernek, sok éven át informális nyelvi specifikációként szolgált. A C nyelv benne leírt változatát gyakran "K&R C"-ként emlegetik. A könyv második kiadása az alább ismertetett újabb ANSI C szabvánnyal foglalkozik.
A K&R a következő nyelvi funkciókat vezette be:
A K&R C-t gyakran a nyelv legfontosabb részének tekintik, amelyet egy C-fordítónak támogatnia kell. Sok éven át az ANSI C megjelenése után is ez volt a minimális szint, amit a programozóknak be kell tartaniuk, ha maximális hordozhatóságot akarnak elérni programjaikból, mert akkor még nem minden fordító támogatta az ANSI C-t, és a jó K&R C kód is. igaz az ANSI C-re.
A K&R C megjelenése óta számos funkcióval bővült a nyelv, amelyeket az AT&T és néhány más gyártó fordítói támogatnak:
Az 1970- es évek végén a C elkezdte kiszorítani a BASIC -et, mint a mikroszámítógép -programozás vezető nyelvét . Az 1980 -as években az IBM PC -n való használatra adaptálták , ami népszerűségének drámai növekedéséhez vezetett. Ezzel egyidőben Björn Stroustrup és mások a Bell Labs munkatársai elkezdtek dolgozni azon, hogy objektumorientált programozási képességeket adjanak a C -hez. A nyelv, amelyet végül készítettek, a C++ nagy hatással volt a szoftverfejlesztésre, de soha nem érte el teljesen [2] a C népszerűségét, különösen a UNIX-szerű rendszereken.
1983- ban az Amerikai Nemzeti Szabványügyi Intézet (ANSI) bizottságot hozott létre a C szabvány előírásainak kidolgozására. Ennek a hosszú és nehéz folyamatnak a végén, 1989 -ben végül jóváhagyták a "C programozási nyelv" ANSI X3.159-1989 néven . A nyelv ezen változatának neve ANSI C vagy C89. 1990 -ben az ANSI C szabványt kisebb módosításokkal a Nemzetközi Szabványügyi Szervezet (ISO) ISO/IEC 9899:1990 néven fogadta el .
Ennek a szabványnak az egyik célja a K&R C szuperkészletének kifejlesztése volt, amely magában foglalja a nyelv később létrehozott jellemzőit. A szabványügyi bizottság azonban számos új szolgáltatást is tartalmazott, mint például a függvényprototípusokat (a C++-ból kölcsönözve) és egy kifinomultabb előfeldolgozót .
Az ANSI C-t már szinte az összes létező fordító támogatja. Szinte az összes közelmúltban írt C kód megfelel az ANSI C szabványnak. A csak C szabványban írt programok garantáltan megfelelően futnak minden olyan platformon, amely rendelkezik megfelelő C implementációval. A legtöbb program azonban úgy van megírva, hogy csak egy adott platformon fordítsa le és fut, mert:
Az ANSI szabványosítása után a C nyelvi specifikáció sokáig viszonylag változatlan maradt, míg a C++ tovább fejlődött ( 1995-ben a C szabványt az első normatív módosítás vezette be, de szinte senki sem ismerte fel). A szabványt azonban az 1990-es évek végén felülvizsgálták, ami az ISO 9899:1999 szabvány 1999 -es közzétételéhez vezetett . Ezt a szabványt általában "C99"-nek nevezik. 2000 márciusában az ANSI elfogadta és adaptálta.
A C99 néhány új funkciója:
2011. december 8-án új szabványt tettek közzé a C nyelvhez (ISO/IEC 9899:2011) [3] . Főbb változások:
A szabvány tervezetét C17 (ISO/IEC 9899:2017) néven nyújtották be 2017-ben [4] . 2018 júniusában a szabvány C18 (ISO/IEC 9899:2018) néven jelent meg [5] [6] . Az új szabvány új funkciók hozzáadása nélkül kiküszöböli az előző verzióban tapasztalt hibákat. A C17 és C18 neveket általában szinonimákként emlegetik [6] .
C programozási nyelv | |
---|---|
Fordítók |
|
Könyvtárak | |
Sajátosságok | |
Néhány leszármazott | |
C és más nyelvek |
|
Kategória:C programozási nyelv |