====== Concepts informatiques (CI2) ====== ===== Description ===== Le but de ce cours est de présenter quelques mécanismes sous-jacents à l'exécution des programmes. Nous expliquerons comment des programmes écrits dans des langages de haut niveau tels que Java peuvent être traduits en opérations de bas-niveau, plus proches du langage-machine. Nous aborderons en profondeur la manipulation de la mémoire, les appels de fonctions et la transmission de paramètres, avant de traiter des sujets tels que la récursion et le backtracking. ===== Syllabus ===== ==== Sujets centraux ==== - Exécutions des programmes - Variables, adresses, références - Manipulation de la mémoire : pile, tas, zone statique, etc... - Fonctions et modes de transmission des paramètres - Blocs d'activation et la pile d'exécution - Récursion, types récursifs - Élimination de la récursion - Mémoïsation - Backtracking ===== Pré-requis ===== Le cours s'adresse aux étudiants ayant des compétences de base en programmation Java, acquises par exemple dans le module [[ip1|Initiation à la programmation 1]] (ou [[ij1|Initiation à Java]]).