Introduction à l'analyse de programmes en langages évolués, aux grammaires et aux langages. Analyse structurelle : analyse syntaxique, arbre d'appels des procédures et graphes de flux de contrôle. Introduction et fondements théoriques en analyse statique de flux : théorie des graphes et algorithmes, ordre partiel, treillis, analyse de flux. Analyses élémentaires : définitions, variables vives, expressions disponibles, propagation de copies, initialisation des variables et paramètres, détection des instructions inaccessibles ou inutiles, vérification de l'utilisation efficace des variables, propagation des constantes, analyse des pointeurs ou des alias, analyse des dépendances et analyse d'impact en maintenance du logiciel. Analyse dynamique : instrumentation des programmes, tests à boîte blanche, évaluation des performances.