- Etapes d'un compilateur
- Langages assembleur
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.
Introduction
Définitions
Évaluation ascendante (S-attribuée)
Évaluation descendante (L-attribuée)
Évaluation ascendante (L-attribuée)
Équivalence des grammaires S-attribuées et L-attribuées
Identification
Portée d'un identificateur
Surcharge d'un identificateur
Portées importées
Système de typage
Un système de typage simple
Équivalences entre les types
Conversions des types
Présentation générale
Représentation de l'information
Allocation statique
Allocation dynamique
Fonctions et passage de paramètres
Présentation générale
Formes intermédiaires structurées (graphes)
Formes intermédiaires linéaires (textuel)
Formes intermédiaires hybrides
Introduction générale
Les expressions arithmétiques
Les expressions logiques
Les instructions conditionnelles
Les inconditionnelles
Les boucles
Les appels de fonctions
Introduction générale
Analyse de code
Optimisations locales
Optimisations à lucarne
Optimisations globales
Un projet de compilation est très important dans la vie d’un étudiant en informatique. Pour beaucoup d’entre vous, c’est probablement la seule occasion dans votre carrière d’écrire un compilateur. Il est donc important de faire des efforts pour le réaliser jusqu’au bout, car c’est travail très formateur que des étudiants des autres disciplines scientifiques ne font pas. Le projet est à réaliser par binômes.