Scheme un langage simple, efficace et pourtant méconnu

Introduction

Avant d’étudier plus en détail le langage Scheme, arrêtons-nous un instant sur le fameux “Hello World” écrit en Java et en Scheme puis comparons-les.

Java :

public class HelloWorld { 
public static void main(String[] args) {
System.out.println(“Hello, World”);}
}

Scheme :

(display “Hello, World!”)

Efficace n’est-ce pas …

D’où vient Scheme ?

Scheme est un langage de programmation dérivé du LISP. Le langage LISP fait partie des premiers langages de programmation dit “fonctionnels” (créé en 1958) qui se caractérisent par des syntaxes simples, des typages dynamiques et une gestion automatique de la mémoire.

Scheme reprend donc toutes les caractéristiques d’un langage fonctionnel. Ce langage de programmation a été créé dans les années 1970 au MIT (Massachusetts Institute of Technology) par Gerald Jay Sussman et Guy Lewis Steele.

Gerald Jay Sussman et Guy Lewis Steele ont créé le langage Scheme pour faciliter le langage LISP et améliorer ses possibilités.

Comment fonctionne Scheme ?

Scheme possède de nombreux avantages comme sa syntaxe très simple avec très peu de mots-clés.

Les variables sont typées dynamiquement. Lors d’une déclaration d’une variable, il n’est pas nécessaire d’indiquer son type.

(define i 20)
(define c “Chaine de caractères”)

Scheme utilise la notation préfixée ou autrement appelée la notation polonaise. En notation préfixée le signe de l’opération est placé au début du calcul puis les variables suivent.

(5 − 6) × 7 En notation classique
× (− 5 6) 7
En notation préfixée

Scheme est également un langage homoiconique : le langage est représenté sous forme de listes. Les listes sont aussi un type primitif du langage ce qui n’est pas le cas en Java par exemple.

(define (factorial n)
 (if (= n 0)
 1
 (* n (factorial (- n 1)))))

Même les fonctions sont comprises dans des listes.

Pourquoi apprendre le Scheme ?

Pour débuter, le Scheme est un très bon langage de programmation, en effet sa grammaire contient peu d’opérateurs. Cela permet pour un débutant d’être à l’aise avec Scheme et pouvoir rapidement écrire ses premières fonctions.

Pour un programmeur confirmé, Scheme permet d’améliorer la qualité de programmation même sur d’autres langages.

  • La programmation récursive est tout à fait naturelle en Scheme à la différence d’autres langages impératifs, cela permet de penser différemment les programmes.
  • Il permet de revenir sur certaines connaissances fondamentales en programmation. Comprendre Scheme permet de comprendre beaucoup de langages à typage dynamique.

Scheme comme beaucoup d’autres langages se basant sur le LISP est un langage rigoureux, il est nécessaire de savoir ce que l’on écrit. Il est impossible de créer une fonction sans bien savoir ce qu’elle va nous renvoyer. Cela permet aux débutants d’apprendre une certaine rigueur de programmation.

Enfin Scheme est très utilisé dans les domaines tels que l’intelligence artificielle ou la simulation (systèmes sociaux, systèmes vivants, ou robots). En effet, Scheme est un langage très apprécié pour sa métaprogrammation, le programme peut agir sur lui-même jusqu’à créer lui-même de nouvelles fonctions.

Bibliographie

https://fr.wikipedia.org/wiki/Scheme
https://fr.wikibooks.org/wiki/Programmation_Scheme/Introduction
https://www.laurentbloch.org/MySpip3/Pourquoi-Scheme-48

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.