+33 2 99 05 93 43
Les enseignants ne répondent qu'aux messages envoyés en utilisant la page Piazza
Le dépôt GIT du cours
La page dédiée aux projets
Les projets sont évalués selon 3 critères
Lundi 25 novembre
Quelques exemples de programmes: gestion du tas, classe dynamique
In computer science, a memory leak occurs when a computer program incorrectly manages memory allocations. In object-oriented programming, a memory leak may happen when an object is stored in memory but cannot be accessed by the running code. A memory leak has symptoms similar to a number of other problems (see below) and generally can only be diagnosed by a programmer with access to the program. Because they can exhaust available system memory as an application runs, memory leaks are often the cause of or a contributing factor to software aging. Memory leak, Wikipedia
Lundi 19 novembre 2018
Le concepteur de C++ est aussi un grand communicant, ce qui a sans doute significativement contribué à la large adoption du langage. Son site personnel déborde d'informations. Vous y trouverez par exemple un grand nombre d'entretiens. Pour un exemple récent, voir Bjarne Stroustrup Discusses C++.
Il maintient une liste des principales questions qui ont été posées à propos de C++. Voir en particulier celles sur l'héritage.
Plus étonnant, il maintient aussi une liste des grandes applications développées en C++: Geant4, GCC, Google, Microsoft, etc.
Here is a list of systems, applications, and libraries that are completely or mostly written in C++. Naturally, this is not intended to be a complete list. In fact, I couldn't list a 1000th of all major C++ programs if I tried, and this list holds maybe 1000th of the ones I have heard of. It is a list of systems, applications, and libraries that a reader might have some familiarity with, that might give a novice an idea what is being done with C++, or that I simply thought “cool”. Bjarne Stroustrup, Applications
Lundi 5 novembre et lundi 12 novembre
Thème: une approche sémantique de la programmation objet, ou la programmation objet sans les langages orientés objet
The C++ programming language has a history going back to 1979, when Bjarne Stroustrup was doing work for his Ph.D. thesis. One of the languages Stroustrup had the opportunity to work with was a language called Simula, which as the name implies is a language primarily designed for simulations. The Simula 67 language - which was the variant that Stroustrup worked with - is regarded as the first language to support the object-oriented programming paradigm. Stroustrup found that this paradigm was very useful for software development, however the Simula language was far too slow for practical use.
Shortly thereafter, he began work on “C with Classes”, which as the name implies was meant to be a superset of the C language. His goal was to add object-oriented programming into the C language, which was and still is a language well-respected for its portability without sacrificing speed or low-level functionality. His language included classes, basic inheritance, inlining, default function arguments, and strong type checking in addition to all the features of the C language.
[…] In mid-2011, the new C++ standard (dubbed C++11) was finished. The Boost library project made a considerable impact on the new standard, and some of the new modules were derived directly from the corresponding Boost libraries. Some of the new features included regular expression support (details on regular expressions may be found here), a comprehensive randomization library, a new C++ time library, atomics support, a standard threading library (which up until 2011 both C and C++ were lacking), a new for loop syntax providing functionality similar to foreach loops in certain other languages, the auto keyword, new container classes, better support for unions and array-initialization lists, and variadic templates.
Written by Albatross, History of C++
Les discours de Turing Award de Thompson et Ritchie en 1983
Voir la page dédiée.
Measuring programming language popularity It is difficult to determine which programming languages are most widely used, and what usage means varies by context. One language may occupy the greater number of programmer hours, a different one have more lines of code, a third may utilize the most CPU time, and so on. Some languages are very popular for particular kinds of applications. For example, COBOL is still strong in the corporate data center, often on large mainframes; FORTRAN in engineering applications; C in embedded applications and operating systems; and other languages are regularly used to write many different kinds of applications.
Attention à bien installer le CD
VBoxGuestAdditions.iso pour avoir accès aux fichiers de votre machine hôte de manière transparente.
Un site ressource sur les environnements de développement C++: la page Wikipedia sur les environnements de développement intégré (IDE)
Tous les projets sont corrigés sous Linux Ubuntu. C'est votre responsabilité que de vérifier que tout marche bien dans cet environnement si vous développez autrement.
Documentation C++ de référence: https://en.cppreference.com/
What is the purpose of this site?
Our goal is to provide programmers with a complete online reference for the C and C++ languages and standard libraries, i.e. a more convenient version of the C and C++ standards.
The primary objective is to have a good specification of C and C++. That is, things that are implicitly clear to an experienced programmer should be omitted, or at least separated from the main description of a function, constant or class. A good place to demonstrate various use cases is the “example” section of each page. Rationale, implementation notes, domain specific documentation are preferred to be included in the “notes” section of each page. https://en.cppreference.com/
Tout le cours est construit sur le compilateur GNU
g++ version 8 et les outils GNU standard:
gdb, etc. Nous utiliserons aussi des outils avancés comme
valgrind. L'environnement recommandé est Linux Ubuntu, mais vous pouvez tout à fait travailler sur Windows ou Mac.