Objectifs
* 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.
Cahier des charges
* 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).
Autres informations du cahier des charges
*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)
Sethi R, "Programming Languages : Concepts and Constructs" , Addison-Wesley, 1996.
Van Roy P. and Haridi S, "Concepts, Techniques, and Models of Computer Programming: with Practical Applications in Distributed Computing and Intelligent Agents" , To be published2002.
Glynn Winskel, "The Formal Semantics of Programming Language" , MIT Press, 1993.
* Remarque: voir aussi : http://www.ucl.ac.be/etudes/cours/ingi2131.html
Le cours INGI2131 est mentionné dans les programmes suivants :
ECGE3DS/IG
|
Diplôme d'études spécialisées en économie et gestion (informatique de gestion - Master in Information Systems)
|
| |
FSA2DC
|
Diplôme d'études complémentaires en sciences appliquées
|
| |
INFO2
|
Ingénieur civil informaticien
|
| |
LINF2
|
Licence en informatique
|
| |
MATH2
|
Licence en sciences mathématiques
|
| |
Valeurs ECTS de l'activité
ECGE3DS/IG
|
Diplôme d'études spécialisées en économie et gestion (informatique de gestion - Master in Information Systems)
|
(5 ECTS)
| |
FSA2DC/AP
|
Diplôme d'études complémentaires en sciences appliquées (algorithmique et programmation)
|
(5 ECTS)
|
Obligatoire
|
FSA2DC/IN
|
Diplôme d'études complémentaires en sciences appliquées (informatique)
|
(5 ECTS)
| |
INFO21
|
Première année du programme conduisant au grade d'ingénieur civil informaticien
|
(5 ECTS)
|
Obligatoire
|
LINF21
|
Première licence en informatique
|
(5 ECTS)
| |
LINF21/GN
|
Première licence en informatique (informatique générale)
|
(5 ECTS)
| |
MAP23
|
Troisième année du programme conduisant au grade d'ingénieur civil en mathématiques appliquées
|
(5 ECTS)
| |
MATH21/G
|
Première licence en sciences mathématiques (Général)
|
(5 ECTS)
| |
MATH22/I
|
Deuxième licence en sciences mathématiques (Informatique)
|
(5 ECTS)
|
Obligatoire
|
Valeur ECTS par défaut
|
(5 ECTS)
| |
|