Obligement - L'Amiga au maximum

Samedi 31 mai 2025 - 16:39  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

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

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des 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,
ALL


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


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


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 BOB, 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]