La compilation est un des domaines fondamentaux en informatique. C'est le thème qui étudie la transformation automatique entre les langages structurés, comme les langages de programmation, les langages de description, les données structurées, etc.

Un compilateur est un logiciel qui permet de transformer un langage de programmation vers un autre. Typiquement, un compilateur génère un code assembleur ou binaire à partir d'un programme source, afin qu'il puisse être exécuté sur un processeur. Dans cette UE, nous allons nous concentrer sur les compilateurs: comment analyser un programme source écrit dans un langage de programmation défini, comment analyser détecter les erreurs lexicales, syntaxiques et sémantiques, comment générer ensuite un programme dans un langage proche de la machine cible (code d'un autre langage, code intermédiaire, code assembleur, etc.).

Ce cours est dédié aux étudiants de licence informatique, de double licence mathématiques-informatique.