- Langage Logo
-
Logo (langage)
Pour les articles homonymes, voir Logo (homonymie).Le Logo est un langage de programmation réflexif et fonctionnel. Il a été adapté du Lisp dans les années 1960 au Massachusetts Institute of Technology (MIT) par Wally Feurzeig et Seymour Papert, mais est plus lisible, ce qui lui a valu le surnom de « Lisp sans parenthèses ». Au XXIe siècle, le logo est surtout connu pour la fameuse tortue graphique, mais est également capable de manipuler des listes, des fichiers et des entrées/sorties, ce qui en fait un langage adapté à l'enseignement des concepts de l'algorithmique, ce dont on pourra trouver un exemple dans les ouvrages Computer Science Logo Style de Brian Harvey, professeur à l'Université de Berkeley.
Bon langage d'initiation, le Logo a été paradoxalement victime de sa tortue qui l'a cantonnée à une image puérile, alors que ses fonctionnalités de base étaient supérieures aux divers BASIC des années 1980. Il était, à l'époque, un bon marchepied vers la programmation structurée et modulaire, ainsi que l'intelligence artificielle.
Sommaire
Histoire
Le Logo a été conçu en 1966 dans un laboratoire privé de Cambridge, le BBN, par Wally Feurzeig et Seymour Papert. Ses bases théoriques sont l'intelligence artificielle, la logique mathématique et la psychologie du développement.
Article connexe : Micromonde.À l'issue des quatre années de recherche nécessaires aux chercheurs du BBN pour concevoir le Logo, la première version est sortie, sur un PDP-1, en Lisp. Il était alors appelé Ghost, et était destiné à la résolution de problèmes de base : les bogues pouvaient être mis en valeur immédiatement grâce à la tortue. Le langage n'était pas particulièrement puissant, et la conception avait plutôt été axée sur la simplicité d'utilisation pour des débutants en informatique (qui devaient alors utiliser un Teletype). La possibilité de fournir un commentaire détaillé des erreurs était également déterminante.
Il a reçu de nombreuses interfaces de simulation différentes, dont la tortue graphique, qui apparut cependant relativement tard par rapport à la première version du Logo. La première d'entre elles fut une tortue téléguidée baptisée Irving, qui pouvait avancer, reculer, tourner et émettre un son.
Les premiers utilisateurs en milieu scolaire l'ont testée à Muzzy Jr High, Lexington, Massachusetts.
Mises en œuvre
Il existe plus de 130 mises en œuvre du Logo, aux caractéristiques variées.
- UCBLogo semble être la mise en œuvre multiplateformes la plus utilisée.
- MSWLogo, sa version Windows gratuite, est beaucoup utilisée dans les écoles britanniques.
- Comenius Logo, une autre bonne mise en œuvre, est disponible en hollandais, allemand, tchèque, etc.
- SOLI Logo était une version française largement utilisée dans les écoles primaires dans les années 1980 par le biais des MO5 et des TO7/70.
- Lego/Logo était un système de contrôle de moteurs et capteurs Lego, beaucoup utilisée dans les écoles dans les années 1990.
D'autres implémentations ont ou ont eu une importance qui mérite d'être signalée : le P_Logo, des éditions Profil ; le jLogo et le XLogo, basées sur des interpréteurs écrit en Java. Le JFLogo a fait ses preuves tout comme une version, du même auteur, permettant de créer des paysages virtuels, Logo3d. Dans le monde des logiciels libres, on peut citer Logo.Net. Enfin, récemment, la plate-forme multimédia MicroWorlds (due à la compagnie LCSI, Logo Computer Systems Inc), une version du langage de programmation basée sur un environnement entièrement graphique.
Une récente évolution du langage permet de faire évoluer des milliers de tortues indépendamment. Il en existe trois mises en œuvre : StarLogo, NetLogo et Logoplus Multi-Gfx. Ces versions permettent d'expérimenter des théories concernant les phénomènes émergents, ce qui est particulièrement intéressant en sciences sociales, en biologie, en physique, ainsi que dans de nombreuses autres sciences. Même si ces langages se concentrent sur l'interaction d'un grand nombre d'agents indépendants, il parviennent à conserver la philosophie du Logo.
Il n'existe aucune norme de Logo, mais uniquement une tradition. Ainsi, on constate des différences importantes entre les différentes évolutions du Logo. Les exemples de code donnés ci-dessous sont censés fonctionner dans la plupart des dialectes du Logo.
Principe
Dans un grand nombre d'interfaces de Logo, l'écran est divisé en 2 parties :
- L'une pour l'objet graphique appelé TORTUE,
- l'autre pour la commande de la TORTUE.
Les définitions de mots nouveaux sont écrites dans l'éditeur ED.
Les mots définis sont appelés PRIMITIVES du langage. Les procédures exploitent les PRIMITIVES.
Notation mathématique : préfixe ou infixe.
Exemple :
- EC SOMME 10 3 ⇒ préfixe : l'opérateur est devant.
- EC 10 + 3 ⇒ infixe : l'opérateur est entre les nombres.
EC ⇒ ECrit le résultat dans la zone commande
Il existe 2 types d'objets : les MOTS et les LISTES.
Les MOTS sont aussi bien des nombres que des chaînes de caractères. Les LISTES sont des suites ordonnées d'objets.
Exemple de définition de procédure : la procédure CARRE devra tracer un carré à l'écran. Le texte est tapé dans l'éditeur du LOGO, puis sauvé.
POUR CARRE AV 100 TD 90 AV 100 TD 90 AV 100 TD 90 AV 100 TD 90 FIN
ou plus simplement
POUR CARRE REPETE 4 [AV 100 TD 90] FIN
Emploi de CARRE dans une autre procédure :
POUR PLCARRE REPETE 36 [CARRE TD 10] FIN
Dans cet exemple,
- «AV n» signifie «AVance la tortue du nombre de pas n»
- «TD n», «Tourne à Droite de n degrés (ici de 90 degrés)»
Pour employer PLCARRE, il suffit de taper dans la zone de commande PLCARRE.
Le passage de paramètres à une procédure est possible.
POUR CARRE :LG REPETE 4 [AV :LG TD 90] FIN
Utilisation : CARRE 50 trace un carré de 50 pas de TORTUE.
Pour faire un CERCLE, il suffit de décrire le périmètre de celui-ci
X = 36 Y = 5 répète X [ TOURNEDROITE 360/X AVANCE Y ]
La rosace présentée en illustration peut donc s'écrire (KTurtle)
COULEURCRAYON 255, 0, 0 X = 36 Y = 5 répète X [ TOURNEDROITE 360/X répète X [ TOURNEDROITE 360/X AVANCE Y ] ]
Primitives Logo
PRIMITIVES LOGO Français Anglais Définition
Primitives graphiques
AV n ou AVANCE n FD n ou Forward n la tortue avance de n pas RE n ou RECULE n BK n ou Back n la tortue recule de n pas TD n ou TOURNEDROITE n RT n ou RIGHT n la tortue tourne de n degrés d'angle vers la droite TG n ou TOURNEGAUCHE n LT n ou LEFT n la tortue tourne de n degrés d'angle vers la gauche LC ou LEVECRAYON PU or PENUP La tortue ne laisse pas de trace BC ou BAISSECRAYON PD or PENDOWN La tortue laisse sa trace (par défaut) CT ou CACHETORTUE HT ou HIDETURTLE la tortue n'est plus visible sur l'écran graphique MT ou MONTRETORTUE ST ou SHOWTURTLE La tortue est visible sur l'écran graphique ENR ou ENROULE WRAP Enroule l'écran graphique FEN WINDOWS La tortue peut sortir du jardin et disparaître de l'écran graphique CLOS FENCE La tortue ne peut pas sortir du jardin ORIGINE HOME Retour au milieu du carré de salade VE CS ou CLEARSCREEN Efface toutes les traces et restaure l'état initial NETTOIE CLEAN Efface toutes traces de l'écran graphique VT CT or CLEARTEXT Efface l'écran de commande FCC n SETPC n Change la couleur du crayon, n est un entier positif FCFG n SETBG n Change la couleur du fond, n est un entier positif FCB n ***** Change la couleur des bords, n est un entier positif FCAP n SETH ou SETHEADING Fixe le cap de la tortue de maniere absolue, selon l'angle de n degrés Ex : 0 CAP vers le haut de l'écran, 90 vers la droite, 180 en bas, 270 à gauche FPOS [X Y] SETPOS [X Y] Fixe la POSITION de la tortue avec une LISTE de 2 nombres entiers. Ex : LC FPOS [50 35] BC ou avec des variables DONNE "X 50 DONNE "Y 35 FPOS PH :X :Y
Primitives mathématiques
n1 + n2 n1 + n2 Addition de nombres réels - Ex : EC 45.124 + 11 ou EC (+ 45 10 78 23) n1 - n2 n1 - n2 Soustraction de nombres réels - Ex :EC 5 - 1.09 n1 * n2 n1 * n2 Multiplication de nombres réels - Ex :EC 5 * 9 n1 / n2 n1 / n2 Division de deux nombres réels - Ex :EC 45 / 9 SOMME n1 n2 SUM n1 n2 Addition de nombres réels - Ex : EC SOMME 45 11 DIFF n1 n2 - n1 n2 Soustraction de nombres réels - Ex :EC DIFF 5 1 PROD ou PRODUIT n1 n2 PRODUCT n1 n2 Multiplication de nombres réels - Ex :EC PROD 5 9.45 DIV n1 n2 QUOTIENT n1 n2 Division de deux nombres réels - Ex :EC DIV 45 11 QUOTIENT n1 n2 QUOTIENT n1 n2 Division de deux nombres réels - Ex :EC DIV 45 11 RESTE n1 n2 REMAINDER n1 n2 Reste de la division ENT n INT n Renvoie la partie entière du nombre réel - Ex :EC ENT 55.75 → 55 ARRONDI n ROUND n Arrondit un nombre réel - Ex :EC ARRONDI 55.75 → 56 ABS n ABS n Renvoie la valeur un nombre réel - Ex :EC ABS -55 → 55 HASARD n RANDOM n Renvoie un nombre entier entre 0 et n-1 RC n ou racine n SQR n Renvoie la racine carré d'un nombre réel - Ex :EC RC 25 → 5 LOG n LOG n Renvoie le logarithme naturel d'un réel LOG10 n LOG10 n Renvoie le logarithme de base 10 d'un réel EXP n EXP n Renvoie l'exponentielle d'un réel SIN n SIN n Renvoie le sinus d'un réel n en degrés - Ex :SIN 30 COS n COS n Renvoie le cosinus d'un réel n en degrés TAN n TAN n Renvoie la tangente d'un réel n en degrés ATAN n ATAN n Renvoie tangente d'arc d'un réel n en degrés PI PI 3.141592… RADIANS n RADIANS n Convertit un angle en radians n en degrés DEGRES n DEGRES n Convertit un angle en degrés n en radians Voir aussi
Liens externes
- Si vous disposez de GNU-Linux, et des cédéroms Debian ou d'une connexion Internet, vous pouvez installer Logo, en tapant la commande « apt-get install ucblogo ». Pour le lancer, taper « logo » (version anglaise avec licence GPL)
- Sous KDE il existe KTurtle
- Logo - Apprendre à programmer, programmer pour apprendre (Ressources Logo libres pour MS Windows et Linux)
- Xlogo, version Java de Logo (présentation de XLogo)
- jLogo Autre version en Java de Logo
- Liogo - Un compilateur Logo pour .NET et Mono
- LOGOPLUS Multi-Gfx - Un compilateur LOGO libre pour Windows.
- Site regards.sur.sciences - L'utilisation du LOGO à l'école
- Portail de la programmation informatique
Catégories : Langage de programmation | Langage impératif | Micromonde
Wikimedia Foundation. 2010.