Dylan (langage)
Dylan est un langage de programmation dynamique, réflexif, orienté objet et fonctionnel. Il propose un modèle de programmation axé vers une génération efficace de code machine. Il a été créé au début des années 1990 par un groupe conduit par Apple pour son PDA, l'Apple Newton.
Dylan | |
Date de première version | 1992 pour la publication de sa première spécification |
---|---|
Paradigmes | Objet, fonctionnel |
Auteur | Apple Computer |
Dernière version | 2014.1 (31.12.2014) |
Typage | dynamique fort |
Influencé par | CLOS, C++, Algol, Scheme |
A influencé | Ruby, Goo |
Implémentations | Open Dylan, Gwydion Dylan |
Système d'exploitation | Multiplate-forme |
Site web | Open Dylan |
Syntaxe et exemples
À l'origine, Dylan utilisait une syntaxe préfixée, similaire à Scheme ou LISP, basée sur les S-expressions :
(bind ((radius 5) (circumference (* 2 $pi radius))) (if (> circumference 42) (format-out "Hello big circle! c is %=" circumference) (format-out "Hello circle! c is %=" circumference)))
Avant que la conception du langage ne soit terminée, elle fut remplacée par une syntaxe proche de l'Algol, conçue par Michael Kahl, dans l'espoir qu'elle serait familière au plus grand nombre de développeurs :
let radius = 5; let circumference = 2 * $pi * radius; if (circumference > 42) format-out("Hello, big circle! c is %=", circumference); else format-out("Hello, circle! c is %=", circumference); end if
Comme dans d'autres langages fonctionnels, le résultat d'une fonction est sa dernière expression évaluée (l'instruction return
est donc inutile). L'exemple suivant montre l'implémentation récursive de la fonction factorielle.
define method factorial(n :: <integer>) if (n = 0) 1 else n * factorial(n - 1) end end method;
Applications
Outre son utilisation pour le PDA Newton d'Apple, Dylan est employé pour :
- Dylan Server Pages : un moteur de templates (similaire à JavaServer Pages)
- Koala : un serveur web