C linguaggio di programmazione | |
---|---|
Logo presente nella copertina inglese di Il linguaggio C, manuale scritto dal creatore di C Dennis Ritchie e da Brian Kernighan[1] | |
Autore | Dennis Ritchie |
Data di origine | 1972 |
Ultima versione | C23 (ottobre 2024) |
Utilizzo | Generico (alta efficienza) |
Paradigmi | imperativo procedurale |
Tipizzazione | Statica |
Estensioni comuni | .c per i sorgenti e .h per le intestazioni |
Influenzato da | BCPL, B, ALGOL |
Ha influenzato | Numerosi, tra cui C++, Objective-C, C#, Swift, D |
Implementazione di riferimento | |
Sito web | www.open-std.org/jtc1/sc22/wg14/ e www.iso.org/standard/82075.html |
C (AFI: /ˈsiː/[senza fonte]) è un linguaggio di programmazione a uso generale di natura imperativa e procedurale creato da Dennis Ritchie negli anni 1970. Tutt'oggi influente, è largamente adoperato nei sistemi operativi, nei driver e nelle pile di protocolli, mentre è in diminuzione il suo uso nelle applicazioni.[2] C è comunemente usato in architetture che vanno dai più grandi supercalcolatori fino ai minuscoli microcontrollori e sistemi integrati.
Successore del linguaggio B, C fu in origine sviluppato ai Bell Labs da Ritchie tra il 1972 e il 1978 per costruire utilità eseguibili su Unix, e fu subito dopo applicato nella reimplementazione del kernel di quel sistema operativo.[3] Durante gli anni 1980, C gradualmente crebbe in popolarità, diventando nel terzo millennio uno dei linguaggi più usati in assoluto,[4][5] con compilatori disponibili per praticamente ogni architettura e sistema operativo moderni. Il libro intitolato The C Programming Language, scritto dal suo creatore insieme a Brian Kernighan, servì per molti anni come lo standard de facto del linguaggio.[1][6] Dal 1976, C è normato dall'American National Standards Institute (ANSI) e dall'International Organization for Standardization (ISO).
C è un linguaggio procedurale imperativo, che supporta la programmazione strutturata, la visibilità lessicale e la ricorsione, e possiede un sistema di tipi statico. Il linguaggio C permette l'utilizzo a basso livello alla memoria e fornisce costrutti che combaciano efficientemente con le istruzioni del linguaggio macchina. Nonostante le sue capacità a basso livello, il linguaggio è adatto per essere programmato su piattaforme diverse: un programma in C conforme scritto per essere portabile può essere compilato per una vasta gamma di piattaforme con poche variazioni al suo codice sorgente.[7]
A partire dal 2000, C è costantemente classificato tra i primi due linguaggi nell'indice TIOBE, una misura di popolarità dei linguaggi di programmazione.[8]