Aims
- To show a deep understanding of the major programming concepts
- To understand and apply the basics of the most popular formalism for defining languages (syntax and semantics), specifically algorithmic programming languages.
- To understand how languages work in the principal programming paradigms, understand the relations between paradigms.
- To be able to quickly learn new languages, design languages targeted toward an arbitrary application, and be able to interface different languages.
Main themes
- Syntax: basics of abstract and concrete syntax, formalisms to define these syntaxes, representation of formal texts (syntax trees, graphs).
- Semantics: introduction to methods for defining semantics (operational semantics, axiomatic semantics, denotational semantics).
- Major programming concepts: function, object, class, abstraction, instantiation, inheritance, state, encapsulation, nondeterminism, concurrency, higher-order programming, compositionality, etc.
- Techniques for using these concepts.
- Programming paradigms and an introduction to the major programming languages.
- Principles and techniques of designing and interfacing languages.
- Practical applications in several domains (for example, distributed systems, constraint programming, human-computer interfacing).
Other information (prerequisite, evaluation (assessment methods), course materials recommended readings, ...)
- Prerequisite:
Maîtrise de la programmation dans un langage de haut niveau tel que
LINF2121 Algorithmique et structures de données P. Dupont
- References
Recommended readingss:
(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.
Other credits in programs
ECGE3DS/IG
|
Diplôme d'études spécialisées en économie et gestion (informatique de gestion - Master in Information Systems)
|
(5 credits)
| |
INFO21
|
Première année du programme conduisant au grade d'ingénieur civil informaticien
|
(5 credits)
|
Mandatory
|
INFO22
|
Deuxième année du programme conduisant au grade d'ingénieur civil informaticien
|
(5 credits)
| |
LINF21
|
Première licence en informatique
|
(5 credits)
| |
LINF21/GN
|
Première licence en informatique (informatique générale)
|
(5 credits)
|
Mandatory
|
LINF21/GS
|
Première licence en informatique (informatique de gestion)
|
(5 credits)
|
Mandatory
|
MAP23
|
Troisième année du programme conduisant au grade d'ingénieur civil en mathématiques appliquées
|
(5 credits)
| |
MATH22/E
|
Deuxième licence en sciences mathématiques (Economie mathématique)
|
(5 credits)
| |
MATH22/G
|
Deuxième licence en sciences mathématiques
|
(5 credits)
| |
MATH22/S
|
Deuxième licence en sciences mathématiques (Statistique)
|
(5 credits)
| |
|