2.4. C

Programmeringssproget C blev designet til at skrive det oprindelige Unix-styresystem i. Det er designet efter at en C-oversætter ikke må bruge særlig mange ressourcer. Den oprindelige C-oversætter gennemgik for eksempel kildeteksten tre gange og lagrede mellemresultater i andre filer for at undgå at bruge for meget hukommelse.

På grund af C's oprindelige formål er det i dag god latin – i det mindste blandt Unix-tilhængere – at styresystemer skal skrives i C.

Skal et program køre hurtigt, så er C et godt valg. C har dog en syntaks der dels er svær at forstå for begyndere og dels kræver stor opmærksomhed hvis man vil undgå fejl i sine programmer. Det er for eksempel både op til brugeren at allokere hukommelse til datastrukturer og at sørge for at programmet kun skriver inden for den allokerede hukommelse. Dette er en egenskab ved C der i tidens løb har ledt til mange problematiske programmeringsfejl og sikkerhedshuller. Det er samtidig også en af grundene til at det kan tage lang tid at finde fejl i C-programmer. C har også en meget primitiv repræsentation af strenge. I det hele taget har C et lavt abstraktionsniveau og en alvorlig mangel på beskyttelse mod utilsigtede oversættelser mellem de forskellige datatyper.

Der findes i dag en ISO-standard for programmeringssproget C (ISO/IEC 9899:1999), men det er desværre ikke almindeligt at C-oversættere udsættes for en formel afprøvning af om de lever op til standarden. GCC har (vistnok) siden version 3.0 levet op til ISO-standarden.