next up previous contents
Next: C++-kielen synty Up: C- ja C++-ohjelmointikielten kehitys Previous: Ongelmia B-kielen kanssa   Contents


C-kielen kehitys

Ritchie alkoi kehittelemään B-kielestä uutta ohjelmointikieltä NB (new B). Kielessä oli muuttujatyypit int ja char, sekä niille osoittimet. Rakenteisten muuttujien (struct) lisääminen uuteen kieleen vaati koko BCPL- ja B-kielistä perityn staattisen osoitinmekanismin saattamista uuteen uskoon. Uusi systeemi salli rakenteiset muuttujat, jotka sisälsivät toisia rakenteisia muuttujia, osoittimet osoittimiin ja osoittimet funktioihin. Osoitinsysteemin uudistus muodostui sellaiseksi kuin se on C-kielessä edelleen ja on paljon velkaa ohjelmointikielelle Algol 68. Muut ratkaisevat muutokset kielen syntaksiin olivat uudenlaiset loogiset operaattorit (&, |, &&, ||).

Kieli erosi B-kielestä jo niin paljon, että Ritchie antoi sille uuden nimen C. Vuoteen 1973 mennessä muitakin Bell Labsin tutkijoita oli liittynyt C-kielen kehitykseen ja merkittävimmät ominaisuudet kieleen olivat olemassa. Kääntämiseen liittyvä suuri uudistus oli esiprosessorin lisääminen, mikä mahdollisti lähdetiedostojen lisäämisen (#include), merkkijonojen korvaamisen (#define), makrot argumenteilla ja ehdollisen kääntämisen. [Ric93]

Seuraavina vuosina C-kielen kehityksessä keskityttiin siirrettävyyteen, tietotyyppien toimivuuteen (type safety) ja C-kielellä kirjoitettujen ohjelmien yhteensopivuuteen olemassaolevien ohjelmien kanssa. Unix pystyttiin kirjoittamaan C-kielellä ja siirtämään se muihin laiteympäristöihin.

Figure 4: Brian Kernighan
\includegraphics[width=0.3\textwidth]{kernighan.eps}

Vuonna 1978 Dennis Ritchie kirjoitti työkaverinsa Brian Kernighanin (kuvassa 4) kanssa kirjan The C Programming Language. Vaikka siinä ei ollut C-kielen myöhempiä ominaisuuksia (mm. void ja enum) eikä se ollut usein riittävän tarkka, niin se toimi ainoana ''virallisena'' C-kielen käsikirjana useita vuosia. Kirjan tekijöiden nimistä tuleekin vanhan C-kielen nimitys K&R C.

Vuonna 1982 C-kieli oli - osaksi Unix-käyttöjärjestelmän suosion ansiosta - tullut suosituksi useissa laiteympäristöissä, mutta oli edelleen ilman muodollista standardia. ANSI (American National Standards Institute) perusti komitean X3J11 kehittämään ANSI C -standardia. Raportti oli valmis vuonna 1989, ja vuotta myöhemmin standardin hyväksyi ISO (International Organization for Standardization) tunnuksella ISO/IEC 9899-1990.


next up previous contents
Next: C++-kielen synty Up: C- ja C++-ohjelmointikielten kehitys Previous: Ongelmia B-kielen kanssa   Contents
Juha T Huotari 2003-02-11