Sei sulla pagina 1di 4

C++

Da Wikipedia, l'enciclopedia libera.

C++
Autore Bjarne Stroustrup Data di 1983 origine Utilizzo Generico Paradigmi Multi-Paradigma, Procedurale, Funzionale, Object-Oriented Tipizzazione Statica Estensioni .h .hh .hpp .hxx .h++ .cc comuni .cpp .cxx .c++

Il C++ un linguaggio di programmazione orientato agli oggetti, con tipizzazione statica. stato sviluppato (in origine col nome di "C con classi") da Bjarne Stroustrup ai Bell Labs nel 1983 come un miglioramento del linguaggio C. Tra i miglioramenti principali troviamo: l'introduzione del paradigma di programmazione a oggetti, funzioni virtuali, overloading degli operatori, ereditariet multipla, template e gestione delle eccezioni.
Indice
[nascondi]

1 Introduzione 2 Storia del linguaggio o 2.1 Il nome del linguaggio 3 La libreria standard 4 Compilatori 5 Programmi di esempio o 5.1 Hello, world! o 5.2 Somma di interi o 5.3 Definizione di Classe 6 Il controllo dell'input 7 Note 8 Bibliografia 9 Voci correlate 10 Altri progetti 11 Collegamenti esterni

Introduzione[modifica | modifica sorgente]

Il C++ molto diffuso e apprezzato, ma raramente usato al massimo delle sue potenzialit: la semantica del C++ molto ricca di dettagli e sfumature che condizionano il comportamento del codice, e che molto spesso i compilatori implementano in maniera scorretta o incompleta: molte delle caratteristiche dello standard ISO del linguaggio non sono ancora implementate nei compilatori attuali, anche se la situazione sta lentamente migliorando. La grande ricchezza semantica del C++, insieme alle librerie che lo accompagnano, lo rende un linguaggio estremamente espressivo e potente, ma che richiede molto tempo per venire appreso e padroneggiato completamente. Inoltre a causa della variabilit del comportamento dei compilatori nel maneggiare le funzioni pi avanzate del linguaggio, i programmatori C++ che scelgono di farne uso si rivolgono ad un'architettura (processore, sistema operativo e compilatore) particolare sacrificando la portabilit su altre piattaforme. Il C++ fu standardizzato nel 1998 (ISO/IEC 14882:1998 "Information Technology - Programming Languages - C++", aggiornato nel 2003). L'ultima versione dello standard (nota informalmente come C++11) stata pubblicata nel 2011.

Storia del linguaggio[modifica | modifica sorgente]

Bjarne Stroustrup, autore del linguaggio. Bjarne Stroustrup inizi a lavorare al C++ nel 1979. L'idea di creare un nuovo linguaggio ebbe origine nelle sue esperienze di programmazione durante la realizzazione della tesi di laurea. Stroustrup trov che il Simula avesse caratteristiche utili per lo sviluppo di grossi progetti software, ma il linguaggio era troppo lento per l'utilizzo pratico, mentre il BCPL risultava veloce ma troppo a basso livello per lo sviluppo di grosse applicazioni. Quando Stroustrup cominci a lavorare ai laboratori Bell, gli fu affidato il compito di analizzare il kernel di Unix in ambito di elaborazione distribuita. Ricordandosi del lavoro della tesi, decise di aggiungere al linguaggio C alcune delle caratteristiche di Simula. Fu scelto il C perch era un linguaggio per uso generico portabile e veloce. Oltre al C ed al Simula, si ispir a linguaggi come l'ALGOL 68, Ada, il CLU ed il linguaggio ML. Inizialmente, le funzionalit di classe, classe derivata, controllo rigoroso dei tipi e argomento di default furono aggiunte al C con Cfront. La prima versione commerciale fu rilasciata nell'ottobre del 1985.[1] Nel 1983 il nome del linguaggio fu cambiato da "C con classi" a C++. Furono aggiunte nuove funzionalit, tra cui funzioni virtuali, overloading di funzioni ed operatori, reference, costanti, controllo dell'utente della gestione della memoria, type checking migliorato e commenti nel nuovo stile ("//"). Nel 1985 fu pubblicata la prima edizione di The C++ programming Language, che forn un'importante guida di riferimento del linguaggio, che non era ancora stato ufficialmente standardizzato. Nel 1989 fu rilasciata la versione 2.0 del C++, le cui novit includono l'ereditariet multipla, le classi astratte, le funzioni membro statiche, le funzioni membro const, e i membri protetti. Nel 1990 fu pubblicato The Annotated C++ Reference Manual, che forn le basi del futuro

standard. Le ultime aggiunte di funzionalit includono i template, le eccezioni, i namespace i nuovi tipi di cast ed il tipo di dato booleano. Cos come il linguaggio, anche la libreria standard ha avuto un'evoluzione. La prima aggiunta alla libreria standard del C++ stata la libreria degli stream di I/O che forniva servizi sostitutivi della libreria C tradizionale (come printf e scanf). In seguito, tra le aggiunte pi significative c' stata la Standard Template Library. Dopo anni di lavoro, un comitato che presentava membri della ANSI e della ISO hanno standardizzato C++ nel 1998(ISO/IEC 14882:1998). Per qualche anno seguente al rilascio ufficiale degli standard, il comitato ha seguito lo sviluppo del linguaggio e ha pubblicato nel 2003 una versione corretta dello standard. Risale al 2005 un report tecnico, chiamato "Technical Report 1" (abbreviato TR1) che, pur non facendo ufficialmente parte dello standard, contiene un numero di estensioni alla libreria standard del C++11. Non c' un proprietario del linguaggio C++, che implementabile senza dover pagare royalty. Il documento di standardizzazione stesso per disponibile solo a pagamento.

Il nome del linguaggio[modifica | modifica sorgente]


La pronuncia di C++ [si pls pls] (in inglese). Il nome fu suggerito da Rick Mascitti alla met del 1983, quando il linguaggio veniva usato per la prima volta al di fuori dei centri di ricerca. Precedentemente il linguaggio si chiamava "C with classes" (C con classi). Il nome un gioco di parole con un costrutto del C (dove il doppio segno pi l'operatore di autoincremento, che incrementa di una unit il valore di una variabile) insieme con la comune convenzione di aggiungere un segno pi per indicare una versione potenziata. Secondo Stroustrup: ++ l'operatore di incremento del C... il nome esprime la natura evoluzionaria dei cambiamenti dal C. Impiegando il gioco di parole si evita anche il problema che "C+" gi stato usato per un linguaggio senza alcun nesso col C++ (senza menzionare che comunemente associato con una valutazione poco pi che sufficiente in una performance accademica). Quando, nel 1992, gli furono chieste informalmente spiegazioni sul nome, Rick Mascitti ha spiegato di aver dato il suggerimento con spirito goliardico, e che non pensava che quello sarebbe divenuto il nome formale del linguaggio. Stroustrup ha anche suggerito a posteriori un'interpretazione pi "orwelliana" del nome, in riferimento al "Dizionario C" della Neolingua (nel romanzo il dizionario dei termini tecnici, unico residuo di un linguaggio scientifico) descritto nell'appendice di 1984 e al prefisso doubleplus (arcipi nell'edizione italiana), utilizzato in Neolingua per il superlativo. Bench non fedelissimo alla sintassi fittizia definita nel romanzo con estrema precisione, il nome suonerebbe come "Cissimo" e connoterebbe comunque il C++ (forse aggiungendo una sfumatura di disumana efficienza) come intenso miglioramento del C. [2]

La libreria standard[modifica | modifica sorgente]

Lo standard del C++ del 1998 consiste di due parti: il nucleo del linguaggio e la libreria standard del C++; quest'ultima include la maggior parte della Standard Template Library ed una versione della libreria standard del C leggermente modificata per un uso pi comodo. Esistono molte librerie per il C++ che non fanno parte dello standard; ed possibile, usando il linking esterno, utilizzare anche le librerie scritte per il linguaggio C. La STL era in origine una libreria di terze parti, sviluppata da HP ed in seguito da Silicon Graphics, prima che venisse incorporata nel C++ standard. Lo standard non si riferisce ad essa come alla "STL", poich semplicemente parte della libreria completa, ma molti continuano ad usare il termine per distinguerla dal resto della libreria (come flussi di I/O, internazionalizzazione, funzioni diagnostiche, ecc.) La maggior parte dei compilatori fornisce anche un'implementazione della libreria standard, STL compresa. Esistono anche versioni indipendenti dal compilatore della STL, come ad esempio la STLPort.[3]

Compilatori[modifica | modifica sorgente]


Alcuni compilatori per C++ sono: Clang (multipiattaforma), GCC (disponibile per molte piattaforme diverse), MinGW (porting di GCC per Windows) e DJGPP. Oltre a questi ci sono i compilatori commerciali come VisualC++ ed Embarcadero C++ Builder (inizialmente realizzato dalla Borland). Anche se il C non un sottoinsieme del C++ nel senso pi stretto della parola, possibile compilare in C++ molti programmi scritti in C. Vecchi problemi Tradizionalmente i compilatori C++ hanno avuto un certo numero di problemi. Lo standard del C++ non specifica l'implementazione della decorazione dei nomi, della gestione delle eccezioni e altre funzioni specifiche dell'implementazione, e ci rende incompatibile il codice oggetto prodotto da compilatori diversi. Ci sono per standard di terze parti per particolari macchine o sistemi operativi che cercano di standardizzare i compilatori per tali piattaforme, ad esempio l'ABI per C++, ed ora molti compilatori hanno standardizzato questi elementi. Per molti anni i diversi compilatori hanno implementato lo standard del C++ con diversi livelli di correttezza, in particolare la specializzazione parziale dei template. Le versioni recenti dei compilatori pi usati supportano quasi tutto lo standard del C++ del 1998