% INF600E — Création de langages informatiques % UQAM — Département d'informatique % Plan de cours — Hiver 2020 * Horaires, locaux et enseignants: Responsable(s) du cours ======================= Coordination ------------ Gagnon, Étienne M. PK-4730 poste 8215 Enseignement ------------- Gagnon, Étienne M. PK-4730 poste 8215 Description du cours ==================== Initier les étudiants à la conception de langages informatiques et à la construction rapide d'interpréteurs et de compilateurs à l'aide d'outils modernes. Types de langages informatiques (programmation, déclaratif, requête et autres). Structure générale d'un interpréteur et d'un compilateur. Éléments de la théorie des langages. Spécification lexicale à l'aide d'expressions régulières. Ambiguïté lexicale. Spécification syntaxique à l'aide d'une grammaire. Ambiguïté syntaxique et conflit. Utilisation d'un générateur d'analyseurs lexicaux et syntaxiques. Arbres syntaxiques hétérogènes. Interprétation simple par visite d'arbre. Structures de données auxiliaires à l'interprétation telles que le dictionnaire de variables. Analyse sémantique. Interprétation abstraite. Analyse de types d'expressions. Génération de texte à l'aide d'un générateur de générateurs de texte. Techniques et structures de données pour l'interprétation de divers concepts tels que les exceptions, les langages à objets et les fermetures. Ce cours comporte une séance obligatoire de laboratoire (2 heures). Modalités d'évaluation ====================== Description sommaire Date Pondération ---------------------- ---------------- ------------- Devoir 1 4 février 10% Devoir 2 18 février 10% examen intra 3 mars 20% Devoir 3 7 avril 10% Devoir 4 14 avril 10% examen final 14 au 21 avril 20% Travail de session 21 avril 20% - Le sujet du projet de session est individuel. Il devra être approuvé par l'enseignant le 10 mars au plus tard. - Les travaux (devoirs et travail de session) remis en retard auront la note zéro sauf si une entente préalable a été établie avec l'enseignant. - Une note inférieures à 50%, aux examens, mène à l'échec automatique du cours. - La qualité du français sera prise en consitération, tant dans les examens que dans les travaux pratiques (jusqu'à 10 % de pénalité). Materiel de cours ================= (obligatoire) APPEL, A.W. et PALSBERG, J. -- Modern Compiler Implementation in Java -- Second edition, Cambridge University Press, ISBN 0-521-82060-X Diverses autres références vers du matériel en ligne seront fournies tout au long du cours.