Informatique et Sciences du Numérique au lycée : un pas plus loin/LANGAGES/Éléments de syntaxe et de sémantique

Cette partie donne une présentation des constructions des langages de programmation, qui se veut assez large mais qui reste assez informelle. Les chapitres suivants les aborderont de manière plus formelle afin de pouvoir expliquer leur compilation, leur exécution et la démonstration de la correction des programmes écrits dans ces langages.

Le chapitre Éléments de base d'un langage présente différentes constructions syntaxiques communes à beaucoup de langages, qui permettent de représenter les données et de décrire les actions et calculs à effectuer par le programme. Sont introduites les notions concernant à la fois les déclarations des données manipulées (portée, visibilité, masquage) et les outils communs à la plupart des langages qui permettent de réaliser ces manipulations (affectation, boucles, fonctions et procédures).

Le chapitre Représentation des données est consacré à la notion de type : types de base, types construits et filtrage, tableaux, chaînes de caractères, flots, pointeurs.

Le chapitre Structuration des programmes porte sur les méthodes de construction d'un logiciel. Lorsque la spécification d'un logiciel est suffisamment ample, il est en général possible de la structurer en parties relativement indépendantes les unes des autres communiquant seulement au travers d'interfaces précisément définies. Les langages de programmation fournissent des outils pour refléter cette décomposition de la spécification et son réassemblage. Schématiquement, il est possible de structurer en s'appuyant sur la nature des données à manipuler ou sur les actions à effectuer. Le premier point de vue est celui qui a conduit aux notions de classes et d'objets, via la notion de type algébrique qui regroupe avec une structure de données ses outils de manipulation. Le second a conduit à la notion de module puis de foncteur. Ces deux approches sont maintenant offertes conjointement par de nombreux langages de programmation. Ce chapitre présente donc les modules et foncteurs, les classes et objets, ainsi que le chargement dynamique de code. Les notions de surcharge, coercion, sous-types, sérialisation-désérialisation sont également traitées.


Le chapitre Styles de Programmation présente ensuite différents formes d'expressions de programmes : niveaux de langages, programmation séquentielle, synchronisme, concurrence, distribution. Les langages de programmation diffèrent par leur niveau, depuis les langages machine exprimés en hexadécimal jusqu'aux langages de haut niveau comme ML, C, Ada, Java, Python, etc. utilisés pour écrire les programmes source. Certains langages de haut niveau sont dédiés à certaines classes de problèmes. Par exemple, les langages synchrones sont dédiés d'abord aux applications décrivant des systèmes embarqués pour lesquels les contraintes de temps d'exécution sont essentielles.

La page Langages de Programmation de Wikipédia présente succinctement certains points de cette partie.