Small Basic
Fermé
Guigui_1261
Messages postés
6
Date d'inscription
vendredi 16 avril 2021
Statut
Membre
Dernière intervention
18 avril 2021
-
16 avril 2021 à 23:11
Guigui_1261 Messages postés 6 Date d'inscription vendredi 16 avril 2021 Statut Membre Dernière intervention 18 avril 2021 - 18 avril 2021 à 21:24
Guigui_1261 Messages postés 6 Date d'inscription vendredi 16 avril 2021 Statut Membre Dernière intervention 18 avril 2021 - 18 avril 2021 à 21:24
A voir également:
- Small Basic
- Microsoft 365 basic - Accueil - Microsoft Office
- Visual basic - Télécharger - Langages
- Quick basic - Télécharger - Édition & Programmation
- File renamer basic - Télécharger - Gestion de fichiers
- Athan basic - Télécharger - Histoire & Religion
10 réponses
Utilisateur anonyme
Modifié le 16 avril 2021 à 23:53
Modifié le 16 avril 2021 à 23:53
Bonjour
Je ne connais pas cet IDE, et les quelques recherches que je viens de faire ne me permettent pas de me faire une idée assez précise de son utilisation.
Si j'en crois cet article ses outils de débbogage sont quasi inexistants.
https://social.technet.microsoft.com/wiki/contents/articles/16379.small-basic-curriculum-lesson-3-6-debugging-aids.aspx
Je te propose de mettre des TextWindow.WriteLine à différentes étapes ton logiciel (5 à 10 fois pour commencer).
Ainsi tu vas voir quelle est la dernière étape affichée.
Le problème se situe alors entre celle-ci et la suivante.
Il faut donc faire un découpage plus fin entre ces 2 étapes , et ainsi de suite jusqu'à trouver la ligne ou les quelques lignes où ça plante.
Ensuite, il faut déterminer pourquoi ça plante.
Là encore, à priori la seule solution est de se servir de TextWindow.WriteLine et d'afficher les valeurs de toutes les variables un peu avant que ça plante, puis leur évolution à chaque ligne jusqu'à celle du bug.
Pour enfin déterminer le problème et le résoudre
Je ne connais pas cet IDE, et les quelques recherches que je viens de faire ne me permettent pas de me faire une idée assez précise de son utilisation.
Si j'en crois cet article ses outils de débbogage sont quasi inexistants.
https://social.technet.microsoft.com/wiki/contents/articles/16379.small-basic-curriculum-lesson-3-6-debugging-aids.aspx
Je te propose de mettre des TextWindow.WriteLine à différentes étapes ton logiciel (5 à 10 fois pour commencer).
Ainsi tu vas voir quelle est la dernière étape affichée.
Le problème se situe alors entre celle-ci et la suivante.
Il faut donc faire un découpage plus fin entre ces 2 étapes , et ainsi de suite jusqu'à trouver la ligne ou les quelques lignes où ça plante.
Ensuite, il faut déterminer pourquoi ça plante.
Là encore, à priori la seule solution est de se servir de TextWindow.WriteLine et d'afficher les valeurs de toutes les variables un peu avant que ça plante, puis leur évolution à chaque ligne jusqu'à celle du bug.
Pour enfin déterminer le problème et le résoudre
Guigui_1261
Messages postés
6
Date d'inscription
vendredi 16 avril 2021
Statut
Membre
Dernière intervention
18 avril 2021
Modifié le 17 avril 2021 à 11:18
Modifié le 17 avril 2021 à 11:18
Merci pour votre réponse, Whisméril.
J'ai exploré cette solution. Le problème ne semble pas venir du programme lui-même : si je supprime deux cents lignes de code au début du programme (des textwriteline pour la présentation des calculs) ou deux cents lignes de code à la fin du programme, le programme fonctionne. Tout se passe comme si le compilateur n'arrivait pas à avaler le programme, ou bien le small basic trouve ses limites (pourtant le débogage n'indique rien), ou bien il y a des fichiers que le compilateur ne trouve pas.. Mais si c'est ça, ça me dépasse...
"
J'ai vu apparaître une ligne "StackOverflowError"
J'ai exploré cette solution. Le problème ne semble pas venir du programme lui-même : si je supprime deux cents lignes de code au début du programme (des textwriteline pour la présentation des calculs) ou deux cents lignes de code à la fin du programme, le programme fonctionne. Tout se passe comme si le compilateur n'arrivait pas à avaler le programme, ou bien le small basic trouve ses limites (pourtant le débogage n'indique rien), ou bien il y a des fichiers que le compilateur ne trouve pas.. Mais si c'est ça, ça me dépasse...
"
J'ai vu apparaître une ligne "StackOverflowError"
Utilisateur anonyme
17 avril 2021 à 11:43
17 avril 2021 à 11:43
Alors le problème vient de là.
Il existe 2 "sources" de mémoires vives dans lesquelles un programmes peut puiser.
https://www.journaldunet.fr/web-tech/developpement/1202909-que-sont-la-pile-stack-et-le-tas-heap/
Un stackoverflow ou dépassement de pile est le fait que ton programme a consommé toute la pile et ne peut plus s'exécuter.
C'est souvent du à des boucles ou des méthodes récursives qui affectent des variables qui dépendent d'elles même.
Mais comme tu écris
Sans connaitre le langage (y'a tellement de dérivés de basic qui ne couchent pas ensemble qu'un truc vrai pour l'un ne l'est pas pour un autre...), ni l'IDE ça va pas être facile de t'aider.
Quoiqu'il en soit, selon cette page https://www.microsoft.com/fr-FR/download/details.aspx?id=46392 la dernière version date de 2015. 6 ans en programmation c'est long.
Peut-être que le choix initial de ce langage n'a pas été judicieux.
Peut-être serait il salvateur de refaire à zéro avec des outils plus efficaces (notamment pour le déboggage). A noter que 7500 lignes à la fois ça reste un "petit" programme et à la fois ça ne veut pas dire grand chose, je peux te montrer des exemples dans lesquels je fais la même chose en 20 lignes ou en 1 seule.
Quelles sont les raisons qui t'ont orienté vers ce choix?
Il existe 2 "sources" de mémoires vives dans lesquelles un programmes peut puiser.
- La pile
- Le tas
https://www.journaldunet.fr/web-tech/developpement/1202909-que-sont-la-pile-stack-et-le-tas-heap/
Un stackoverflow ou dépassement de pile est le fait que ton programme a consommé toute la pile et ne peut plus s'exécuter.
C'est souvent du à des boucles ou des méthodes récursives qui affectent des variables qui dépendent d'elles même.
Mais comme tu écris
si je supprime deux cents lignes de code au début du programme (des textwriteline pour la présentation des calculs) ou deux cents lignes de code à la fin du programme, le programme fonctionneil est aussi possible que tu utilises trop de variables
Sans connaitre le langage (y'a tellement de dérivés de basic qui ne couchent pas ensemble qu'un truc vrai pour l'un ne l'est pas pour un autre...), ni l'IDE ça va pas être facile de t'aider.
Quoiqu'il en soit, selon cette page https://www.microsoft.com/fr-FR/download/details.aspx?id=46392 la dernière version date de 2015. 6 ans en programmation c'est long.
Peut-être que le choix initial de ce langage n'a pas été judicieux.
Peut-être serait il salvateur de refaire à zéro avec des outils plus efficaces (notamment pour le déboggage). A noter que 7500 lignes à la fois ça reste un "petit" programme et à la fois ça ne veut pas dire grand chose, je peux te montrer des exemples dans lesquels je fais la même chose en 20 lignes ou en 1 seule.
Quelles sont les raisons qui t'ont orienté vers ce choix?
Guigui_1261
Messages postés
6
Date d'inscription
vendredi 16 avril 2021
Statut
Membre
Dernière intervention
18 avril 2021
17 avril 2021 à 13:01
17 avril 2021 à 13:01
Il doit y avoir plus d'une centaine de variables. le problème ne vient pas de boucles récursives
j'ai choisi le small basic pour modéliser des calculs mathématiques avec un langage simple, je n'avais pas le temps d'appendre du compliqué. L'important est mon étude mathématique, que je souhaite accompagner d'un programme. A ce stade, j'imagine trois solutions.
Soit je scinde mon programme en deux programmes distincts
Soit je trouve le moyen d'augmenter la mémoire pour le compilateur. (Une fois le programme compilé en .exe, un utilisateur qui le reçoit aura t il un problème en le lançant ?)
Soit j'exporte mon programme en visual basic en espérant ne pas avoir de stack overflow
(J'ai essayé de l'ouvrir avec visual basic 2010 mais ce logiciel me demande de déclarer la librairie smallbasic.dll et je ne sais pas comment faire).
Est-ce que vous savez encore; Whismeril qui avez la gentillesse de me répondre, si on peut faire quelque chose ?
j'ai choisi le small basic pour modéliser des calculs mathématiques avec un langage simple, je n'avais pas le temps d'appendre du compliqué. L'important est mon étude mathématique, que je souhaite accompagner d'un programme. A ce stade, j'imagine trois solutions.
Soit je scinde mon programme en deux programmes distincts
Soit je trouve le moyen d'augmenter la mémoire pour le compilateur. (Une fois le programme compilé en .exe, un utilisateur qui le reçoit aura t il un problème en le lançant ?)
Soit j'exporte mon programme en visual basic en espérant ne pas avoir de stack overflow
(J'ai essayé de l'ouvrir avec visual basic 2010 mais ce logiciel me demande de déclarer la librairie smallbasic.dll et je ne sais pas comment faire).
Est-ce que vous savez encore; Whismeril qui avez la gentillesse de me répondre, si on peut faire quelque chose ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
17 avril 2021 à 13:28
17 avril 2021 à 13:28
Soit j'exporte mon programme en visual basic en espérant ne pas avoir de stack overflow
(J'ai essayé de l'ouvrir avec visual basic 2010 mais ce logiciel me demande de déclarer la librairie smallbasic.dll et je ne sais pas comment faire).
Ça ne marchera pas VB.Net est un faux ami de VB. C'est un très bon exemple des trucs vrais pour lui mais par pour les autres et inversement.
En plus 2010 est obsolète, aujourd'hui c'est Visual Studio 2019.
Soit je scinde mon programme en deux programmes distinctsje ne peux pas me prononcer, je n'ai pas assez d'éléments et la connaissance de small basic
Soit je trouve le moyen d'augmenter la mémoire pour le compilateur. (Une fois le programme compilé en .exe, un utilisateur qui le reçoit aura t il un problème en le lançant ?)ce langage semble trop basique (sans mauvais jeu de mot) pour que cela soit possible.
j'ai choisi le small basic pour modéliser des calculs mathématiques avec un langage simple, je n'avais pas le temps d'appendre du compliqué
Python aurait été un bien meilleur choix, les modules mathématiques existent, là j'imagine que tu as du presque tout inventer. Il est simple à apprendre. Et surtout il y a des IDE qui te donnent des outils de débbogage assez pratiques (le premier d'entre eux étant l'exécution en pas à pas).
Pour les études mathématiques, il existe par exemple Jupyter qui est parfaitement adapté.
Ici une petite présentation avec un tuto vidéo de quelques minutes http://www.dane.ac-versailles.fr/comprendre/jupyter-une-application-pour-programmer-en-python
Guigui_1261
Messages postés
6
Date d'inscription
vendredi 16 avril 2021
Statut
Membre
Dernière intervention
18 avril 2021
17 avril 2021 à 15:13
17 avril 2021 à 15:13
Merci beaucoup pour votre aide.
Utilisateur anonyme
17 avril 2021 à 16:14
17 avril 2021 à 16:14
Tu n’as rien à me remercier, je n’ai pas été en mesure de t’apporter une solution.
Guigui_1261
Messages postés
6
Date d'inscription
vendredi 16 avril 2021
Statut
Membre
Dernière intervention
18 avril 2021
17 avril 2021 à 18:59
17 avril 2021 à 18:59
Que nenni, toute aide fait chaud au coeur, et j'y vois plus clair.
Utilisateur anonyme
18 avril 2021 à 12:15
18 avril 2021 à 12:15
Bonjour
Tu peux essayer de découper ton programme actuel en 2, comme tu l'as déjà envisagé.
Le premier stocke les résultats intermédiaires dans un fichier et le second lit ce fichier pour la suite.
Et si small basic permet de lancer d'autres logiciels, tu peux essayer d'en écrire un troisième qui exécute le premier puis le second
Tu peux essayer de découper ton programme actuel en 2, comme tu l'as déjà envisagé.
Le premier stocke les résultats intermédiaires dans un fichier et le second lit ce fichier pour la suite.
Et si small basic permet de lancer d'autres logiciels, tu peux essayer d'en écrire un troisième qui exécute le premier puis le second
Guigui_1261
Messages postés
6
Date d'inscription
vendredi 16 avril 2021
Statut
Membre
Dernière intervention
18 avril 2021
18 avril 2021 à 21:24
18 avril 2021 à 21:24
J'ai supprimé des lignes de codes non indispensables et maintenant ça fonctionne. je suis juste à la limite du stack overflow : j'ai testé, c'est amusant de le voir planter pour quelques lignes en plus. Mais on devrait quand même pouvoir modifier la mémoire allouée au compilateur pour ce logiciel...