Quali sono le origini del C/C++?

giovedì 23 febbraio 2012

Nato nel 1972, il linguaggio di programmazione C è ancora oggi uno dei linguaggi di programmazione più usati al mondo.

Nel 1972 Dennis Ritchie progettava e realizzava, presso i Bell Laboratories, la prima versione del linguaggio C. Ritchie aveva ripreso e sviluppato molti dei costrutti sintattici utilizzati nella costruzione del sistema operativo UNIX da Ken Thompson.

Successivamente gli stessi Thompson e Ritchie riscrissero in C il codice di UNIX. Da allora il C ha subito pochissime trasformazioni, mantenendosi un linguaggio di alto livello che possiede un ristretto insieme di costrutti e di parole chiave, ma con una straordinaria forza espressiva. Il C consente di programmare in maniera modulare, utilizzando macro e funzioni, di interagire direttamente con funzioni tipiche del basso livello come ad esempio l’indirizzamento assoluto di memoria. Per l’eleganza della sua sintassi e la compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore.
Quando nella prima metà degli anni Ottanta, nella teoria della programmazione si sviluppano le basi per la OOP (Object Oriented Programming, programmazione orientata agli oggetti) si capisce presto che quella sarà la chiave di volta per lo sviluppo di applicazioni general-purpose. Ecco allora che il danese Bjarne Stroustrup propone nel 1983 un nuovo linguaggio denominato ”C con classi” ed infine C++.

Mantenendo una compatibilità quasi assoluta con il C, il C++ è un linguaggio Object Oriented che diventerà lo standard de facto per la programmazione di applicativi nel ventennio a seguire.
Il C++ rappresenta un linguaggio completamente autonomo rispetto al C, pur utilizzandone sostanzialmente la sintassi. In particolare, l’introduzione di costrutti quali i template e le classi rende il C++ un linguaggio multi paradigma, principalmente quello a oggetti.

Keywords: c, c++, c/c++, linguaggio c, linguaggio c++, template, classe, function, enum, memcpy, reference, if, then, else, #define, ritchie, programmazione procedurale, programmazione object oriented, oop, struct, main, int, float, double, char, string, namespace 


ALTRI LINK: