FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Klaus Hier à 23:55

» KGF_dll - nouvelles versions
par pascal10000 Hier à 17:27

» Mah-Jong européen new-look
par Minibug Mar 12 Déc 2017 - 22:31

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

» anomalie
par Klaus Sam 9 Déc 2017 - 3:21

» hommage
par Jicehel Ven 8 Déc 2017 - 11:29

» Logiciel de soutien scolaire en langues.
par Pedro Alvarez Ven 8 Déc 2017 - 10:43

» carte son
par Klaus Ven 8 Déc 2017 - 2:37

» mise a jour calculatrice
par joeeee2017 Mer 6 Déc 2017 - 22:19

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 [24i2] Au sujet de DIM_LOCAL

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2
AuteurMessage
Klaus

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mar 18 Sep 2012 - 22:55

@Jack:
Je suis content de voir que tu es d'accord avec mon opinion sur les variables locales.

En ce qui concerne les fonctions, je comprends parfaitement la difficulté devant laquelle tu te trouves pour gérer l'appel d'une fonction Panoramic à l'intérieur d'une expression. Pour ma part, la simple affectation mavariable=mafonction(...) avec les paramètres et variables locales gérées comme dans les procédures, résoudrait 90 % des utilisations que je compte en faire. Personnellement, je voterait pour une implémentation de ce type. Et je pense que si plus tard l'envie te prend d'aller plus loin, ce sera toujours possible et pas contradictoire avec la première option.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mar 18 Sep 2012 - 23:05

Moi, ça me conviendrait parfaitement aussi et je comprends tout à fait le travail énorme que représenterait l'autre méthode. Je pense qu'il ne faut pas trop se disperser et déjà bien tester / exploiter cette grosse avancée. C'est déjà énorme

Pour le dim on partirait donc bien vers leur suppression complète en fin de traitement ?

Le gros avantage de cette méthode et de créer des variables totalement autonomes par exemple est comme le disait Nardo de permettre à une procédure de s'appeler elle même sans que les variables ne perde ses valeurs même si elles sont initialisées au début.
Dans cette méthode il faut en effet forcément qu'elle soit libérée en fin de traitement pour éviter la saturation de la mémoire
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mar 18 Sep 2012 - 23:56

Tout comme Klaus, une simple affectation v = fonction(x) me conviendrai parfaitement. Wink

Juste pour savoir:
Pour les dim_locaux on tendrais vraiment vers une gestion dynamique (alloc/free) de la zone 'variable locale' ou une raz auto d'une seule zone par DIM_LOCAL ?

Car apparemment vue la version 24i2, Jack alloue une bonne fois pour toute une seule zone, unique, de variable par procedure/fonction...
scratch
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Klaus

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 0:20

Dans mon esprit, tout ce qui est alloué par DIM_LOCAL doit obligatoirement être "oublie", supprimé automatiquement à la sortie de la procédure ou de la future fonction, exactement comme si l'on avait fait explicitement un FREE sur toutes les variables définies par DIM_LOCAL, et ce quella sortie soit faire par END_SUB/END_FUNCTION ou les éventuiels EXIT_SUB/EXIT_FUNCTION. Ainsi, DIM_LOCAL peut tester si une variable a déjà été déclarée par DIM_LOCAL dans la même procédure et produire une erreur dans ce cas, et également si une variable dans un DIM_LOCAL porte le même nom qu'un paramètre formel de la procédure ou de la fonction.

Maintenant, on peut débattre de la visibilité.

1. Une variable déclarée par DIM, n'importe où dans le programme, est visible partout et reste présente et définie, même si elle a été déclarée par DIM dans une procédure, même après la sortie de la procédure. Elle est visible dans toutes les procédures - c'est une variable globale.

2. Une variable définie par DIM_LOCAL n'a d'existence qu'à l'intérieur de la procédure qui la déclare. Elle n'est pas visible dans le programme principal, ni dans une procédure ou fonction qui aurait appelé la procédure déclarant cette variable.

Mais, pour la visibilité "en-dessous", il y a deux conceptions différentes qui se valent:
2.1. une variable déclarée par DIM_LOCAL est STRICTEMENT personnelle à la procédure qui la déclare. Elle n'est pas non plus visible dans une procédure qui serait appelée par la procédure déclarante
2.2. une variable déclarée par DIM_LOCAL est visible dans toute l'arborescence de fonctions et procédures appelées à partir de la procédure déclarante. C'est en somme une variable globale restreinte à l'hiérarchie des procédures et fonctions à un instant donné.

Personnellement, j'opterais pour la solution 2.1 qui a l'avantage d'être parfaitement claire et évite toute confusion.

Je vais revenir sur un autre élément tout aussi important que les variables locales: se sont les labels locaux. A mon sens, il faut avoir une commande similaire pour les labels: LABEL_LOCAL nom, ... déclarant des labels devant impérativement être situés physiquement entre SUB et END_SUB et qui sont SUPPRIMES par END_SUB/END_FUNCTION ou EXIT_SUB/EXIT_FUNCTION, exactement de la même manière que les variables.

Ceci est essentiel, au minimum pour la gestion de la commande ON_ERROR_GOTO qui a absolument besoin d'un label. Et dans une procédure, ce label doit être local et ne pas rentrer en conflit avec des labels du programme principal ou des labels dans d'autres procédures.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
papydall

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 0:32

Etant donné que certains (et j’en fais partie) sont avides d’utiliser au plus vite les fonctions, je pense que pouvoir faire (après avoir défini MaFonction, bien sûr !)
Code:

.....
x = .....
y = .....
z = .....
t = MaFonction(x,y,z)
w = (3*t + 1/t) * cos(x)
.....
est suffisant dans la majorité des situations.

Alors, Jack, puisque tu as dis toi-même que ce genre de code ne nécessite pas plus que quelques heures de travail, je me rejoins à Klaus et à Nardo26 pour disposer de cette façon de faire, quitte à l’améliorer plus tard.
Ipso facto, c’est à toi de décider.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Invité
Invité



MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 0:42

Je suis d'accord aussi. Suffit de dire les restrictions actuelles dans la doc et tout le monde comprendra.
Revenir en haut Aller en bas
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 0:51

Perso, je suis pour le choix 2.1 aussi.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 0:53

Que pensez-vous si on pouvait faire des procédures et/ou fonctions imbriquées ?
Code:
SUB proc1(....)
    DIM_LOCAL ....
    SUB proc2(....) : ' déclaration de proc2 à l’intérieur de proc1
            DIM_LOCAL ....
            .... : ' Corps de proc2
    END_SUB : '  fin de proc2
    ....  : '  Suite de proc1
    proc2(....) : ' appel de proc1 à proc2 qui est à l’intérieur de proc1
    .... : '  Suite de proc1
END_SUB : '  fin de proc1


Dernière édition par papydall le Mer 19 Sep 2012 - 1:55, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jicehel

avatar

Nombre de messages : 5863
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 0:59

Papydall, je pense que pour le moment, il faut faire simple et ne pas imbriquer les déclaration
Je ferais plutôt comme ça:

Code:

SUB proc1(....)
    DIM_LOCAL ....
    ....  : '  Suite de proc1
    proc2(....) : ' appel de proc1 à proc2 qui est à l’intérieur de proc1
    .... : '  Suite de proc1
END_SUB : '  fin de proc1

SUB proc2(....) : ' déclaration de proc2 à l’intérieur de proc1
    DIM_LOCAL ....
      .... : ' Corps de proc2
END_SUB : '  fin de proc2


Ce que tu propose et bien, ça se rapproche de la programmation objet (un peu) mais je pense que ça éloigne encore un peu plus de l'esprit de simplicité de Panoramic
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 1:11

C’était une simple idée qui a juste effleuré la surface externe de la partie profonde de ce qui me reste du réseau des neurones ! Laughing Laughing Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Klaus

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 1:23

Je pense (et c'est une simple déduction) que pour le moment, Jack isole les procédures tout début, après avoir traité les #INCLUDE, et avant de commencer l'exécution proprement-dite. Ceci veut dire que les procédures sont repérées, peut-être mémorisées séparément, en tout cas connus AVANT l'exécution normale.

Pourquoi ? Parce qu'il n'y a aucune déclaration préalable de la procedure, un peu comme pour les labels avec la commande LABEL. Une procédure peut parfaitement se trouver à la fin du code et pourtant être utilisée bien au-dessus.

Conséquence: une procédure codée à l'intérieur d'une autre procédure est identique à la même procédure codée avant ou après l'autre.

A Jack de confirmer ou infirmer cette impression qui pour le moment n'engage que moi.

EDIT

Dans l'état actuel de la situation, on ne peut pas déclarer une procédure à l'intérieur d'une autre procédure. Cela est rejeté avec une erreur sur la commande SUB intercalée entre un SUB et le END_SUB correspondant. C'est certainement intentionnel.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Nardo26

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 2:03

restons simple...
...Et c'est moi qui dis ça !!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
papydall

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 2:41

Nardo26 a écrit:
restons simple...
...Et c'est moi qui dis ça !!

je veux bien rester simple.
Mais comment tu fais pour afficher des Smileys comme ceux-ci ?


Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 14:15

Klaus a écrit:
2.1. une variable déclarée par DIM_LOCAL est STRICTEMENT personnelle à la procédure qui la déclare. Elle n'est pas non plus visible dans une procédure qui serait appelée par la procédure déclarante

Klaus a écrit:
Je vais revenir sur un autre élément tout aussi important que les variables locales: se sont les labels locaux. A mon sens, il faut avoir une commande similaire pour les labels: LABEL_LOCAL nom, ... déclarant des labels devant impérativement être situés physiquement entre SUB et END_SUB et qui sont SUPPRIMES par END_SUB/END_FUNCTION ou EXIT_SUB/EXIT_FUNCTION, exactement de la même manière que les variables.

Franchement je trouve que c'est le meilleur et le plus simple pour le programmeur.

Je soutiens à fond cette vision. Et Jack tranchera... Very Happy

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

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

MessageSujet: Re: [24i2] Au sujet de DIM_LOCAL   Mer 19 Sep 2012 - 14:26

papydall a écrit:
Nardo26 a écrit:
restons simple...
...Et c'est moi qui dis ça !!

je veux bien rester simple.
Mais comment tu fais pour afficher des Smileys comme ceux-ci ?


J'utilise le module "custom buttons" sous firefox... que j'ai personnalisé...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Contenu sponsorisé




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

Revenir en haut Aller en bas
 
[24i2] Au sujet de DIM_LOCAL
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» pourquoi nous ne pouvons pas répondre au sujet
» Le sujet SQL
» Sujet d'examen de fin de cycle primaire 28.5.2013
» Sujet A lire
» Sujet d'examen

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: