Bjorn Stroustrup. Storia del C ++

09/04/2019

Questo articolo si concentrerà sulla creazione di uno dei linguaggi di programmazione più complessi e indispensabili in C ++. Il suo creatore è il programmatore Bjorn Straustrup, la cui biografia è un modello di incredibile dedizione.

  • Master alla fine degli studi presso l'Università di Aarhus (Danimarca) nel dipartimento di informatica.
  • Difesa della tesi presso l'Università di Cambridge. Appartenenza al college Churchill.
  • Trasferirsi nel New Jersey e lavorare presso il centro di ricerca computerizzata Bell Telephone Laboratories.
  • Dirigere il dipartimento di ricerca di programmazione su larga scala presso AT & T Bell Labs.
  • Iscrizione alla National Academy of Engineering (USA).
  • Appartenenza all'Accademia di Medicina, Ingegneria e Scienza del Texas.

E molti premi e riconoscimenti meritati, uno dei quali - il nome di Grace Murray Hopper - è stato ricevuto per lo sviluppo del linguaggio C ++.

Bjorn Stroustrup

Che cosa è venuto fuori con Bjorn Straustrup

Il linguaggio di programmazione C ++ ha una storia che inizia nel 1979, quando un programmatore di talento ha lavorato per il suo dottorato di ricerca. La lingua con cui lavorava era Simula, principalmente intesa (a giudicare dal nome) per le simulazioni. Questo è il primo linguaggio che supporta il paradigma di programmazione orientato agli oggetti, che Bjorn Stroustrup ha scoperto è stato molto utile per lo sviluppo del software. Simula, tuttavia, era troppo lento per l'uso pratico.

Linguaggio C

Poco dopo, Bjarne Straustrup ha iniziato a lavorare su "C with classes" (C ++), che, come suggerisce il nome, avrebbe dovuto essere un superset del linguaggio C. Il suo obiettivo era aggiungere la programmazione orientata agli oggetti alla lingua "C" (che era e rimane una lingua che merita rispetto per la sua mobilità), senza sacrificare la velocità o la funzionalità di basso livello. La sua lingua includeva classi, ereditarietà di base, incorporamento, argomenti di funzione predefiniti e controlli rigorosi sui tipi oltre a tutti funzioni linguistiche "Si." bjarne straustrup linguaggio di programmazione con

compilatore

Il primo compilatore "C with classes" è stato chiamato Cfront e derivato dal compilatore C CPre. Era un programma progettato per tradurre il codice "C con classi" in ordinario C. Un punto interessante da notare è che Cfront è stato scritto principalmente in "C con classi", che lo rende un compilatore autosufficiente (compilatore, puoi compilare te stesso). Successivamente, Cfront verrà chiuso nel 1993 dopo che è diventato difficile integrare nuove funzioni in esso, vale a dire eccezioni C ++. Ciononostante, Cfront ha avuto un enorme impatto sull'implementazione dei futuri compilatori e sul sistema operativo Unix.

Cronologia di C ++

Nel 1983, il nome della lingua fu cambiato da C a C a C ++. L'operatore ++ nel linguaggio C è l'operatore per l'incremento di una variabile. Ciò fornisce alcune informazioni su come Bjorn Straustrup ha considerato la programmazione e il linguaggio che ha inventato con molte nuove funzionalità. Le più importanti di queste sono funzioni virtuali, sovraccarico di funzioni, collegamenti con il simbolo &, la parola chiave const e commenti a riga singola usando due barre (questa è una funzione che deriva dal linguaggio BCPL). Programmazione di Björn Stroustrup

Nel 1985, il libro Straustrup è stato pubblicato con il titolo "C ++ Programming Language", tradotto in 19 lingue e ha resistito a 4 ristampe. Nello stesso anno, C ++ è stato implementato come prodotto commerciale. La lingua non è ancora ufficialmente standardizzata, il che rende il libro molto importante. Nel 1989, la lingua è stata aggiornata per includere membri protetti e statici, oltre all'eredità di diverse classi.

Nel 1990, fu pubblicato il Manuale di riferimento Annotated C ++. Nello stesso anno, il compilatore Borland Turbo C ++ verrà rilasciato come prodotto commerciale. Turbo C ++ ha aggiunto molte librerie aggiuntive che possono influenzare significativamente lo sviluppo di C ++. Sebbene l'ultima versione stabile di Turbo C ++ fosse nel 2006, il compilatore è ancora ampiamente utilizzato.

Nel 1998, il C ++ Standards Committee ha pubblicato il primo standard internazionale per C ++ ISO IEC 14882: 1998, che sarà informalmente conosciuto come C ++ 98. Si è pensato che il Manuale di riferimento Annotated C ++ avesse una grande influenza sullo sviluppo standard. Era inclusa anche la Standard Template Library, che iniziò il suo sviluppo concettuale nel 1979. Nel 2003, la commissione ha risposto a numerosi problemi riportati nella norma del 1998 e la ha rivista di conseguenza. Il linguaggio modificato è chiamato C ++ 03. Biografia di Bjorn Stroustrup

Nel 2005, il Comitato per gli standard C ++ ha pubblicato un rapporto tecnico (chiamato TR1), che descriveva in dettaglio le varie funzioni che prevedevano di aggiungere all'ultimo standard C ++. Il nuovo standard non era ufficialmente chiamato C ++ 0x, dal momento che dovrebbe essere rilasciato fino alla fine del primo decennio. Stranamente, tuttavia, il nuovo standard non sarà rilasciato fino a metà 2011. Prima di questo, sono stati rilasciati diversi report tecnici e alcuni compilatori hanno iniziato ad aggiungere supporto sperimentale per nuove funzionalità.

Standard 2011

A metà 2011, è stato completato un nuovo standard C ++ (chiamato C ++ 11). Il progetto della libreria Boost ha avuto un impatto significativo sul nuovo standard e alcuni dei nuovi moduli sono stati ottenuti direttamente dalle corrispondenti librerie Boost. Bjorn Stroustrup

Alcune delle nuove funzionalità includevano il supporto per le espressioni regolari (informazioni dettagliate sulle espressioni regolari possono essere trovate qui), una libreria di randomizzazione completa, una nuova libreria di tempo C ++, supporto di atomistica, una libreria di thread standard (che, fino al 2011, non era disponibile in C o C ++) una nuova sintassi del ciclo for che offre funzionalità simili ai cicli foreach in alcuni altri linguaggi, la parola chiave auto, le nuove classi contenitore, un migliore supporto per gli elenchi e le opzioni di inizializzazione degli array e degli array modelli selvaggi.