C++: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Reverted 1 edit by 37.163.71.144 (talk): Ripristino Etichetta: Annulla |
|||
Riga 26:
[[Bjarne Stroustrup]] iniziò a lavorare al linguaggio 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 [[calcolo distribuito|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 [[Portabilità|portabile]] e veloce. Oltre al C ed al Simula, si ispirò a linguaggi come l'[[ALGOL 68]], [[Ada (linguaggio di programmazione)|Ada]], il [[linguaggio CLU|CLU]] ed il [[ML (linguaggio di programmazione)|linguaggio ML]]. Inizialmente, le funzionalità di [[classe (informatica)|classe]], [[ereditarietà (informatica)|classe derivata]], [[Tipizzazione forte|controllo rigoroso dei tipi]] e argomento di default furono aggiunte al C con [[Cfront]]. La prima versione commerciale fu distribuita nell'ottobre del [[1985]].<ref>{{Cita web|url=http://public.research.att.com/~bs/bs_faq.html#invention|titolo=Stroustrup: FAQ|accesso=22 aprile 2006|urlarchivio=https://web.archive.org/web/20120716211550/http://public.research.att.com/~bs/bs_faq.html#invention|dataarchivio=16 luglio 2012|urlmorto=sì}}</ref>
Nel 1983 il nome del linguaggio fu cambiato da "C con classi" a C++. Furono aggiunte nuove funzionalità, tra cui [[funzione virtuale|funzioni virtuali]], ''[[overloading]]'' di funzioni
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 (informatica)|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]]''.
Riga 37:
=== Genesi del nome ===
La [[Alfabeto fonetico internazionale|pronuncia]] di C++ è [ˌsiː plʌs ˈplʌs] (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'[[Operatori in C e C++|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 [[goliardia|goliardico]], e che non pensava che quello sarebbe divenuto il nome formale del linguaggio. Stroustrup ha anche suggerito a posteriori un'interpretazione [[George Orwell|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 (romanzo)|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 "C-issimo" e connoterebbe comunque il C++ come intenso miglioramento del C.<ref>{{cita libro| Bjarne | Stroustrup | C++ - Linguaggio, libreria standard, principi di programmazione | 2000 | Addison-Wesley | | capitolo="Note al lettore"}}</ref>
Riga 53:
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.
=== Operatori ===
{{Vedi anche|Operatori in C e C++}}
In C++, gli [[Operatori in C e C++|operatori]] sono punteggiature speciali che eseguono operazioni su uno o più operandi; questi possono essere classificati in diverse categorie, come logici, di assegnazione, [[Booleano (informatica)|booleani]], ..., e consentono di scrivere espressioni e di manipolare dati in modo efficace all'interno del codice C++.
== Programmi di esempio (derivati da C) ==
Riga 383 ⟶ 387:
== Voci correlate ==
* [[Operatori in C e C++]]
* [[C++11]]
* [[Crypto++]]
|