A C nyelv története

É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).

A fejlesztés okai

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? ] .

K&R C

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:

Nyelvi szabványok

ISO C

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:

  1. nem szabványos könyvtárakat használnak , például grafikus megjelenítésekhez;
  2. speciális platform-specifikus eszközöket használnak;
  3. bizonyos adattípusok méretének bizonyos értékére vagy ezen adatok memóriában való tárolásának egy bizonyos módjára készültek egy adott platformon.

C99

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:

C11

2011. december 8-án új szabványt tettek közzé a C nyelvhez (ISO/IEC 9899:2011) [3] . Főbb változások:

C18

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] .

Jegyzetek

  1. Ritchie D. M. A C nyelv fejlődése. A „Bevezetés” és „Előzmények: a beállítás” szakaszok.
  2. Programozási Közösségi Index 2012. áprilisra . Letöltve: 2019. február 2. Az eredetiből archiválva : 2013. július 2.
  3. ISO/IEC 9899:2011 - Információtechnológia - Programozási nyelvek - C . Letöltve: 2019. február 2. Az eredetiből archiválva : 2011. december 27.
  4. ISO/IEC. ISO/IEC9899:2017 . Programozási nyelvek - C (nem elérhető link) (2017) . Letöltve: 2019. február 2. Az eredetiből archiválva : 2018. október 24.. 
  5. ISO/IEC 9899:2018 - Információtechnológia - Programozási nyelvek - C . www.iso.org . Letöltve: 2019. február 2. Az eredetiből archiválva : 2018. augusztus 10.
  6. ↑ 1 2 A GNU fordítógyűjtemény (GCC) használata: C Dialect  Options . gcc.gnu.org. Letöltve: 2018. december 3. Az eredetiből archiválva : 2014. március 26..

Irodalom