% INF600E — Création de langages informatiques % UQAM — Département d'informatique % Plan de cours — Hiver 2023 * Horaires, locaux et enseignants: * Site web du cours: Enseignement ============ Gagnon, Étienne M. PK-4730 Groupes: 020 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 6 février 10% Devoir 2 20 février 10% Examen intra 7 mars 20% Devoir 3 27 mars 10% Devoir 4 17 avril 10% Examen final 25 avril 20% Travail de session 30 avril 20% - Le projet de session peut être réalisé individuellement ou en équipe de deux membres. Lorsque la réalisation est équipe, la contribution de chaque membre de l'équipe doit être clairement décrite dans le rapport de projet de session. Le sujet du projet ainsi que la composition de l'équipe (s'il y a lieu) doivent obtenir l'approbation de l'enseignant pendant la semaine du 13 au 19 mars (ou avant). - Les devoirs et examens doivent être réalisés individuellement. - Les devoirs et travaux remis en retard auront la note de zéro sauf si une entente préalable a été établie avec l'enseignant. - Une moyenne inférieure à 50% pour les deux 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é). - La note finale (en lettre, A+, A, etc.) pour le trimestre sera attribuée en fonction de l'atteinte des objectifs spécifiques à travers les évaluations. La distribution des résultats dans le groupe pourrait aussi être utilisée. Aucune autre opportunité (travail supplémentaire, etc.) d'augmenter le nombre de points ne sera accordée. Materiel de cours ================= (Obligatoire) APPEL, A.W. et PALSBERG, J. -- Modern Compiler Implementation in Java, Second edition, Cambridge University Press, ISBN 9781139637015 Diverses autres références vers du matériel en ligne seront fournies pendant le cours.