Compilateur TURBO BASIC pour Alice 32-90

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par David.G »

@_Sam_ Je n'avais pas encore poussé le raisonnement aussi loin car pour l'instant je récupère ce qu'il y a dans le BASIC en RAM et comme le BASIC est limité à 255 caractères par ligne (à vérifier sur Alice) je me disais que c'est bon, que je n'aurai pas de trop longues chaînes à récupérer.

Par exemple, dans un PRINT, je démarre après le premier guillemet et je stoppe dès que j'arrive au second.

je le stocke en mémoire et je pourrai le traiter pour de futurs calculs.

Mais je vais être forcément coincé à un moment ou à un autre pour compiler tout ça et je vais devoir appliquer ce que tu préconises.

De toute façon je travaille avec la méthode LEAN : je démarre petit, puis j'améliore par itérations.

P.S : Je sais que la longueur de la ligne de BASIC est définie sur 2 octets avant le numéro, et que le zéro est encodé en ASCII,
mais je vais mettre une ligne REM contenant une routine en langage machine contenant elle même un zéro pour voir si ça pertube le BASIC et s'il prends ça pour une fin de ligne. Je pense que non vu que la longueur de la ligne est fixée sur 2 octets au départ.
J'irai POKE quelques zéros pour le rendre fou.

Juste curieux...
__sam__
Messages : 7989
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par __sam__ »

A mon avis la manip de chaines (surtout de 1ère classe) c'est trop ardu pour le moment. Tu devrais regarder les autres modèles purement numériques dans un premier temps. En effet les nombre sont plus faciles à travailler en langage machine.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par Daniel »

Lecture intéressante pour un débutant : https://www.guru99.com/fr/compiler-tutorial.html
compilateur.png
compilateur.png (6.96 Kio) Consulté 727 fois

La version française est très mal traduite (traduction automatique).
Voici la version originale : https://www.guru99.com/compiler-tutorial.html
Daniel
L'obstacle augmente mon ardeur.
jester
Messages : 2328
Inscription : 01 janv. 2009 23:16
Localisation : Grenoble

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par jester »

Merci Daniel pour ce lien enrichissant.

Vouloir réinventer la roue, et si possible en commençant par une une roue carré avant de passer à une forme ronde ne fait pas avancer les choses.
L'informatique est une science qui repose donc sur des bases théoriques et techniques solides... et déjà dans les années 80 (et avant).
Donc vouloir commencer petit c'est bien... mais il faut commencer correctement, pas en bidouillant dans tous les sens et en espérant que ça va tomber en marche. Il faut déjà se documenter et apprendre les concepts de base: un compilateur est un outil complexe qui fait appel à beaucoup de notions, et qui dans ce cas demande en plus une maitrise parfaite du langage machine et de l'architecture technique de la machine cible.

Je n'ai pas compris l'idée d'aller chercher le code Basic en RAM par exemple pour générer de manière bancale ce que l'interpréteur fait déjà proprement. Un compilateur prend en entrée un code source, et génère en sortie un code assembleur cible qui sera en général linké puis assemblé.
En fait ce qu'essaie de te dire gentiment Daniel (il est gentil la, je te jure) c'est que tu fais de la merde... et qu'il n'y a rien de pédagogique à faire de la merde, même en première itération, et même si du mets du parfum en seconde itération...

Mon avis. Désolé. Mais chacun est libre de perdre son temps comme il veut bien sur... c'est l'idée de liberté.
Bon courage d'en ton aventure, le principal est d'y trouver du plaisir.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par Daniel »

Il y a un compilateur BASIC pour MO5 : Speedy Wonder.
C'est une tentative intéressante, mais assez décevante dans la pratique car limitée à un sous-ensemble d'instructions, avec des contraintes. Par exemple les noms de variables sont limités à un seul caractère. Toutefois, dans l'état, il pourrait servir de modèle pour un compilateur BASIC pour Alice, quitte à le perfectionner ensuite pour le rendre utilisable.

01.png
01.png (1.24 Kio) Consulté 664 fois
c1.jpg
c1.jpg (79.9 Kio) Consulté 664 fois

Il y a dans Speedy Wonder quelques idées originales. Par exemple il utilise l'interpréteur BASIC de Microsoft pour le contrôle de syntaxe, ce qui lui évite de le faire lui-même. Il est accompagné d'un pré-compilateur pour formater le programme source et le rendre plus facile à analyser.

On peut le considérer comme une ébauche, pouvant être assez facilement perfectionnée. Idéalement il faudrait le porter sur PC pour s'affranchir des limitations de puissance et de taille mémoire de la machine cible.
Daniel
L'obstacle augmente mon ardeur.
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par Daniel »

Un lecteur du forum (non inscrit) a vu ce fil de discussion. Il a lui-même développé des compilateurs et conseille ce livre :
Compilers Principles, Techniques, and Tools
Alfred Aho, Ravi Sethi, Jeffrey D. Ullman
ISBN 0-201-10088-6
Addison Wesley
https://en.wikipedia.org/wiki/Compilers ... _and_Tools

Purple_dragon_book_b.jpg
Purple_dragon_book_b.jpg (22.33 Kio) Consulté 653 fois
Daniel
L'obstacle augmente mon ardeur.
__sam__
Messages : 7989
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par __sam__ »

0ui le fameux livre du dragon, un grand classique que tous les gens ayant fait des études "universitaires" sur la programmation ont (ou devraient avoir) approchés durant leurs études. (Durant les miennes, il était rouge et je n'ai pas connu le vert, c'est dire comment cela ne nous rajeunit pas).

Mais bon c'est bien au dessus de ce dont on parle ici.

A noter: l'un des auteurs (Alfred Aho) est l'auteur de la routine de recherche efficace de motif de caractère (regex) dite de Aho-Corasick utilisée dans commandes Unix GREP et AWK, outils dont il est l'auteur initial et qui sont encore pas mal utilisés de nos jours 45 ans plus tard par tous les Linuxiens de la planète.

Bref, un grand Ancien comme on en fait plus...
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17426
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par Daniel »

Je crois qu'après ça on va pouvoir clore le sujet.
Quoique Speedy Wonder mériterait d'être repris et amélioré.
Malheureusement c'est très difficile et il faudrait y passer beaucoup de temps pour un résultat bien maigre.

L'idée d'un compilateur de langage évolué (C, Pascal, Basic, etc.) pour nos micro-ordinateur 8 bits est séduisante. Mais dans la pratique c'est voué à l'échec car il sera toujours plus performant (et pas plus long ni plus compliqué) de programmer directement en assembleur.
Avec l'assemblage sur PC et les tests dans un émulateur, c'est de loin la meilleure solution. Et plus on a d'expérience plus on privilégie cette méthode.
Daniel
L'obstacle augmente mon ardeur.
kirion
Messages : 346
Inscription : 22 sept. 2022 03:29

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par kirion »

Je crois qu'après ça on va pouvoir clore le sujet.
tu verras que ce ne sera pas clos, car le but n'est pas le compilateur mais la discussion sans fin...
__sam__
Messages : 7989
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par __sam__ »

Dragons, bouquins, sans fin, ca me rappelle un truc... :D
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
kirion
Messages : 346
Inscription : 22 sept. 2022 03:29

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par kirion »

Bastien... que de souvenirs, même époque que le TO7, MO5, War Games avec son IMSAI 8080...
Dernière modification par kirion le 10 mars 2024 21:01, modifié 1 fois.
Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par David.G »

Daniel a écrit : 04 mars 2024 20:51 Lecture intéressante pour un débutant ...
Merci Daniel, je le lis de A à Z. Mais si tu trouves Speedy Wonder très décevant, je comprends que pour toi un compilateur, c'est du très haut niveau sinon rien.

Moi je serai déjà content si j'arrive à compiler un PONG par exemple. Et rien ne dit que je ne l'améliorerai pas petit à petit.
Mais comme je vise un truc sympa mais toi tu attends un compilateur de très haut niveau, tu ne pourras qu'être déçu.

Même si vous faîtes fermer mon topic, je continuerai à bidouiller mon compilateur de mon côté tout en créant des jeux pour Alice en assembleur.

Comme le dit Jester, il faut déjà très bien connaître l'Assembleur et l'architecture de la machine. Je suis d'accord avec ça. Excellente façon d'apprendre, même si ce n'est pas la voie traditionnelle. Ceci dit, je créerai sûrement des jeux si je n'avance pas sur le compilateur. Ce serait dommage de se décourager et de tout abandonner. Surtout que je viens d'installer ton émulateur DCalice et il est incroyable ! Félicitations.

Je continuerai d'utiliser le vrai Alice 90 pour 50% du temps car j'aime trop le côté rétro mais ton émulateur est top, donc 50% du temps aussi. :wink:
Dernière modification par David.G le 06 mars 2024 03:05, modifié 3 fois.
Avatar de l’utilisateur
David.G
Messages : 301
Inscription : 16 janv. 2024 00:02

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par David.G »

jester a écrit : 05 mars 2024 11:41 Un compilateur prend en entrée un code source, et génère en sortie un code assembleur cible qui sera en général linké puis assemblé.
Déjà, félicitations pour ton jeu Sokoban. L'Exelvision est paraît-il en plus un machine particulièrement lente et difficile à programmer.
Donc nous ne sommes pas du tout au même niveau, je ne connais que 3 mnémoniques en assembleur pour le moment. Mais je déguste le livre de Fagot-Baraly donc j'avance.

jester a écrit : 05 mars 2024 11:41tu fais de la merde... et qu'il n'y a rien de pédagogique à faire de la merde
C'est dit de façon poétique mais je vois l'idée. :D
jester a écrit : 05 mars 2024 11:41
Mon avis. Désolé. Mais chacun est libre de perdre son temps comme il veut bien sur... c'est l'idée de liberté.
Bon courage d'en ton aventure, le principal est d'y trouver du plaisir.
Merci, je m'accroche. En fait, j'ai trouvé de bonnes idées dans ce que tu as dit. Faire ça ou passer 20 ans dans le désert à gratter le sol pour trouver des os de dinosaures, chacun trouve une façon intéressante de perdre son temps. D'ailleurs, ordinosaures et dinosaures sont de la même famille non ? :wink:
Bernouilli92
Messages : 1294
Inscription : 24 déc. 2021 09:46
Localisation : Région parisienne

Re: Compilateur TURBO BASIC pour Alice 32-90

Message par Bernouilli92 »

Daniel a écrit : 05 mars 2024 13:31 Un lecteur du forum (non inscrit) a vu ce fil de discussion. Il a lui-même développé des compilateurs et conseille ce livre :
Compilers Principles, Techniques, and Tools
Alfred Aho, Ravi Sethi, Jeffrey D. Ullman
ISBN 0-201-10088-6
Addison Wesley
https://en.wikipedia.org/wiki/Compilers ... _and_Tools


Purple_dragon_book_b.jpg
Très bon bouquin. J'ai encore le mien qui date de mes études. C'est la version française avec le petit dragon rouge.
Dernière modification par Bernouilli92 le 11 mars 2024 10:09, modifié 1 fois.
Répondre