Langages et traducteurs ST212LT

#TODO#
Credits ECTS 8
Langues -Français et Anglais
Responsable Rémi Douence
Temps a l'emploi du temps 90
Temps travail personnel 45

Contexte

En tronc commun, les élèves ont acquis un premier aperçu de ce qu’était un langage de programmation au travers de l’utilisation d’un sous-ensemble d’un langage de programmation spécifique Java. Ce premier aperçu n’a toutefois considéré le développement (conception et implémentation) que d’une classe restreinte d’applications, à savoir des applications séquentielles, alors qu’aujourd’hui de plus en plus d’applications sont concurrentes et distribuées. Le développement de telles applications est plus ardu et nécessite de faire appel à de nouveaux concepts et techniques. De plus, rien n’a été dit de la fabrication et du fonctionnement d’un langage de programmation. Or de nos jours, les systèmes informatiques sont construits à l’aide de nombreux langages (Java, XML, HTML, PHP…) et les applications sont souvent délivrées à l’utilisateur final sous la forme d’un langage dédié aux besoins de celui-ci. Une compréhension plus fine des langages de programmation est nécessaire pour comprendre ces systèmes et en fabriquer de nouveaux.

Objectifs

Objectifs généraux

A l’issue de cette UV, l’élève aura développé une meilleure connaissance des langages de programmation. Cette connaissance lui permettra de maîtriser plus facilement tout nouveau langage, d’émettre des avis mieux informés dans le cadre de choix de langages, de reconnaître les situations où la fabrication d’un langage dédié est pertinente et d’en mettre en œuvre la fabrication,. Ce cours lui permettra aussi de développer ultérieurement une compréhension fine de la structure et du fonctionnement des systèmes informatiques du monde internet, fabriqués à tous les niveaux (en particulier, des problèmes de concurrence et de distribution, des intergiciels au traitement des documents) à partir de différentes étapes de traductions d’un langage à un autre., et, grâce à cette compréhension, de ne pas être débordé par la complexité de ces systèmes.
Il comprendra les difficultés du développement des applications concurrentes et distribuées et la nécessité de faire appel à des techniques de modélisation et de preuve pour réduire les risques inhérents à des applications défaillantes.
Il aura finalement approfondi sa connaissance de Java, découvert les potentiels de la technologie XML, et été exposé à un certain nombre de concepts et algorithmes de portée très large en informatique (grammaire, automates, trace, propriétés de sûreté et de vivacité, algorithmes de point fixe…).

Objectifs operationnels

- utiliser des outils de manipulation de langages à balises (e.g., XML)
- mettre en oeuvre un interprète / compilateur
- programmer des applications concurrentes

Competences requises

Compétences requises

- programmation en Java

UVs cibles

GSI - Middleware
GSI - Architectures logicielles
GSI - Projet

Contenu et organisation pedagogique

Contenu de l'UV

Compilation : syntaxe et sémantique, compilation et interprétation, analyse et synthèse, expressions régulières et grammaires, analyse lexicale, syntaxique et sémantique, arbres de syntaxe abstraits, utilisation de générateurs d’analyseurs lexicaux et syntaxiques, grammaires à attributs, typage.

XML : langages de balises, les ancêtres SGML et HTML, description de XML, utilisation pour la description de documents et la transmission de données ; positionnement de XML et internet, grammaires de balises DTD et schémas XML, relations avec le modèle relationnel et le modèle des objets,. Introduction à XSLT, un langage de transformation et d’édition.

Systèmes concurrents et répartis : processus légers et concurrence, modélisation et implémentation, gestion des problèmes d'interférence (exclusion mutuelle, moniteurs et synchronisation sur une condition), gestion des problèmes d'étreinte mortelle, propriétés de cohérence des données et de vivacité, le point sur une méthodologie de développement maîtrisée : le développement dirigé par les modèles, les objets distribués en Java et l'invocation de méthodes distantes.

Supports pédagogiques

Les supports sont disponibles sur Campus, ou distribués par les enseignants.

Critere et mode d'evaluation

Critères d"évaluation

Les modules donnent lieu à des évaluations individuelles DS, TP et mini-projet. Seront évaluées à la fois les acquis théoriques des élèves ainsi que leurs capacités à les mettre en pratique. On insistera sur les bonnes pratiques de programmation ainsi que sur le continuum existant entre conception et programmation.

Nombre d'évaluations

6
Haut de page