INE11 Principes des langages de programmation [ME1]

Sciences et technologies de l'information et de la communication, Informatique

Année (Module) : 2A (ModEl)
Professeurs :Michel MAUNY, Alexandre Chapoutot, Benjamin CANOU
Maîtres de conférence :Michel MAUNY, Alexandre Chapoutot, Benjamin CANOU, Çagdas BOZMAN

Objectifs

Attention : nouveau programme en 2013-2014 !

Un ingénieur, quelque soit son domaine d'intervention, doit maîtriser les concepts sous-jacents aux langages de programmation, aux différences profondes entre les langages actuels, passés et futurs, ainsi que les différentes notions relatives au sens et à la correction des programmes. Cette culture informatique lui sera à l'évidence nécessaire s'il contribue à ou dirige des développements informatiques, mais elle le sera aussi lorsqu'il aura à évaluer des éléments logiciels, ou à participer à des prises de décisions stratégiques impliquant des choix en matière de logiciel.

Ce cours décrit les concepts fondamentaux des langages de programmation, en commençant par donner une perspective historique des langages, puis en donnant les outils permettant de décrire précisément le sens des programmes informatiques, partant de leur syntaxe jusqu'à leur sémantique, en passant par une revue des différentes techniques de mise en œuvre des interprètes et compilateurs.

Une part importante du cours sera consacrée à l'expérimentation : on utilisera en effet le langage Objective Caml pour mettre en œuvre différents aspects d'un langage de programmation, durant la première moitié du cours.

La seconde moitié de ce cours est consacrée à l'introduction à quelques langages (de scripts) parmi les plus populaires : Perl, Python, PHP et JavaScript.

De par la perspective qu'il offre vis-à-vis de l'activité de programmation et des langages, ce cours s'adresse à tout élève désireux de prendre le recul nécessaire vis-à-vis de cette activité, quelle que soit la filière à laquelle il se destine (à dominante informatique ou non).

Compétences acquises à l’issue de ce cours :

* Maîtriser les concepts essentiels des langages de programmation :
- portée, blocs
- structures de données, structures de contrôle
- mécanismes d'abstraction
* Comprendre et savoir mettre en œuvre :
- éléments de compilation (analyse lexicale, analyse syntaxique)
- sémantique opérationnelle, interprète, machine abstraite
- gestion automatique de la mémoire
* Connaître les langages de scripts et savoir programmer en :
- OCaml, Perl, Python, PHP, JavaScript
* Savoir facilement aborder et utiliser un nouveau langage de programmation

Evaluation

Projet

Prérequis

Programmation

Mots-clés

langage de programmation, sémantique, syntaxe, OCaml, Perl, Python, JavaScript, PHP

Dernière mise à jour: 09/04/2014, par mauny
(resp.: mauny)