Langage de programmation Logo

Langage de programmation Logo

Logo (langage)

Page d'aide sur l'homonymie 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.
Exemple d'image réalisable avec la tortue (cliquez pour voir le code Logo correspondant)

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
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

Wikibooks-logo-fr.png

Wikibooks propose un ouvrage abordant ce sujet : le langage de programmation Logo.

Liens externes

  • Portail de la programmation informatique Portail de la programmation informatique
Ce document provient de « Logo (langage) ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Langage de programmation Logo de Wikipédia en français (auteurs)

Игры ⚽ Нужна курсовая?

Regardez d'autres dictionnaires:

  • Logo (langage de programmation) — 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… …   Wikipédia en Français

  • Langage De Programmation — Un langage de programmation est un langage informatique, permettant à un être humain d écrire un code source qui sera analysé par une machine, généralement un ordinateur. Le code source subit ensuite une transformation ou une évaluation dans une… …   Wikipédia en Français

  • Langage de programmation informatique — Programmation informatique Pour les articles homonymes, voir Programmation (homonymie). La programmation dans le domaine informatique est l ensemble des activités qui permettent l écriture des programmes informatiques. C est une étape importante… …   Wikipédia en Français

  • Langage de programmation C plus plus — C++ Apparu en 1985 (dernière révision en 2003) Auteur Bjarne Stroustrup …   Wikipédia en Français

  • Langage de programmation C — C (langage) Pour les articles homonymes, voir C. C …   Wikipédia en Français

  • Langage de programmation Pascal — Pascal (langage) Pour les articles homonymes, voir Pascal. Pascal …   Wikipédia en Français

  • Langage de programmation Ruby — Ruby Pour les articles homonymes, voir Ruby (homonymie). Apparu en 1995 …   Wikipédia en Français

  • Langage de programmation — Programme écrit en Perl. Programm …   Wikipédia en Français

  • Langage de programmation Java — Java (langage) Pour les articles homonymes, voir Java.  Ne doit pas être confondu avec JavaScript …   Wikipédia en Français

  • Langage de programmation Python — Python (langage) Pour les articles homonymes, voir Python. Python …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”