Accueil Articles Tutoriels Forums
GameCorp Index du Forum -> Projets logiciels & libraires -> [Langage] JadeBasic : compatibilité DarkGDK...
Auteur
Message
Mod Message luPosté le : 24 Oct 2008 20:48
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting


C'est prévu... C'est juste que cela n'a pas encore été codé ^^. Je viens d'ailleurs de mettre à jour le premier message du sujet pour récapituler l'avancement des différentes structures de code.
Mod Message luPosté le : 08 Nov 2008 20:21
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting


Un peu de news, vu que j'ai bossé sur le langage un petit moment aujourd'hui.

Les tableaux sont définitivement achevés. C'était vraiment le dernier gros morceau, le reste est presque simplissime à côté des prises de têtes à base de pointeurs qui m'ont été offerts pour ce point là. Le résultat est là, les tableaux dynamiques de JadeBasic, dans la même veine que ceux de DBPro, sont un excellent moyen de stocker massivement des données.

En parlant de pointeur, j'ai ajouté le support des opérateur d'adresse et d'indirection. Le premier - comme en C - est représenté par la très classique esperluette, et permet de récupérer l'adresse d'une variable. Le second, représenté pour le moment par le symbole dollar, permet donc d'accéder à une adresse à partir de n'importe quelle valeur : $0 accèdera au contenu de l'adresse 0 (avec un joli plantage assurée, mais c'est une autre histoire...), $220368 au contenu de l'adresse 220368, etc... L'utilisation du $ au lieu du * du C par d'un principe bien simple : la réutilisation d'un même symbole pour différentes fonctions est une source d'erreur/de confusion pour un débutant. JadeBasic restant, comme son nom l'indique, un BASIC, j'ai donc pris le parti de prendre un symbole différent. Le symbole dollar offrant la signification de "valeur", cela colle bien à l'idée d'accéder à une valeur stockée à une adresse. Toutefois, suivant les retours, je verrai s'il faut ou non conserver cette façon de représenter l'opérateur d'indirection ou non.

Sur le compilateur même, j'ai supprimé tout ce qui était passé du statut "important" à celui de "annexe", voire "inutile". A savoir l'interpréteur. Le travail réalisé sur celui-ci ne sera toutefois pas perdu, sachant que la librairie standard de Jade comportera une librairie "script" permettant d'effectuer des calculs, évaluations, etc, sur des chaînes de caractères.
Plus important, j'ai commencé à mettre en place les messages d'erreurs. Très peu pour l'instant, mais le nombre ne pourra que croître. Les messages sont pour l'instant générés en anglais (comme pour tout le reste du compilateur, d'ailleurs), mais seront prochainement transférés du code à un fichier texte annexe au compilateur, et qui permettra d'effectuer des traductions vers diverses langues, et donc le français.

Encore un cran d'importance au-dessus, le compilateur n'est désormais plus exécutable autrement qu'en ligne de commande, ce qui m'amène à ceci...

... J'ai entrepris la programmation en C# de l'IDE qui sera fournit par défaut avec celui-ci. Pour l'instant rien de bien merveilleux à attribuer à celui-ci, le projet de cet IDE nommé "Dragon" (Jade... Dragon... Original, non ? :want: ) en attendant mieux, n'en est qu'à ses débuts. J'ai toutefois achevé les premiers essais sur la coloration syntaxique, qui devrait donc être disponible en même temps que la première version de l'IDE. Je m'attelle plutôt à réaliser l'interfaçage entre l'IDE et le compilateur, le premier semblant quelque récalcitrant à lire les messages émis par le second.

Ca continue donc d'avancer.
Darktib Message luPosté le : 09 Nov 2008 13:03
Avatar de Darktib
Membre Légendaire

Inscrit le : 24 Nov 2007
Messages : 2884
GCPoints : 560.1
Programmation - Scénario


Dragon... ca sonne bien comme nom !

Quand tu aura fini l'interfacage pourra tu me dire comment tu a fait (flux std ???) [ou faire un tuto :wink: ]

La possibilité d'utiliser Jade comme script serat elle aussi fournie avec une mini lib (par exemple si on veut l'utiliser on prend 2 header et c'est bon)
Image

1 + 1 = OVERFLOW
Mod Message luPosté le : 09 Nov 2008 13:32
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting



Citation :

Quand tu aura fini l'interfacage pourra tu me dire comment tu a fait (flux std ???) [ou faire un tuto :wink: ]



J'ai pu achever ça hier soir. Si je ne réceptionnais pas de messages c'était juste à cause du fait que je ne transmettais par correctement l'adresse du fichier à compiler, le compilateur n'effectuais donc aucun travail.

L'interfaçage en C# (pour l'IDE) ou en C++ (pour le compilateur par rapport à l'exe généré) passe par la même méthode : création de nouveau processus lié au processus parent.
En C++ (avec les fonctions de Win32), il suffit de demander de ne pas créer de fenêtre pour le processus fils, les entrées et sorties sont alors redirigées vers le processus parent.
En C#, les processus possèdent un type d'évènement activé lorsqu'il y a réception de données depuis le flux standard ou d'erreur.



Citation :

La possibilité d'utiliser Jade comme script serat elle aussi fournie avec une mini lib



Tout ce qui était possible dans l'interpréteur sera transféré sous forme de librairie. C'est-à-dire que la possibilité d'appeler des fonctions depuis des DLL sera aussi présente, et donc d'appeler les librairies de Jade en tant que telles.
En fait, l'utilisation de la librairie de script revient à utiliser une couche d'interpréteur au-dessus des programmes compilés.
Darktib Message luPosté le : 09 Nov 2008 13:40
Avatar de Darktib
Membre Légendaire

Inscrit le : 24 Nov 2007
Messages : 2884
GCPoints : 560.1
Programmation - Scénario


Merci pour la méthode de l'interfacage.

Sinon pour la lib, je voulais dire :

est-ce que par exemple je peut créer un programme qui, a l'aide d'une librairie spécifique, peut charger un script jade et l'interpreter sans recourir a un autre exe?
Image

1 + 1 = OVERFLOW
Mod Message luPosté le : 09 Nov 2008 14:10
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting


Ah, oui, bien sûr ^^. Je n'envisage pas de recréer un interpréteur indépendant, d'ailleurs. Ce ne sera utilisable qu'à l'intérieur d'un autre programme ou à travers une DLL.
bebou007 Message luPosté le : 23 Nov 2008 13:11
Avatar de bebou007
Membre Novice

Inscrit le : 16 Mar 2008
Messages : 67
GCPoints : 183.9



salut je vien au nouvelle sa fait un petit moment qu'il n'y plus news
Mod Message luPosté le : 23 Nov 2008 14:23
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting


J'ai eu un peu moins de temps de disponible dernièrement pour ce projet, mais ça continue d'avancer. Principalement au niveau de l'IDE, et puisque je continue d'interfacer IDE et compilateur, ce dernier a été amélioré au niveau des lignes de commande pouvant être utilisées.

Je développe actuellement plusieurs petits projets en DarkBasic, dans le but de pouvoir prochainement tester la conversion DarkBasic -> JadeBasic + DarkGDK sur des programmes complexes, et vérifier si les comportements sont identiques de l'un à l'autre.

Pas de grosse avancée pour le moment, donc.
bebou007 Message luPosté le : 23 Nov 2008 16:23
Avatar de bebou007
Membre Novice

Inscrit le : 16 Mar 2008
Messages : 67
GCPoints : 183.9



ok merci pour cette news par contre serait t'il possible d'avoir une maj de jadebasic +darkgdk pour tester un peut sa? lol
Mod Message luPosté le : 23 Nov 2008 17:37
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting


Le compilateur n'est pas encore stable pour l'instant, donc à moins d'en connaître toutes les ficelles, il est à peu près certain que tenter quoi que ce soit avec se solderait pour le moment par un magistral crash.

La prochaine mise à jour viendra avec l'IDE... Je ne compte pas pour l'instant bosser à fond celui-ci, juste de quoi avoir une gestion basique des projets et des options de compilation, une fois cela fait, je terminerai la stabilisation du compilateur, quitte à remettre à plus tard la gestion des erreurs de syntaxe, et à partir de là je pourrai mettre en ligne une nouvelle version. En attendant, il faudra se contenter de la (très vieille) version de septembre, qui n'est certes plus très représentative ^^'.
bebou007 Message luPosté le : 23 Nov 2008 21:59
Avatar de bebou007
Membre Novice

Inscrit le : 16 Mar 2008
Messages : 67
GCPoints : 183.9



ok merci pour l'info sa a l'air de bien avancer quand meme
Dernière édition le 23 Nov 2008 à 23:05
gus Message luPosté le : 20 Déc 2008 18:24
Avatar de gus
Membre Confirmé

Inscrit le : 05 Jan 2008
Messages : 362
GCPoints : 240.1
Programmation


Question a 2 balles: est-ce qu'on peut programmer en recursif?
Mod Message luPosté le : 20 Déc 2008 19:20
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting


Par rapport à JadeBasic, j'ai utilisé la récursivité pour créer des tableaux dynamiques à nombre de dimensions variable.

De manière générale, on se sert de la récursivité quand on effectue des analyses lexicales, quand on a besoin de calculer des suites non linéaire (exemple typique : suite de fibonnacci).
Là, je m'en sers aussi pour GameCorp dans l'affichage des catégories d'articles de l'administration : chaque catégorie peut avoir un parent. On part donc d'un appel de fonction récursive qui affiche les catégories de parent 0 (en paramètre, et qui correspond à "aucun parent"). Dans cette fonction, pour chaque catégorie affichée, on a un appel récursif de la fonction en prenant pour paramètre l'ID de la catégorie en cours. L'affichage se fait donc à l'aide de cette seule fonction, qui s'arrête lorsqu'il n'y a plus de lien de parenté.
La récursivité est d'ailleurs un très bon moyen pour l'affichage d'arbres logiques.

Bref, il y a un paquet d'applications, mais il faut les avoir rencontrées pour penser à la récursivité.
gus Message luPosté le : 20 Déc 2008 22:31
Avatar de gus
Membre Confirmé

Inscrit le : 05 Jan 2008
Messages : 362
GCPoints : 240.1
Programmation


J'ai mal poser ma question: est ce que jade basic suporte le recursif?
Mod Message luPosté le : 21 Déc 2008 09:53
Avatar de Mod
Webmaster

Inscrit le : 14 Oct 2007
Messages : 3755
GCPoints : 13077.2
Programmation - Spriting


J'ai mal compris la question, j'avais lu "qu'est-ce qu'on peut programmer en recursif" ^^'.

Alors, oui, JadeBasic supporte sans problème le récursif. Chaque fonction dispose de sa propre portée de variables.
Noesis Message luPosté le : 21 Déc 2008 13:16
Nouveau Membre

Inscrit le : 15 Déc 2008
Messages : 1
GCPoints : 1.8




Citation :

De manière générale, on se sert de la récursivité quand on effectue des analyses lexicales, quand on a besoin de calculer des suites non linéaire (exemple typique : suite de fibonnacci).


Il exsite une méthode très élégante pour trouver le n-ième terme de la suite de Fibonnacci en une seule ligne :D
Page précédente Page [1][2][3]...[5][6][7]
GameCorp Index du Forum -> Projets logiciels & libraires -> [Langage] JadeBasic : compatibilité DarkGDK...