C (ohjelmointikieli)
Wikipedia
Kuva:- | |
Paradigma | proseduraalinen |
Tyypitys | heikko, staattinen |
Yleinen suoritusmalli | - |
Muistinhallinta | manuaalinen |
Julkaistu | 1972 |
Kehittäjä | Dennis Ritchie |
Viimeisin vakaa versio | - |
Viimeisin julkaisupäivä | |
Viimeisin kehitysversio | - |
Merkittävimmät toteutukset | |
Vaikutteet | B, BCPL |
Vaikuttanut | C++ |
Murteet | |
Käyttöjärjestelmä | |
WWW-sivut | |
Uutisryhmä | comp.lang.c |
(muokkaa) |
C-ohjelmointikieli on Dennis Ritchien 1970-luvun alussa UNIX-käyttöjärjestelmälle kehittämä imperatiivinen ja sittemmin standardisoitu ohjelmointikieli. Se perustuu Ken Thompsonin kehittämään B-kieleen.
C-kieli tarkoitettiin alun perin pelkästään järjestelmäohjelmointiin, mutta se on saavuttanut suosiota myös sovellusohjelmointikielenä. C yleistyi Unixin yleistyessä ja nykyisin käytännössä kaikki järjestelmäalustat käyttävät C-kieltä järjestelmäkielenään. C-kielen merkitys näkyy myös siinä, että monet kielet muistuttavat C:tä avainsanoiltaan ja syntaksiltaan, vaikka niiden toimintaperiaate ja käyttötarkoitus olisi erilainen. Jotkin uudemmat ohjelmointikielet, kuten C++, C# ja Java, pohjautuvat C-kieleen. Ne eivät kuitenkaan ole syrjäyttäneet C-kieltä täysin. Joidenkin korkean tason ohjelmointikielten toteutukset käyttävät C-kieltä välikielenä.
C-kielellä on seuraavia ominaispiirteitä:
- Yksinkertainen ydinkieli, jonka lisäksi keskeisiä toimintoja toteutettu kirjastoissa
- Minimalistinen määrä varattuja avainsanoja
- Keskeisenä periaatteena rakenteellinen proseduraalinen ohjelmointi
- Yksinkertainen ALGOL-sukulaiskielten tapainen tyyppijärjestelmä
- Matalan tason pääsy tietokoneen muistiin osoittimien avulla
- Parametrien välitys aliohjelmille joko arvoina tai viitteinä käyttämällä osoittimia
- Funktio-osoittimet, jotka mahdollistavat yksinkertaisten jatkumoiden ja monimuotoisuuden (polymorfismi) käytön
- Leksikaalinen muuttujien määrittelyalue (lexical variable scoping)
- Tietueet, käyttäjän luomat datatyypit (
struct
-avainsana) joiden avulla toisiinsa liittyviä muuttujia voidaan käsitellä yhdessä - Esikääntäjä (C Preprocessor), jonka avulla voidaan mm. yhdistää useissa tiedostoissa sijaitsevaa lähdekoodia ja määritellä makroja
Yksinkertaisuuden tavoittelun vuoksi C-kielestä puuttuu suora tuki monille muista kielistä löytyville ominaisuuksille. Näitä ovat mm. vahva tyypitys (type safety), roskienkeräys, funktioiden ja operaattoreiden ylikuormitus, tuki säikeille, listojenkäsittely ym. Tosin useimmat näistä ominaisuuksista voidaan ohjelmoida C-kielellä epäsuorasti.
[muokkaa] Standardit
Alkuperäinen epävirallinen standardi C-ohjelmointikielestä tunnetaan nimellä K&R, kahden C-kielen alkuperäisen kuvauksen kirjoittajien mukaan (Ritchie ja Kerninghan).
Uusin standardi on ISO/IEC vuoldeta 1999, joka tunnetaan nimellä C99. Se pohjautuu sitä edeltäneeseen ANSI C standardiin vuodelta 1989, joka tunnetaan myös nimellä C89. Käytännössä kaikki merkittävimmät kääntäjät tukevat uusimpaa C99 standardia (vuoden 2007 ensimmäisellä neljänneksellä), vaikka sen toteus saattaa joltain piirteiltään olla edelleen epätäydellinen.
ISO/IEC ja ANSI standardit koskevat paitsi itse kielen semantiikkaa ja syntaksia, myös asianomaiselle alustalle käännettyjä peruskirjastoluokkia, jotka tulevat yleensä kunkin valmistajan toimittaman kääntäjän mukana (ks. C-standardikirjastot).
[muokkaa] Esimerkkiohjelma
Esimerkkiohjelma tulostaa rivin ”Hei maailma!” vakiotulostevirtaan, joka on yleensä tietokoneen näyttöpääte.
#include <stdio.h> int main ( void ) { printf ( "Hei maailma!\n" ); return 0; }
[muokkaa] Aiheesta muualla
ALGOL| BASIC| Modula-3 | MUMPS | Plankalkül | PL/I | Simula
Tuotantokäytössä: |
|