FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
[24i2] Au sujet de DIM_LOCAL Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
[24i2] Au sujet de DIM_LOCAL Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
[24i2] Au sujet de DIM_LOCAL Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
[24i2] Au sujet de DIM_LOCAL Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
[24i2] Au sujet de DIM_LOCAL Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
[24i2] Au sujet de DIM_LOCAL Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
[24i2] Au sujet de DIM_LOCAL Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
[24i2] Au sujet de DIM_LOCAL Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
[24i2] Au sujet de DIM_LOCAL Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
[24i2] Au sujet de DIM_LOCAL Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
[24i2] Au sujet de DIM_LOCAL Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
[24i2] Au sujet de DIM_LOCAL Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
[24i2] Au sujet de DIM_LOCAL Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
[24i2] Au sujet de DIM_LOCAL Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
[24i2] Au sujet de DIM_LOCAL Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 [24i2] Au sujet de DIM_LOCAL

Aller en bas 
+4
papydall
Yannick
pan59
Nardo26
8 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 17:01

Attention :
Je ne sais pas si c'est volontaire mais :
les paramètres ne sont pas reinitialisés par cette instruction !
Cela signifie que leur contenu est conservé après le END_SUB...

Code:
DIM i
FOR i = 0 TO 10
  Test()
NEXT i
END
SUB Test()
 DIM_LOCAL param
 print param
 param = param+1
END_SUB
Revenir en haut Aller en bas
http://nardo26.lescigales.org
pan59

pan59


Nombre de messages : 367
Age : 67
Localisation : Wattignies
Date d'inscription : 16/10/2011

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: dim local   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 17:14

Bonjour.

Je pense que l'on devrait voir l'affichage de la valeur zéro dix fois, et non 0 à 10.
Revenir en haut Aller en bas
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: re   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 17:18

Effectivement, il était question d'un "free_local" implicite au "end_sub"
et l'affichage devrait être dix fois 0... Suspect
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 17:21

Ce n’est pas beau, ça !
Ça peut induire en erreur.
Pour réinitialiser la variable, doit-on avoir recours à FREE ?
Avec FREE variable, ça devient correct.
Mais là quel « plus » le DIM_LOCAL a-t-il ajouté ?
Code:

DIM i
FOR i = 0 TO 10
  Test()
NEXT i
END
SUB Test()
 DIM_LOCAL param
' print param
 param = param+1
 print param
 free param
END_SUB
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 18:49

Eh bien, je crois bien que tu as trouvé un BUG (en gros pour attirer le regard de Jack...) ! En effet, le but même des variables locales, c'est d'être libérées automatiquement par END_SUB. D'ailleurs, au second passage, la commande DIM_LOCAL ne signale pâs que la variable est déjà définie ! Et c'est même pire que ça:
Code:
DIM i
FOR i = 0 TO 10
  Test()
NEXT i
END
SUB Test()
 DIM_LOCAL param
 DIM_LOCAL param
 print param
 param = param+1
END_SUB
Même au premier passage, on devrait avoir une erreur de variable déjà définie. Il y a bien un problème, à la fois avec END_SUB et avec DIM_LOCAL. Et c'est identique pour les variables en flottant, en entier ou en chaîne de caractères.
Et même ceci:
Code:
DIM i
FOR i = 0 TO 10
  Test(i)
NEXT i
END
SUB Test(x)
 DIM_LOCAL param
 DIM_LOCAL param
 DIM_LOCAL x
 x = x*2
 print str$(param)+"  "+str$(x)
 param = param+1
END_SUB
Cela ne vous interpelle pas ? Redéfinir un paramètre formel ? Il y a bien un problème avec DIM_LOCAL.
J'utilise la V0.24i2 du 12 Septembre.

EDIT

J'ai corrigé l'erreur de manipulation qui faisait que le dernier code n'était pas complet. Desculpe-me...


Dernière édition par Klaus le Lun 17 Sep 2012 - 19:49, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 18:57

D'après ce que j'ai compris, Jack nous a passé une version non-sécurisée :

il n'y a pas de contrôle par exemple sur le nb de paramètre passé à la procedure.
donc je suppose qu'au niveau contrôle/vérif si une DIM locale est déjà déclarée, rien n'a encore été écrit...(c'est du même style que nb param)

Soit, c'est pas grave... Jack planche certainement déjà sur le sujet.[24i2] Au sujet de DIM_LOCAL 07
Par contre, la libération d'une variable locale au moment du END_SUB me parait plus important, fonctionnellement parlant...


Dernière édition par Nardo26 le Lun 17 Sep 2012 - 19:40, édité 1 fois
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 19:00

C'est ennuyeux cette histoire, je vais rester prudent (et je le suis déjà) avec le dernière version.

Merci pour l'info Nardo

A+
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 20:32

Salut tout le monde.

J’ai une proposition à vous faire. Libre à vous de ne pas en tenir compte.

Etant donné que la version actuelle est une version non stable, je vous propose de ne pas trop vous investir dans le développement de programmes consistants (avec cette version) et de faire des petits essais et tests (aussi inattendus soient-ils) pour découvrir ce qui ne va pas.

Je pense que de cette façon on peut aider Jack un tant soit peu pour qu’il puisse apporter les corrections et les modifications utiles.

A bon lecteur, salut ! flower


Dernière édition par papydall le Lun 17 Sep 2012 - 22:10, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 21:04

je suis d'accord Papydall Wink
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 21:51

Perso, je suis à fond avec cette version. cheers
Je commence même à écrire une petite librairie de"fonctions".
-> Je code mes procédures de manière à être facilement modifiable pour en faire des fonctions par la suite.
Si personne n'utilise cette version, je ne vois pourquoi Jack continuerai dans cette voie et cela serait bien dommage... Neutral
il ne faut oublier que c'est une vraie "beta-version" et qu'il faut faire avec. Les petites imperfections inherentes à ce stade sont négligeables en comparaison du gain obtenu avec les SUB...


Dernière édition par Nardo26 le Lun 17 Sep 2012 - 21:55, édité 2 fois
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 21:52

Il n'a pas dis ça, juste de ne pas créer des énormes programmes s'il y a des problèmes mais de tester à fond sur des tas de petits dans tous les sens pour aider Jack à finir les tests et le debuggage. Enfin, c'est comme ça que je l'ai compris
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyLun 17 Sep 2012 - 22:08

Peut-être me suis-je mal exprimé.
Je ne suis pas contre l’utilisation de cette version, bien au contraire !
Je dis qu’on devrait procéder à des essais et tests pour valider ou invalider certains comportements des nouveaux ajouts.
C’était un point de vue ; et comme toute chose peut être vue de plusieurs angles, alors .... sunny
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: [Select_Text N,P,C] Bug !   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 3:07

J' ai essayé l'exemple de la doc et....rien!
J'ai même eu droit à des accès violation alors
que j'avais un prog en cours d'écriture sur un autre onglet.

Et j'vous dis pas...la violation du bill...faut s'la faire... Laughing
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 18:59

C'est effectivement une version d'essai qui est mise au téléchargement, et qui a ses imperfections.

Les mots-clés SUB, END_SUB et DIM_LOCAL sont définitifs. Je veux dire qu'ils resteront ainsi dans toutes les versions futures de PANORAMIC : vous n'aurez pas à modifier vos sources plus tard si vous les utilisez aujourd'hui, ils ne changeront pas.

DIM_LOCAL n'efface pas les valeurs des variables après le END_SUB car je n'avais pas pensé cela utile, vu que ces variables sont normalement réutilisées à chaque appel du SUB et donc devraient être réaffectées à chaque appel. Mais cela se discute.

Le nombre de paramètres lors de l'appel n'est pas complètement testé: si on appelle un SUB avec un nombre de paramètres suppérieur au nombre de paramètres définis par la déclaration du SUB, il y a erreur. Mais si on appelle un SUB avec un nombre de paramètres inférieur à celui de la déclaration (SUB), il n'y a pas encore de message d'erreur.

Je pense qu'il est normal qu'il n'y ait pas d'erreur quand, à chaque appel d'un SUB, une ligne DIM_LOCAL est réexécutée. Une ligne DIM_LOCAL n'est exécutée qu'une seule fois par PANORAMIC : à la première exécution du SUB.
Sinon, l'utilisateur devrait lui-même gérer la ligne et tester s'il exécute le SUB pour la première fois pour exécuter DIM_LOCAL et ne plus l'exécuter lors des appels suivants. Cela est contraire au principe de simplicité de PANORAMIC.

Quant aux fonctions, je rencontre une difficulté inattendue et il faudra patienter encore avant de les utiliser. La difficulté (de taille) est que PANORAMIC n'a pas du tout été pensé pour exécuter une partie de code en plein milieu de l'évaluation d'une expression.
Je m'explique.
Si l'utilisateur définit la fonction "ma_fonction%" par:
Code:
FNC ma_fonction%(x%,y%)
- - -
END_FNC
et qu'on la retrouve dans:
Citation :
button 34+5*ma_fonction%(3+s%*i%,3+24*a%+5*z%)+9*u%*h%
eh bien PANORAMIC n'a pas du tout été conçu pour aller exécuter le code de ma_fonction% pendant l'évaluation de l'expression 34+5*ma_fonction%(3+s%*i%,3+24*a%+5*z%)+9*u%*h%
Je dois changer complètement la manière dont PANORAMIC évalue les expressions avant d'implémenter les fonctions.
Revenir en haut Aller en bas
https://panoramic.1fr1.net
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 19:08

Jack, merci pour ces éclaircissements.
Prends ton temps. On peut toujours patienter !

Au moins on sait maintenant que l’appel des fonctions se fera par FNC.... et la sortie par END_FNC.


Dernière édition par papydall le Mar 18 Sep 2012 - 19:22, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 19:16

Merci, Jack, pour ces explications.

J'ai une réserve par rapport à ta vision de DIM_LOCAL. Pour moi, tout ce qui a été mis en place lors d'une entrée dans un SUB doit être épuré complètement à la sortie. Les variables locales doivent être effacées comme s'il y avait un FREE implicite sur chaque variable. En effet, lorsque le programmeur appelle une même procédure à différents endroits d'un programme, il le fait en supposant que la procédure s'exécute de la même manière, quelque soit l'endroit dans son programme qui l'appelle la première fois, ou une des fois suivantes. La notion même de variable locale est contraire avec la persistance de données.

Cela devrait fonctionner comme si toutes les variables locales étaient créées sur la pile, et donc simplement oubliées au retour par le nettoyage de la pile. Je me doute que techniquement, tu ne le réalises pas comme ça, mais il faudrait veiller à faire un FREE implicite sur toutes les variables locales. Et dans ce cas, DIM_LOCAL peut s'exécuter normalement comme le DIM actuel, avec test d'existence des variables PAR RAPPORT AUX VARIABLES LOCALES DE LA MEME PROCEDURE ! Il n'y aura aucun conflit, et une protection contre la redéfinition de variables. De plus, il devrait être interdit de déclarer une variable locale du même nom qu'un paramètre formel de la procédure - cela semble évident et n'est pas le cas aujourd'hui.

Je crois que cette conception contribue à la simplicité de Panoramic par la clarté des règles. Un millième appel à une procédure doit se dérouler EXACTEMENT comme le premier, et ce n'est pas le cas si tu ne libères pas les variables locales.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 19:28

Klaus, ton analyse est claire.
A y réfléchir une fraction de seconde seulement, j’adhère à cette vision.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Yannick




Nombre de messages : 8635
Age : 53
Localisation : Bretagne
Date d'inscription : 15/02/2010

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: re   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 19:41

Je suis d'accord avec cette vision de la chose

donc +1... plus que 12 Laughing
Revenir en haut Aller en bas
Invité
Invité




[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 19:53

Je vais faire celui qui suit pas les idée des autres. Il faut un peu de changement de temps en temps.
Ce qui serait bien, ce serait de pouvoir défionir ainsi:

Code:
dim_local a%=10 , b$="salut, c%


Ainsi les deux cas se rejoignent. Celui qui veut pousuivre sa variable, d'appel en appel, initialise normalement, et celui qui reprend tout-à zéro, lui donne la valeur (ou le contenu) voulue.

En AutoIt cela marche ainsi, et il me semble qu'en Delphi, si mes souvenirs sont bons, une variable peut avoir n'importe quel contenu à l'initialisation. Il faut lui indiquer celui-ci. Je ne crois pas me tromper sur ce point.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 20:13

Une fois que l'on connait le truc et qu'il faut considérer les variables locales comme étant de type statique, perso cela ne me dérange pas de les initialiser avant utilisation.

De toute manière ces variables, si elles sont déclarées, doivent fatalement subir une affectation à un moment donné. A nous de faire attention à ce que l'on écrit... Même dans d'autres langages, je m'efforce de les initialiser (on ne sait jamais ce qu'il y a dans la pile)

@Jicehel : Mauvaise nouvelle, cela signifie aussi qu'il n'y aura pas possibilité de faire du récursif si chaque appel pointe sur la même zone mémoire pour les variables locales...


Je ne sais pas comment est structuré le noyau Panoramic mais un truc que je ne pige pas, c'est la difficulté de Jack concernant les fonctions qui se trouvent dans une expression... scratch

C'est déjà plus ou moins en place : quand j'écris c = 30 + asc(mid$(a$, i, 1)) + z

on a bien le déroulement du code d'une ou plusieurs fonctions (mid$ + asc) dans cette expression... study


Dernière édition par Nardo26 le Mar 18 Sep 2012 - 20:20, édité 2 fois
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jean Claude

Jean Claude


Nombre de messages : 5950
Age : 70
Localisation : 83 Var
Date d'inscription : 07/05/2009

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 20:16

Bonsoir,

UN VRAI DÉBAT ET IMPORTANT POUR LA SIMPLICITÉ c'est DIM_LOCAL....

Jack a écrit:
Je pense qu'il est normal qu'il n'y ait pas d'erreur quand, à chaque appel d'un SUB, une ligne DIM_LOCAL est réexécutée. Une ligne DIM_LOCAL n'est exécutée qu'une seule fois par PANORAMIC : à la première exécution du SUB.
Sinon, l'utilisateur devrait lui-même gérer la ligne et tester s'il exécute le SUB pour la première fois pour exécuter DIM_LOCAL et ne plus l'exécuter lors des appels suivants. Cela est contraire au principe de simplicité de PANORAMIC.

Klaus a écrit:
J'ai une réserve par rapport à ta vision de DIM_LOCAL. Pour moi, tout ce qui a été mis en place lors d'une entrée dans un SUB doit être épuré complètement à la sortie. Les variables locales doivent être effacées comme s'il y avait un FREE implicite sur chaque variable. En effet, lorsque le programmeur appelle une même procédure à différents endroits d'un programme, il le fait en supposant que la procédure s'exécute de la même manière, quelque soit l'endroit dans son programme qui l'appelle la première fois, ou une des fois suivantes. La notion même de variable locale est contraire avec la persistance de données.

Dans ma vision (bonne ou mauvaise) l'instruction DIM_LOCAL est écrite à l'intérieur de la procédure ,donc entre SUB() et END_SUB. Si c'est le cas, je ne vois pas pourquoi il n'y aurait pas un FREE_AUTOMATIQUE vu que la ou les variable(s) se retrouvent automatiquement recrées dès que l'on retourne dans la procédure (SUB).

qu'en pensez-vous ? pour ma part je me range à l'avis de Klaus.

Merci Jack pour le travail que tu fais, je sens bien que çà n'a pas l'air d'être de la tarte....


A+

EDIT: ON s'est croisés avec Cosmos et Nardo, mais cela ne change rien à ma pensée sur le sujet.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 20:29

@Jicehel, rectification concernant les appels récursifs:
On pourra en faire mais les choses risquent d'être un peu plus compliqué :
- Mise en place d'un système avec création de DLIST en dynamique pour simuler les dim locaux...
scratch drunken
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 21:20

Citation :
Pour moi, tout ce qui a été mis en place lors d'une entrée dans un SUB doit être épuré complètement à la sortie. Les variables locales doivent être effacées comme s'il y avait un FREE implicite sur chaque variable.
@Klaus:
Cela me parait logique.

Citation :
un truc que je ne pige pas, c'est la difficulté de Jack concernant les fonctions qui se trouvent dans une expression...
C'est déjà plus ou moins en place : quand j'écris c = 30 + asc(mid$(a$, i, 1)) + z
on a bien le déroulement du code d'une ou plusieurs fonctions (mid$ + asc) dans cette expression
@Nardo:
Non, c'est complètement différent:
asc et mid$ de ton exemple ne font pas partie du source.
ma_fonction% de mon exemple fait partie du source.
Et c'est une difficulté énorme car pour obtenir le résultat de "ma_fonction%" en plein milieu d'une expression, alors que la ligne n'est pas complètement évaluée, et qu'on n'est pas encore passé à la ligne suivante, il faut exécuter d'autres lignes du source, celles qui contiennent la fonction utilisateur ma_fonction%.
Le code de asc et de mid$ se trouve dans le code interne de PANORAMIC: il n'y a pas besoin d'exécuter du source pour obtenir un résultat.
Le code de ma_fonction% est dans le source lui-même et il faut l'exécuter en plein milieu de l'exécution d'une autre ligne.
C'est une difficulté, mais rassurez-vous, j'ai une solution. Elle va seulement être longue à implémenter.


Dernière édition par Jack le Mar 18 Sep 2012 - 21:26, édité 1 fois
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 21:26

ok merci pour l'explication. par contre hors expression, une syntaxe simple de fonction serait elle envisageable du genre s$=mafonction(paramètres) ?
par ce que dans ce cas, on évalue la fonction et on l'utilise après.
Je pense que comme ça, c'est plus simple à coder et tout à fait exploitable dans les programmes.
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL EmptyMar 18 Sep 2012 - 21:32

Réduire les fonctions à l'affectation d'une variable, c'est quelques heures de travail:
Code:
a%=ma_fonction%(5+b%,6+c%)

Pouvoir les utiliser dans une expression, c'est plusieurs semaines de travail:
Code:
a%=ma_fonction%(5+b%,6+c%)+1
a%=ma_fonction%(ma_fonction%(b%,c%),ma_fonction%(d%,e%))+1
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Contenu sponsorisé





[24i2] Au sujet de DIM_LOCAL Empty
MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   [24i2] Au sujet de DIM_LOCAL Empty

Revenir en haut Aller en bas
 
[24i2] Au sujet de DIM_LOCAL
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» [24i2] LINE_CALL
» Version instantanée du 12 septembre 2012 PANORAMIC V0.9.24i2
» Sujet en OR
» Au sujet des DIM
» Basic.

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Ce qui est en cours ...-
Sauter vers: