Précédent Suivant

  Processus d'évaluation

 
 
Le cours a un site! Vous y trouverez de nombreuses informations. Le cours figure également sur le cédérom de l'UFR d'informatique qui contient l'environnement DrScheme que vous utiliserez en Travaux Pratiques (pour Linux, Windows, Mac et quelques autres types de machines encore). Visitez régulièrement le site de chez vous ou de l'UTES (qui dispose également de DrScheme).
 
Le but de ce cours est de faire percevoir la nature de l'informatique, vue comme une science, par le biais du processus d'évaluation.
 
Le processus d'évaluation convertit un texte décrivant un traitement en un programme qui, s'exécutant, consomme et produit de l'information. Ce processus est à la base de la compréhension de ce que sont les évaluateurs (interprètes ou compilateurs) inclus dans les applicatifs complexes (texteur ou tableur); il permet d'introduire les principes fondateurs de la programmation (séquence, alternative, récursion).
 
Pour ce but, un langage de programmation est choisi: Scheme. Scheme est l'un des plus simples langages qui soit (il comporte moins d'une dizaine de concepts combinables sans restriction), c'est un langage fonctionnel (pour les connaisseurs, il est également strict et non pur). De plus, ce cours se restreindra à un petit sous-ensemble de Scheme (sans effets de bord et sans trop de fonctionnalité d'ordre supérieur) bref, un simple mais confortable système de réécriture.
 
Le choix d'un langage de programmation est toujours délicat car l'informatique (comme la musique) passe par la programmation (le solfège) et requiert, pour être dominée, de nombreuses expérimentations (gammes). On ne s'improvise programmeur (musicien), on le devient à force d'exercices et de réflexions sur sa pratique.
 
Un langage trop complexe ou dont on ne peut isoler un sous-ensemble cohérent obscurcit le propos qui est de présenter des idées fondamentales sous-tendant l'informatique (tombent dans cette catégorie Ada, C, C++, Java pour ne parler que des plus courants). Un langage trop pauvre ne permet pas non plus d'atteindre cet objectif de par l'immensité de ce qu'il faut mettre en branle pour résoudre le moindre problème. Les langages fonctionnels n'occupent pas le devant de la scène pour des raisons historiquement complexes mais sont le véhicule de choix pour cet apprentissage.
 
Scheme avec sa syntaxe minimale, son faible nombre de concepts, son interactivité permettant d'obtenir instantanément des résultats (sans passer par un cycle de compilation -- édition de liens -- exécution), ses capacités d'abstraction et la qualité du système DrScheme emportent l'adhésion. Scheme est également le seul langage dont la définition peut s'écrire dans le langage même avec une taille raisonnable (100 lignes pour les versions minimales, 500 lignes pour la version présentée en cours). Tout langage de haut niveau peut se définir en lui-même mais un compilateur Pascal fait de l'ordre de 15 000 lignes, un compilateur C de l'ordre de 30 000 lignes, un compilateur Ada de l'ordre de 200 000 lignes.
 
Les buts sont donc:  
L'enseignement sera divisé en trois « saisons » (et oui, comme dans les séries à la télévision) correspondant à:
  1. récursion et listes
  2. grammaire et expressions symboliques
  3. évaluateur


 

Précédent Suivant