Logo (langage) - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Logo, projet pédagogique

en cours de rédaction

Logo, langage informatique

Aperçu du Metalangage

LOGO fait partie de la famille des langages orientés objet.

A l'origine n'existe que 2 types d'objets : les MOTS et les LISTES.

Les MOTS sont des chaînes de caractères. Formellement, les nombres ne sont que des mots particuliers dont la valeur est évaluée automatiquement. Les LISTES sont des suites ordonnées d'objets.

Un mot est signalé par un guillemet, une liste par des crochets. Si un mot n'est pas précédé d'un guillemet, il est évalué comme une procédure (voir ci-dessous).

Ces objets peuvent servir d'entrées - d'ARGUMENTS - à des OPÉRATIONS ou des COMMANDES.

Une OPÉRATION sert à créer un nouvel objet à partir des objets entrant (formellement des ARGUMENTS), qu'elle retourne à une autre opération ou à une COMMANDE. Une COMMANDE dit ce qu'il (l'ordinateur ou le robot) doit faire de cet objet.

Une ligne de programmation est et ne peut être que formulée qu'en terme d'INTRUCTION. Une instruction se compose impérativement d'une - et d'une seule - COMMANDE, suivie d'un objet ou d'une ou de plusieurs OPÉRATIONS qui retournent l'objet qu'elles créent à l'éventuelle opération qui la précède, ou à la commande.

C'est pourquoi taper simplement 5 + 5 (ou SOMME [5 5]) entraîne un message d'erreur du type "Ne sait que faire avec 10", puisque que l'instruction est incomplète du fait de l'absence de commande. De même ECRIS tout seul fera apparaître une message "Pas assez d'entrée pour..." puisque, cette fois-ci l'instruction est incomplète du fait de l'absence d'objet.

Par contre, dans l'instruction ECRIS 5 + 5 affiche 10, l'opération d'addition sur des mots directement évalués comme des nombres retournant son résultat à la commande d'affichage, De même, dans le micromonde "Tortue", AVANCE 5 + 5, fera se mouvoir le robot tortue de 10 pas. Par contre, ECRIS [5 + 5] produira un affichage du texte 5 + 5 puisque il s'agit d'afficher le contenu d'une liste signalée par les [...].

Un groupe d'instructions peut toutefois être écrit sur une même ligne. Sera, donc, licite :

AVANCE SOMME [5 5] TOURNEDROITE 360/10

La seule exception à la règle de commande unique réside dans l'emploi de la primitive REPETE qui accepte comme entrée une liste d'instructions.

REPETE 360 [AV 1 TD 1] (formule du cercle en géométrie LOGO).

Soit une instruction qui commande de répéter 360 fois, deux instructions

Les mots prédéfinis dans le langage sont appelés PRIMITIVES du langage.

Ce langage de base peut s'enrichir de PROCÉDURES' créées par l'utilisateur. Une fois définie, ces procédures font faire partie intégrante du langage et obéissent aux mêmes règles d'écriture. Leurs définitions sont écrites et corrigée dans l'éditeur ED ou, dans certaines versions, définies directement à l'aide de la commande "POUR", suivie du nom de la procédure (ce qui facilite le passage de la commande directe vers la programmation)

Une procédure comprend trois partie : son nom, les commandes et opérations que son activation déclenchera et le mot FIN. Elle peut être définie comme nécessitant une ou plusieurs entrées qui, sont, en réalité des variables pouvant stocker localement des objets. Dans ce cas, leur utilisation exigera impérativement l'introduction d'objets. Taper un mot qui n'est pas une procédure ou une primitive sera signalé comme une erreur "ne sait comment..."

LOGO se présente comme un langage évolutif : les "primitives" ne sont, en réalité que des procédures build in.

Dès lors, en toute logique, une procédure doit pouvoir comprendre des procédures, y compris elle-même', ce qui confère à LOGO la puissance d'un langage récursif.

POUR RECURSION

RECURSION

FIN

est donc licite et crée une boucle sans fin.

Toujours aussi logiquement, une procédure peut être une opération en utilisation la primitive RETOURNE. Ainsi si on définit la procédure suivante :

POUR MULTIPLICATION :X :Y

RETOURNE PRODUIT [:X :Y]

FIN

ECRIS MULTIPLICATION 5 6 affichera 30

Force est de reconnaître qu'en réalité, peu de versions de Logo intègrent ces aspects.

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.

Formellement, seule le forme préfixe répond aux exigences de syntaxe comme quoi les objets suivent une opération à laquelle ils servent d'arguments. Tout comme l'interprétation directe d'un nombre, la forme infixe n'existe que parce que cette notation est familière.

Interface graphique : la tortue

Le terme "Tortue" relève d'une tradition née vers 1950 avec les premiers robots construits par le neurophysiologiste William Grey Walter, pionnier de la cybernétique avec ce qu'il appellera ses "tortoises".

Description

A l'origine un robot de sol, la "tortue" est un robot sur l'écran, prêt à explorer son espace. Dans ce cas, le plus connu, elle se présente la plupart du temps sous la forme d’un triangle orienté dans la direction qu’elle va prendre. Elle traîne à l’arrière – et non derrière elle, la nuance est d’importance d’un point de vue pédagogique – un crayon qui lui permet de laisser des traces de son passage. Ce crayon peut être levé (LC) ou remplacé par une gomme. Avec l’évolution du matériel informatique, il pourra également prendre des couleurs différentes.

Au départ, ce robot occupe une position et une orientation précises. Au départ, ce seront le milieu (position 0,0) et le haut de l’écran, c’est-à-dire vers le « Nord », au cap de 0°.

On travaille, donc, en coordonnées polaires et non pas en coordonnées cartésienne, même si le langage comprend la possibilité d’utiliser ces dernières. La Tortue se déplace comme un navire, c’est-à-dire en prenant une direction relative et en parcourant une distance à partir d’un point et d’une orientation de départ.

Mieux, elle se déplace, en réalité sur une sphère, ce qui explique qu’en position normale, elle « ENROULE », c’est-à-dire que si elle disparaît par un côté de l’écran, elle réapparait à son opposé.

Le concept de la « géométrie Tortue » est issu des travaux du Logo Group du MIT et permet à l’apprenant d’explorer un univers géométrique en s’identifiant à la tortue. Ce que Papert appellera la « syntonie avec le corps »

      ABELSON & DI SESSA, 1986.      

Au départ, l’utilisateur lui donne des ordres simples, « militaires » : AVANCE, RECULE, DROITE, GAUCHE pour la faire se déplacer. Elle se déplace pas à pas et s’oriente par degré ; à chaque 360°, elle fait, donc, un tour complet sur elle-même (théorème du tour complet de la tortue). Du fait de son crayon, elle laisse une trace de son passage sur l’écran (sauf, bien sûr, si on lui a donné l’ordre de la lever).

Par la suite, ces ordres pourront être rassemblés dans des PROCÉDURES qui enrichiront le langage informatique et pourront, par conséquent, elles-mêmes être apellées dans d’autres procédures.

Dans un grand nombre d'interfaces graphique de Logo, l'écran est divisé en 2 parties afin de permettre de visualiser à la fois les instructions qui lui sont données et leurs résultats :

L'une pour le graphique proprement,
l'autre pour introduire et voir les instructions déjà données.

Quelques exemples

Exemple d'image réalisable avec la tortue (cliquez pour voir le code Logo correspondant)

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       	 ]      

En réalité, il s'agira d'un polygone régulier à 36 côtés, cette formule ne s'applique qu'au versions LOGO où la Tortue ne peut tourner que par des angles de 10°. 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       	]      ]      

pour un hexagone

REPETE 6[AV 100 TG 60]

Primitives graphiques

Principales primitives de la tortue
Français Commande ou opération Anglais Définition
AV n ou AVANCE n commande FD n ou Forward n la tortue avance de n pas
RE n ou RECULE n commande BK n ou Back n la tortue recule de n pas
TD n ou TOURNEDROITE n (DR n, DROITE n) commande RT n ou RIGHT n la tortue tourne de n degrés d'angle vers la droite
TG n ou TOURNEGAUCHE n (GA n, GAUCHE n) commande LT n ou LEFT n la tortue tourne de n degrés d'angle vers la gauche
LC ou LEVECRAYON commande PU or PENUP La tortue ne laisse pas de trace
BC ou BAISSECRAYON commande PD or PENDOWN La tortue laisse sa trace (par défaut)
CT ou CACHETORTUE commande HT ou HIDETURTLE la tortue n'est plus visible sur l'écran graphique
MT ou MONTRETORTUE commande ST ou SHOWTURTLE La tortue est visible sur l'écran graphique
ENR ou ENROULE commande WRAP Enroule l'écran graphique (valeur par défaut)
FEN commande WINDOWS La tortue peut sortir du jardin et disparaître de l'écran graphique
CLOS commande FENCE La tortue ne peut pas sortir du jardin
ORIGINE commande HOME Retour au milieu du carré de salade
VE commande CS ou CLEARSCREEN Efface toutes les traces et restaure l'état initial (tortue au centre et regardant vers le haut)
NETTOIE commande CLEAN Efface toutes traces de l'écran graphique sans changer la position de la tortue
VT commande CT or CLEARTEXT Efface l'écran de commande
FCC n commande SETPC n Change la couleur du crayon, n est un entier positif
FCFG n commande SETBG n Change la couleur du fond, n est un entier positif
FCB n commande ***** Change la couleur des bords, n est un entier positif
FCAP n commande 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] commande SETPOS [X Y] Fixe la POSITION de la tortue avec une LISTE de 2 nombres entiers (id : coordonnées cartésiennes).
Ex : LC FPOS [50 35] BC ou avec des variables DONNE "X 50 DONNE "Y 35 FPOS PH :X :Y
CAP n opération HEADING retourne l'orientation de la tortue exprimée en degrés
POSITION, POS opération POS retourne la position de la tortue en coordonnées cartésiennes.
Primitives Logo mathématiques
Français Anglais Définition
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
Page générée en 0.164 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise