Obligement - L'Amiga au maximum

Mardi 27 juin 2017 - 21:06  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Programmation : GFA Basic - le pseudo LOGO du GFA
(Article écrit par Pierre-Philippe Launay et extrait d'Amiga News - mai 1992)


Historique du LOGO

Le LOGO est un langage né en 1970 sous l'impulsion de Papert et Minski au Massachusset Institute of Technology pour concilier, d'une part, la théorie d'acquisition des connaissances prônée par Piaget et l'école Genevoise avec, d'autre part, la puissance informatique. Hélas, d'une philosophie très prometteuse, le langage ne tint pas ses promesses. C'est pourtant un langage issu du célèbre LISP. Comme lui, il est interprété, ce qui permet de tester immédiatement les commandes utilisées à la différence du C et de l'assembleur. De plus, plutôt que de suivre la logique fantasmagorique du FORTRAN ou d'utiliser des GOTO, il préfère la logique procédurale. C'est un langage évolué (250 commandes) et évolutif (on crée ses propres fonctions) et il connaît même la récursivité.

On fait quoi en LOGO ?

En réalité, LOGO est la victime d'une mauvaise analyse. Tout d'abord, la célèbre tortue à laquelle il est assimilé l'a cantonné pour le grand public aux seules applications éducatives de l'enseignement post-maternelle : il sait pourtant gérer les nombres et les chaînes de caractères. Ensuite, il partait du postulat qu'il suffisait de mettre une personne devant un ordinateur pour qu'elle se mette à créer (lire l'excellent article de Monique Linard de l'Université Paris X paru dans la Revue de Psychologie).

La philosophie du LOGO est basée sur la notion de micromonde et son nom nous vient du Grec logos signifiant "le cheminement de la pensée". Fort orienté sur la logique mathématique descriptive, LOGO suppose un univers au départ très réduit. Cela répond à la théorie de Piaget sur l'évolution intellectuelle des jeunes enfants. Petit à petit, bébé apprend la notion d'avant et d'arrière, de droite et de gauche et ainsi de suite. Plus il acquiert de notions et donc de connaissances, plus il devrait se servir de ses connaissances dans un cycle infini du savoir.

Mais pourquoi me direz-vous, bébé voudrait-il acquérir du savoir ? Pour se faire plaisir. Et c'est là que l'analyse déraille. Vous aimez et j'aime le codage mais il est bien évidemment faux de croire qu'il en est ainsi pour tout le monde. Mais il y a pire. Le LOGO est lent. Il se déplace à la vitesse d'un escargot asthmatique au galop. De plus, ses commandes sont trop rudimentaires pour permettre un vrai développement logiciel. Sa conception n'a pas su évoluer depuis 1970. Impossible par exemple de gérer les bobs, les menus, le multitâche ou même un affichage rapide des fonctions de chaînes de caractères ou des principales fonctions mathématiques. Sa syntaxe est également fort compliquée et rappelle la notation polonaise inversée qu'adore aussi GFA mais sans s'y cantonner. Enfin, il plante très rapidement lors des appels récursifs.

GFA au secours du LOGO

Alors, me direz-vous, que suis-je allé faire dans cette galère ? Et bien GFA apporte une réponse fort élégante à tous les problèmes du LOGO. Toutes les fonctions du LOGO existent en GFA sauf deux. Mieux, la syntaxe est pratiquement identique : chaque terme du LOGO est traduit dans la langue du pays où il est diffusé. Ainsi, SOUND 880,2 en Grande-Bretagne deviendra SON 880,2 en Belgique ou en Suisse. Avantage ou inconvénient, GFA n'adapte pas les noms selon le pays de diffusion. Mais notons que GFA se rattrapera en généralisant aussi chaque fonction comme ici avec SOUND 880,2,14,2.

Rappelons que les vieux LOGO utilisaient encore la possibilité d'écrire plusieurs instructions par ligne mais il semblerait que cette hérésie soit en voie de disparition. Enfin, LOGO n'utilise pas les parenthèses mais elles seront obligatoires en GFA.

GFA ne sait pas transformer rapidement une chaîne de caractères en liste. Je vous ai donc concocté une procédure liliste un petit peu modifiée pour ne pas s'enquiquiner avec les listes ou les matrices. La vraie fonction LOGO liliste prend chaque élément du texte que vous écrivez après LINE INPUT pour les écrire dans une matrice (revoir la fonction DIM) et LOGO estime que chaque élément du texte est séparé par un espace. N'ayant pas écrit un vrai liliste, j'ai alors modifié premier et mpremier.

Deuxième limitation du GFA, il n'y est pas évident d'utiliser les primitives telles que le conçoit LOGO. LOGO appelle "primitive" les procédures et il est tout à fait concevable d'écrire en LOGO :

SI OU OU PROC? PREM :L PRIM? PREM :L NOMBRE? PREM :L [RENDS MP PREM :L FILTRE SP :L] [EC PREM :L RENDS FILTRE SP :L]

En GFA, on arriverait à faire un résultat assez similaire avec les routines de gestion des listes (AddHead, RemHead...) mais je doute que cela soit plus clair que la logique suivie ici avec la série de IF...ENDIF.

GFA Basic
GFA Basic


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]