Mon propre langage interprété!

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Message par Octavius »

Oui! C'est exactement le même genre de projet!
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Octavius a écrit :Oui! C'est exactement le même genre de projet!
Ah ben ça va, alors.

Vu comme l'espéranto a marché, (doit y avoir au max une douzaine de personnes sur la planète qui l'utilisent), on est pas prêts de changer nos habitudes en prog :lol:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

CHRIS en plus d'etre ronchon .....tu donne aussi dans........... la moquerie :lol:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Kwai chang caine a écrit :cela viens de me donner une autre idée.
Personne a encore pensé a créer un language non pas neutre mais multilingual :D

C'est à dire que selon le codeur, chacun aurait ses instructions dans sa langue.
si ! moi !! :D

Mon PureGolo est comme certains le savent un interpréteur Logo Graphique et meme 3D !! :lol:

et bien il accepte les ordres Logo en anglais et en Français et même abrégé m'sieur , bon 2 langue c'est deja bien non ? !!
on peut ecrire sous 3 forme differente une instruction


let pas=10 ; declare une variable 'pas'
forward pas
avance pas ; mais si mais si
av pas
ce qui fera avancer la tortue de 10 pas !! :)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Ah ce DOBRO, mais comment y fait pour tout faire entrer sous ses cheveux 8O
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Message par Octavius »

Voilà j'ai mis à jour mon premier post! Vous pouvez télécharger ma source ici (+ 3 exemples de sources de programme) :
http://keonet.free.fr/Sources/interprete.rar

J'ai augmenté le nombre de fonctions et j'ai commencé à implanter un évaluateur d'expression qui gère pour l'instant +-/*^() mais pas encore les variables.

J'aurais vraiment besoin de votre expérience de programmeur, car j'ai plusieurs questions et ce serait vraiment gentil de votre part de bien vouloir examiner mon code pour m'aider à y répondre! :D J’ai déjà suivi vos conseils et faisant l’effort de commenter abondamment mon code. ;)

Un langage interprété est plus lent qu’un langage compilé, mais je ne voudrais pas ce que mon programme soit trop lent, mon but est de l’optimiser au maximum. C’est pour ça que je me pose des questions sur la rapidité à plusieurs niveaux :

- Les opérations de base de PB sur les chaînes (genre Left(), Right(), Mid() ) sont-elles moins rapides que si on fait l’opération manuellement sur la zone mémoire concernée avec PeekS() et PokeS() ? Je me suis embêté à programmer le plus possible la gestion de la mémoire avec les pointeurs en espérant optimiser la vitesse d’exécution de mon code.

- A plusieurs reprises, ça m’arrangerait bien de pouvoir avoir des valeurs de différents types possibles comme résultat d’un ProcedureReturn, c’est-à-dire que la même fonction me renvoie tantôt un nombre, tantôt une chaîne de caractères, comment puis-je procéder ? Y a-t-il une astuce canonique avec les pointeurs ?

- J’utilise massivement des Select/Case dans mon programme, or il me semble que le Select/Case est gourmand en performance, comment je pourrais faire pour m’en débarasser ? Y a-t-il une autre alternative au Select/Case quand on doit examiner un grand nombre de cas possibles ?

- De même, j’ai un recours massif aux procédures : l’implantation de nouvelles commandes entraînera l’utilisation systématique de procédures pour les simuler, et en plus la technique récursive que j’ai trouvé pour évaluer les expressions mathématiques demande à deux fonctions Expression() et Operation() et de s’appeler elles-mêmes ou mutuellement un grand nombre de fois, selon la complexité de l’expression à évaluer. Il me semble que les procédures soit bien plus gourmandes que les sous-programmes en performances, mais les sous-programmes ne peuvent pas s’appeler eux-mêmes. Comment je peux faire pour optimiser mon code et me débarasser le plus possible des procédures ?

- Pour la gestion des variables de type string je ré-alloue de la mémoire à la longueur de la chaîne chaque fois que la valeur de la variable change, je fais ça pour ne pas avoir à allouer une zone mémoire de 1000 octets pour toutes les chaînes et ainsi économiser de la mémoire. Ai-je raison de procéder ainsi ?

Voilà, c’est tout pour l’instant!
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

Message par Octavius »

Zut alors ça intéresse personne... Même pas un ch'tit coup de pouce ?
Répondre