Objectifs (en termes de compétences)
- Montrer une compréhension profonde des concepts majeurs de la programmation.
- Comprendre et appliquer les bases des formalismes les plus courants utilisés pour définir des langages formels (syntaxe et sémantique), plus précisément les langages algorithmiques de programmation.
- Comprendre le fonctionnement des langages dans les principaux paradigme de programmation ; comprendre les relations entre ces différents paradigmes.
- Pouvoir rapidement apprendre de nouveaux langages, concevoir des langages spécifiques pour une application quelconque et savoir interfacer des langages différents.
Objet de l'activité (principaux thèmes à aborder)
- Syntaxe: notions de syntaxes abstraite et concrète ; formalismes de définition de ces syntaxes. ; représentation de textes formels (arbres syntaxiques, graphes).
- Sémantique : introduction aux méthodes de définition de sémantique (sémantique opérationnelle, sémantique axiomatique, sémantique dénotationnelle).
- Concepts majeurs de programmation : fonction, objet, classe, abstraction, instantiation, héritage, état, encapsulation, non-déterminisme, concurrence, programmation d'ordre supérieur, compositionnalité, etc.
- Techniques d'utilisation de ces concepts.
- Paradigmes de programmation et introduction aux principaux langages de programmation.
- Principes et techniques de conception et d'interfaçage de langages.
- Applications pratiques dans plusieurs domaines (par ex. systèmes répartis, programmation par contraintes, interfaces homme-machine).
Résumé : Contenu et Méthodes
voir "Objet de l'activité"
Autres informations (Pré-requis, Evaluation, Support, ...)
- Pré-requis:
Maîtrise de la programmation dans un langage de haut niveau tel que
LINF2121 Algorithmique et structures de données P. Dupont
- Références
Ouvrage(s) recommandé(s)
(1) Sethi R, "Programming Languages : Concepts and Constructs" , Addison-Wesley, 1996.
(2) Van Roy P. and Haridi S, "Concepts, Techniques, and Models of Computer Programming" MIT Press, March 2004.
(3) Glynn Winskel, "The Formal Semantics of Programming Language" , MIT Press, 1993.
|