(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
(Petite) 
Histoire de 
C++ 
Florian 
Galinier 
Introduction 
1983, une année à 
succès 
Remontons le 
temps... 
Simula 67,...
Prochain SlideShare
Chargement dans…5
×

(Petite) Histoire de C++

470 vues

Publié le

C++ est un langage vaste et complexe. Une réalité historique se cache derrière cela, et permet de mieux comprendre pourquoi ce langage est ce qu'il est aujourd'hui.
Cette présentation a été donnée lors des Rencontres C++ à Montpellier le 25/11/14.

http://fgalinier.fr/index.html

Publié dans : Logiciels
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
470
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
5
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

(Petite) Histoire de C++

  1. 1. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources (Petite) Histoire de C++ Florian Galinier 25 novembre 2014
  2. 2. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources 1 Introduction 1983, une année à succès 2 Remontons le temps... Simula 67, les origines de la POO BCPL, B, C 3 Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? 4 Conclusion 5 Sources
  3. 3. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Quelques sorties célèbres en 1983
  4. 4. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Prix Turing Ken Thompson et Dennis Ritchie sont récompensés pour leurs travaux sur UNIX
  5. 5. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Une naissance célèbre Bjarne Stroustrup : Le papa d’un tout nouveau langage : le C++
  6. 6. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources BCPL Simula 67 C++ B C C++ : un héritage multiple
  7. 7. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Simula I Simple Universal Language (1962) Créé par Ole-Johan Dahl et Kristen Nygaard Surtout connu pour son évolution de 1967
  8. 8. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Un exemple de Simula 67 CLASS Re c t a n g l e ( width , h e i g h t ) ; REAL width ; REAL h e i g h t ; BEGIN REAL a r e a ; PROCEDURE p r i n t ; BEGIN OutText ( Re c t a n g l e : ) ; OutFix (Width , 2 , 6 ) ; OutText ( x ) ; OutFix ( Height , 2 , 6 ) ; OutImage ; END; a r e a := width h e i g h t ; END;
  9. 9. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Les instructions suivantes : REF( Re c t a n g l e ) r ; r :− NEW Re c t a n g l e ( 1 0 , 2 0 ) ; r . p r i n t ; OutText ( Area : ) ; OutFix ( r . area , 2 , 6 ) ; entraineront l’affichage de : Rectangle: 10.00 x 20.00 Area: 200.00
  10. 10. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources BCPL $ ( LET X = VEC 2 AND Y = X X! 0 := 13 X! 1 := 1.035 WRITEF(%NN , Y! 1 ) ) $ The experience of coding and debugging (...) in BCPL was horrible. BCPL makes C look like a very high level language (...) Bjarne Stroustrup, A History of C++
  11. 11. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources B main ( ) { e x t r n p r i n t f ; auto x [ 2 ] , y ; x [ 0 ] = 1 3 ; x [ 1 ] = 1 . 0 3 5 ; y = x ; p r i n t f (%dn , y [ 1 ] ) ; }
  12. 12. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources C i n t main ( v o i d ) { auto i n t x [ 2 ] = { 1 3 , 1 . 0 3 5 } , y = x ; p r i n t f (%dn , y [ 1 ] ) ; r e t u r n 0 ; }
  13. 13. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources 1979-1983 c l a s s Re c t a n g l e { f l o a t width ; f l o a t h e i g h t ; v o i d new( f l o a t , f l o a t ) ; / Co n s t r u c t e u r / c a l l ( ) ; / Avant chaque a p p e l de f o n c t i o n / r e t u r n ( ) ; / Apres chaque a p p e l de f o n c t i o n / p u b l i c : f l o a t a r e a ( ) ; } ; f l o a t Re c t a n g l e . a r e a ( ) { r e t u r n width h e i g h t ; }
  14. 14. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Classes et héritage Visibilités public / private Constructeurs et destructeurs Classes friend call() et return() Arguments par défaut Surcharge de l’opérateur =
  15. 15. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources 1983-1985 Fonctions virtuelles Surcharge d’opérateur et de fonctions Référence Constantes Suppression de call() et return() Ajout des commentaires // Le . désigne désormais uniquement l’appartenance à un objet, le :: l’appartenance à une classe
  16. 16. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources 1985-1988 Héritage multiple Classes abstraites Méthodes statiques Méthodes const Visibilité protected Surcharge de -
  17. 17. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Première standardisation du C++ Template Namespace Exceptions Boolean
  18. 18. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Boucle for(x : y) nullptr Fonctions lambda Pointeurs intelligents Inférence de type (auto) Move semantics Ajout des enum class et enum struct std::thread et encore énormément d’ajouts dans la bibliothèque standard...
  19. 19. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Déduction du type de retour des fonctions Déduction du type des paramètres des lambdas Littéraux binaires Séparateurs de nombres Template de variable Attribut [[deprecated]] Quelques ajouts dans la STL
  20. 20. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Prochaine norme majeure en 2017 Quelques nouveautés déjà implémentées par des compilateurs
  21. 21. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Au final, C++ c’est : de la programmation impérative ; de la programmation orientée objet ; de la programmation générique.
  22. 22. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources Préférez-vous... X p = new X( 2 ) ;
  23. 23. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources ... ou bien ? s t r u c t X p = ( s t r u c t X ) ma l l o c ( s i z e o f ( s t r u c t X) ) ; i f ( p == 0) e r r o r ( memory e xhaus t ed ) ; p−i n i t ( 2 ) ;
  24. 24. (Petite) Histoire de C++ Florian Galinier Introduction 1983, une année à succès Remontons le temps... Simula 67, les origines de la POO BCPL, B, C Retour vers le futur C with Classes C++ C++ 2.0 C++98 C++11 C++14 Et maintenant ? Conclusion Sources A History of C++, Bjarne Stroustrup Martin Richards’s BCPL Reference Manual, 1967 The Computer History Museum’s Software Preservation – http://www.softwarepreservation.org Le site de Martin Richards (avec un compilateur BCPL à disposition !) – http://www.cl.cam.ac.uk/~mr10/ Le compilateur GNU Cim pour Simula – http://folk.uio.no/simula67/cim.shtml Le support du standard C++14 du compilateur GCC – https://gcc.gnu.org/projects/cxx1y.html Le support des standards du compilateur Clang – http://clang.llvm.org/cxx_status.html Le comité standard C++ – http://www.open-std.org/jtc1/sc22/wg21/

×