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.
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 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 : -55%
Friteuse sans huile – PHILIPS – Airfryer ...
Voir le deal
49.99 €

 

 COMPILATEUR V 0.9 beta 10 du 29 aout 2017

Aller en bas 
+14
Mike
bignono
Jicehel
Froggy One
jean_debord
Marc
Jean Claude
Yannick
JL35
Klaus
silverman
papydall
Pedro
Jack
18 participants
Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
AuteurMessage
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyDim 30 Juil 2017 - 23:06

Une nouvelle version est disponible ici :

http://panoramic-language.pagesperso-orange.fr/PANORAMIC_COMPILER_EDITOR.zip

C'est la version V 0.9 beta 5 du 30 juillet 2017.

Elle corrige tous les bugs signalés.

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Yannick




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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyDim 30 Juil 2017 - 23:45

C' est chargé, je testerai dès demain matin.
Laughing
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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 0:51

Désolé jack, mais le problème de DIM_LOCAL persiste.

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 121



COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 120

Si j’enlève la ligne 6 et je déclare ces 4 variables en globale avant l’appel de SUB Init_prog(),
la compilation se déroule bien, mais à l’exécution :

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 215
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Le compilateur.   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 7:20

Bonjour.

@Jack
Je voulais te signaler un bug dans la 1ère ligne qui suit:

if without corresponding end_if

Franchement, je ne vois pas ce qui cloche ici !!


Code:
if left$(traduction_mot$,34)="Ne pas traduire ce mot en tant que"
   b$="$"
   traduction_mot$=mot_a_traduire$
end_if

Même message d'erreur ici, mais sur la ligne contenant 'end_if' !!

Code:
if instr(trim$(traduction_mot$)," ")>0
   position%=1
   while 0=0
            x%=instr_pos(traduction_mot$," ",position%)
            if x%=0 then exit_while
                        
            traduction_mot$=left$(traduction_mot$,x%)+car$+right_pos$(traduction_mot$,x%+1)
            position%=x%+2
   end_while
end_if

Alors, comment peux-tu affirmer que cette version corrige tous les bugs signalés !!
Là, je ne comprends plus !
Revenir en haut Aller en bas
Marc

Marc


Nombre de messages : 2466
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 10:06

Bonjour à tous !


Merci Jack pour tout le temps que tu passes pour continuer à développer Panoramic.

J'ai remarqué que ce programme, certes très simple (1 ligne), ne fonctionne pas :

Code:
END

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Pce10


Bonne continuation !
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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 10:17

Bien qu’elle soit incomplète, la version du compilateur la plus aboutie est la version 0.1 alpha 4 du 18 mai 2014.
Avec elle j’ai pu coder, compiler et exécuter des beaux programmes.
Depuis rien ne va plus ou presque. Embarassed
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
jean_debord

jean_debord


Nombre de messages : 1266
Age : 70
Localisation : Limoges
Date d'inscription : 21/09/2008

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 10:19

Le programme "END" fonctionne en FreeBASIC (bien qu'il ne fasse rien !)

C'est peut-être une erreur de traduction PANORAMIC --> FreeBASIC
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

papydall


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 11:28

Chez moi, l’unique ligne END proposée par Marc37, se compile et s’exécute sans problème.
Aucun problème de ce coté là.

Par ailleurs, je suis agréablement surpris par le fonctionnement correct de la récursivité. cheers
C’est sans doute un effet de bord !

Le code suivant qui comporte une procédure récursive (sans grande utilité) montre bien ce qu’on faire avec de la récursivité.

Code:

list 10 : top 10,50 : left 10,100 : height 10,300
Afficher_Recursif(1.1)
end
SUB Afficher_Recursif(a%,b%)
    if a% < 4
       if b% < 10
          item_add 10,str$(a%*10+b%)
          Afficher_Recursif(a%,b%+1)
       else
          Afficher_Recursif(a%+1,0)
       end_if
    end_if
END_SUB
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 16:37

@Pedro Alvarez:

Ton premier source ne déclenche aucune erreur, se compile et s'exécute correctement:
Code:
dim traduction_mot$,b$,mot_a_traduire$

if left$(traduction_mot$,34)="Ne pas traduire ce mot en tant que"
  b$="$"
  traduction_mot$=mot_a_traduire$
end_if

Par contre ton second source ne compile pas à cause d'un problème sur EXIT_WHILE qui n'est pas traité correctement par le compilateur:
Code:
dim traduction_mot$,x%,position%

if instr(trim$(traduction_mot$)," ")>0
  position%=1
  while 0=0
            x%=instr_pos(traduction_mot$," ",position%)
            if x%=0 then exit_while
                       
            traduction_mot$=left$(traduction_mot$,x%)+car$+right_pos$(traduction_mot$,x%+1)
            position%=x%+2
  end_while
end_if

Je regarde ce problème de EXIT_WHILE

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Le compilateur.   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 16:49

Bonjour.

Désolé Jack, mais mon 1er source provoque bien l'erreur signalée.
Je te fais remarquer que ce source fait partie intégrante de mon programme principal, qui comporte plus de 48.000 lignes.

Il est bien évident que s'il est testé indépendamment, comme tu le fais, aucune erreur ne se produit.
Revenir en haut Aller en bas
Froggy One

Froggy One


Nombre de messages : 598
Date d'inscription : 06/01/2012

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 17:07

Désolé, je viens polluer le post juste une fois, pour remercier Papydall de son code que j'ai compris, et de son jeu de mots que j'ai aussi compris !! mais je ne voudrais pas déborder le sujet...
lol! lol! lol!
Revenir en haut Aller en bas
http://gaeldwest.wordpress.com
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 17:10

Pedro Alvarez a écrit:
le source fait partie intégrante de mon programme principal, qui comporte plus de 46.000 lignes.
Il est bien évident que si tu le testes indépendamment, comme tu le fais, aucune erreur ne se produit.

Je sais bien, mais je n'ai pas d'autre moyen d'investigation...

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 17:14

@Marc37:
Effectivement, le source réduit à la seule ligne END provoque un plantage...
...quand on ne sauvegarde pas le source avant la compilation.

Je vais faire quelque chose quand un source n'a pas été sauvegardé avant la compilation (message de refus ou forçage de la sauvegarde).

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Pedro

Pedro


Nombre de messages : 1594
Date d'inscription : 19/01/2014

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Le compilateur.   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 31 Juil 2017 - 17:17

@Jack.

Que comptes-tu faire pour le problème des 'if' et 'end-if' qui provoquent des erreurs ?
Revenir en haut Aller en bas
Jicehel

Jicehel


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyMar 1 Aoû 2017 - 12:18

Bonjour,

Juste un petit commentaire pour dire que j'aime beaucoup ta façon de présenter les problèmes, et l'état d'avancement des corrections. C'est très clair et facile à suivre.
Bravo Jack pour ce changement de présentation / communication et bon courage pour la fin de tes investigations
Revenir en haut Aller en bas
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyJeu 3 Aoû 2017 - 12:25

Une nouvelle version est disponible ici :

http://panoramic-language.pagesperso-orange.fr/PANORAMIC_COMPILER_EDITOR.zip

C'est la version V 0.9 beta 6 du 3 aout 2017.

Elle corrige les bugs signalés:
N°6 : EXIT_WHILE
N°7 : boucle FOR avec DIM_LOCAL
N°8 : exécution d'un source sans sauvegarder
N° 10 : EXIT_FOR

Remarque sur le bug N°9 : la recherche des IF sans END_IF a été améliorée. Je considère pas toutefois ce bug comme complètement résolu.

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123
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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyJeu 3 Aoû 2017 - 18:53

J’ai téléchargé.
J’ai expérimenté
Je suis satisfait.

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Bravo11

Suggestion : il sera très utile, voire nécessaire d’améliorer l’affichage des erreurs, en donnant des infos explicites, genre numéro de ligne où l’erreur s’est produite.

L'erreur suivante m'a donné du fil à retordre avant de pouvoir localiser de quoi il s'agissait!

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Err11


Mon impression : cette version du compilateur m'a donné satisfaction.
Merci Jack pour tout ce que tu fais pour nous, les Panoramiciens.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyJeu 3 Aoû 2017 - 20:10

Je compile sans problème, cette fois-ci mais à la fermeture du compilateur (que je l'aie utilisé ou pas) j'ai systématiquement l'erreur suivante:
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Err110
suivie de ('Fermer le programme')
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Err210

Autre question, plus générale mais sans doute naïve, je m'imaginais qu'une version compilée avec le compilateur serait bien moins volumineuse qu'une version compilée avec l'éditeur (c'est à dire sans interpréteur embarqué pour le compilateur), or ce n'est pas le cas.
Mon dernier petit programme, source: 6,64 K, exécutable: 2,21 M
Dans ces conditions, quel est l'avantage de compiler avec le compilateur plutôt qu'avec l'éditeur, ce que je faisais jusqu'ici ?
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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyJeu 3 Aoû 2017 - 22:47

JL35 a écrit:
Autre question, plus générale mais sans doute naïve, je m'imaginais qu'une version compilée avec le compilateur serait bien moins volumineuse qu'une version compilée avec l'éditeur (c'est à dire sans interpréteur embarqué pour le compilateur), or ce n'est pas le cas.
Mon dernier petit programme, source: 6,64 K, exécutable: 2,21 M
Dans ces conditions, quel est l'avantage de compiler avec le compilateur plutôt qu'avec l'éditeur, ce que je faisais jusqu'ici ?

Considérons le code suivant (qui calcule 1000 décimales de PI)
Code:

rem ============================================================================
rem         calcul des 1000 premières décimales de PI
rem ============================================================================
Init()
Pi1000()
end
rem ============================================================================
SUB Init()
    dim t(202), nmax, b, d, p, q, r, n, m, i, tex$,aff$
    width 0,1000
    caption 0,"LES 1000 PREMIERES DECIMALES DE PI"
    alpha 10 : top 10,10 : left 10,10 : font_bold 10 : font_name 10,"arial"
    font_size 10,18 : caption 10,string$(30," ") + "LES 1000 PREMIERES DECIMALES DE PI"
    font_color 10,0,0,255
    alpha 20 : top 20,50 : left 20,10 : font_bold 20 : font_name 20,"arial"
    font_size 20,14 : font_color 20,150,100,50
END_SUB
rem ============================================================================
SUB Pi1000()
    nmax = 3340
    b = 100000
    for i = 1 to 201 : t(i) = 0 : next i : ' On initialise les calculs  
    T(0) = 2 * nmax     : ' t(0) = 2n, les autres tranches sont nulles
     d = 2 * nmax + 1   : ' le diviseur est 2n+1
    Divise()
    for n = nmax to 2 STEP -1  : ' Boucle de l'algorithme
        T(0) = T(0) + 2 : d = 2 * n - 1 : Divise()
        m = n - 1 : Multiplie()
    NEXT n
    T(0) = T(0) + 2
    Affiche()
END_SUB
rem ============================================================================
SUB Divise()
    FOR i = 0 TO 201
       q = INT(T(i)/d) : r = T(i) - d * q
       T(i) = q : T(i+1) = T(i+1) + b * r
    NEXT i
END_SUB
rem ============================================================================
SUB Multiplie()
    q = 0
    FOR i = 201 TO 1 STEP -1
        p = T(i) * m + q : q = INT(p/b) : T(i) = p - q * b
    NEXT i
    T(0) = T(0) * m + q
END_SUB
rem ============================================================================
SUB Affiche()
    aff$ = str$(t(0)) + "." + chr$(13)
    for i = 1 to 200
        tex$ = str$(t(i))
        WHILE LEN(tex$) < 5   : ' si les tranches t(i) comporte des zéros au début
            tex$ = "0" + tex$ : ' les compléter à 5 chiffres en ajoutant les zéros nécessaires
        END_WHILE
        tex$ = " " + tex$     : ' espace de séparation des tranches de 5 chiffres
        aff$ = aff$ + tex$    : ' Toutes les tranches sont stockées dans la variable d'affichage
        IF MOD(i,16) = 0 THEN aff$ = aff$ + chr$(13) : ' Chaque ligne comporte 16 tranches
    NEXT i
    caption 20, aff$
END_SUB
rem ===========================================================================

Compilé avec le compilateur et lancé, le résultat est quasi instantané !
Avec l’interpréteur, ça frôlerait  le suicide !
Il faudrait plusieurs minutes (je dis bien  minutes et non secondes) pour voir le résultat.
Si tu lances le code sous l’interpréteur, tu as le temps de te rendre au super marché pour faire tes provisions !

Quant au poids de l’exécutable (2261 Ko dans ce cas), ce n’est plus un problème, même s’il se chiffre en Mo.
Les PC actuels ont suffisamment de RAM et c’est la vitesse du traitement qui doit être privilégiée.

C'est ainsi que je voie les choses.
Le compilateur est vraiment une (r)évolution notable de Panoramic.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyJeu 3 Aoû 2017 - 23:29

Merci ami papydall pour tes précisions.
Effectivement il y a le facteur vitesse qui est souvent vital, et dans le cas du compilateur il n'y a pas photo par rapport à l'interpréteur.
Je m'incline devant l'argument.
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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyVen 4 Aoû 2017 - 1:31

Pour votre plaisir

Code:

rem ============================================================================
rem                      Tracé récursif d’arbres
rem        Exploitant les Turtle_Routines, Procédures de la Tortue
rem               Programme pour tester le Compilateur
rem                    Par Papydall 03 / 08 / 2017
rem ============================================================================
rem Le programme utilise des routines pour piloter une tortue, un peu comme
rem la fameuse Turtle du langage LOGO (Voir à partir de la ligne 134
rem ============================================================================

 Init_Turtle()

 Init_prog()
 La_Maison(0,300,1)  : La_Maison(300,300,1) : La_Maison(1000,200,1/2)
 La_Maison(1200,200,1/4)
 
 Bel_Arbre(0,-100,450)
 Arbre_Simple(-300,-200,150,45)
 Arbre_Penche(300,-400,150,50)
 
 Bel_Arbre(-500,-200,250)
 Arbre_Simple(200,-200,50,45)

end
rem ============================================================================
SUB Init_prog()
    dim_local x,y,p,towpi
    p = pi/180 : towpi = 2*pi
    2d_poly_from 0,height(0)/3
    for x = 0 to 2*pi step p
        2d_poly_to x*width(0)/towpi,height(0)/4+50*sin(x)
    next x
    2d_flood 10,10 , 50,100,150 : 2d_flood 10,height(0)/2,100,150,50
END_SUB
rem ============================================================================
' Arbre droit
SUB Arbre_Simple(x,y,l,a)
    Pen_Up(): Fixe_XY(x,y) : Back(160) : Pen_Down()
    Tree_Simple(l,a,l)
END_SUB
' ------------------------------------------------------------------------------
SUB Tree_Simple(length,angle,f)
   if length < 5
        ' ne rien faire
   else
      2d_pen_width length/9  : ' reduction
      2d_pen_color 200,255*(f-length)/(f),50 : ' couleur dépend de la longueur
      Forward(length) : Turn_Left(angle/2)
      Tree_Simple(length*0.75,angle,f) : Turn_Right(angle) : ' longueur branche 3/4
      Tree_Simple(length*0.75,angle,f) : Turn_Left(angle/2)
      Pen_Up() : Back(length) : Pen_Down()
   end_if
END_SUB
rem ============================================================================
' Procédure récursive de tracé d'un bel arbre
SUB Bel_Arbre(x,y,taille)
    Pen_Up(): Fixe_XY(x,y) : Back(160) : Pen_Down()
    Arbre(taille,taille)
END_SUB
' ------------------------------------------------------------------------------
SUB Arbre(taille,f)
    if taille < 5
       forward(taille) : Back(taille)
    else
       2d_pen_width 8
       caption 0,str$(255*(f-taille)/(f))
       2d_pen_color 20,255,50
       forward(taille/3) : turn_left(30)  : Arbre(taille*2/3) : turn_right(30)
       forward(taille/6) : turn_right(25) : Arbre(taille/2)   : turn_left(25)
       forward(taille/3) : turn_right(25) : Arbre(taille/2)   : turn_left(25)
       forward(taille/6) : forward(0-taille)
    end_if
END_SUB
rem ============================================================================
' Arbre penché vers la droite
SUB Arbre_Penche(x,y,l,a)
    Pen_Up(): Fixe_XY(x,y) : Turn_Right(5) : Pen_Down()
    Tree_Penche(l,a,l)
END_SUB
' ------------------------------------------------------------------------------
SUB Tree_Penche(length,angle,f)
    if length < 5
        ' ne rien faire
    else
      2d_pen_width length/9
      2d_pen_color 255,255*(f-length)/(f),0
      Forward(length) : Turn_Left(angle/2)
      Tree_Penche(length*0.65,angle,f) : Turn_Right(angle)
      Tree_Penche(length*0.85,angle,f) : Turn_Left(angle/2)
      Pen_Up() : Back(length) : Pen_Down()
    end_if
END_SUB
rem ============================================================================
' x,y : Coordonnées du début du toit
' e   : Facteur d'aggrandissement / rapetissement
SUB La_Maison(x,y,e)
    2d_pen_color 0,0,255      : 2d_poly_from x+80*e,y+20*e
    2d_poly_to x+220*e,y+20*e : 2d_poly_to x+280*e,y+80*e
    2d_poly_to x+140*e,y+80*e : 2d_poly_to x+80*e,y+20*e
    2d_flood x+220*e,y+20*e+5,0,0,255
    2d_pen_color 100,50,20  : 2d_fill_color 100,50,20
    2d_rectangle x+140*e,y+80*e,x+270*e,y+170*e

    2d_pen_color 50,100,50    : 2d_poly_from x+87*e,y+27*e
    2d_poly_to x+140*e,y+80*e : 2d_poly_to x+140*e,y+170*e
    2d_poly_to x+30*e,y+170*e : 2d_poly_to x+30*e,y+80*e
    2d_poly_to x+87*e,y+27*e  : 2d_flood x+30*e+10,y+80*e, 200,200,50

    2d_pen_color 0,0,0        : 2d_poly_from x+80*e,y+20*e
    2d_poly_to x+87*e,y+27*e  : 2d_poly_to x+30*e,y+80*e
    2d_poly_to x+20*e,y+80*e  : 2d_poly_to x+80*e,y+20*e
    2d_flood x+80*e,y+20*e+2,0,0,0
    2d_fill_color 0,0,0
    2d_rectangle x+20*e,y+170*e,x+280*e,y+180*e : 2d_rectangle x+170*e,y+90*e,x+240*e,y+155*e

    2d_fill_color 255,255,0
    2d_rectangle x+175*e,y+95*e,x+202*e,y+120*e  : 2d_rectangle x+208*e,y+95*e,x+235*e,y+120*e
    2d_rectangle x+175*e,y+125*e,x+202*e,y+150*e : 2d_rectangle x+208*e,y+125*e,x+235*e,y+150*e

    2d_fill_color 0,200,200 : 2d_rectangle x+60*e,y+80*e,x+110*e,y+170*e
    2d_fill_color 0,0,0     : 2d_rectangle x+195*e,y+15*e,x+205*e,y+30*e
    2d_poly_from x+200*e,y+10*e
    2d_poly_to x+210*e,y+15*e : 2d_poly_to x+190*e,y+15*e : 2d_poly_to x+200*e,y+10*e
    2d_flood x+200*e,y+10*e+2,0,0,0
    2d_fill_color 255,255,0 : 2d_circle x+100*e,y+120*e,5*e

    2d_fill_color 255,0,0
END_SUB
rem ============================================================================

rem ============================================================================
rem ############################################################################
rem ============================================================================
rem               LES PROCEDURES DE LA TORTUE  : Turtle_Routines
rem ============================================================================
rem ############################################################################
rem Les variables globales Turtle_XXX sont prédéfinies pour les routines TORTUE.
rem Votre programme ne doit ni les redéfinir ni les modifier.
rem Ce sont :
rem Turtle_Xorigine,Turtle_Yorigine : coordonnées de l’origine (le centre de l’écran)
rem Turtle_X,Turtle_Y : coordonnées relatives de la tortue (par rapport à l’origine)
rem Turtle_Cap : direction initiale du déplacement de la tortue : vers le haut
rem Turtle_PI  : la constante Pi
rem Turtle_rad : multiplicateur pour transformer les degrés en radians
rem ============================================================================
rem REMARQUE IMPORTANTE :
rem L’origine des axes est le centre de la fenêtre
rem Le sens positif sur l’axe des X est dirigé vers la droite (négatif vers la gauche)
rem Le sens positif sur l’axe des Y est dirigé vers le haut (négatif vers le bas)
rem ============================================================================
' Initialisation de la tortue graphique
' La tortue se trouve au centre de la fenêtre et est dirigée vers le Nord
SUB Init_Turtle()
    dim Turtle_Xorigine,Turtle_Yorigine :' coordonnées de l'origine (le centre de l'écran)
    dim Turtle_X,Turtle_Y : ' coordonnées relatives de la tortue (par rapport à l'origine)
    dim Turtle_Cap        : ' direction initiale du déplacement de la tortue vers le haut
    dim New_Turtle_Cap    : ' Nouveau cap de la tortue
    dim Turtle_PI         : ' la constante Pi
    dim Turtle_rad        : ' multiplicateur pour transformer les degrés en radians
    dim Turtle_R, Turtle_G, Turtle_B    : ' RGB du tracé
    dim Turtle_FR, Turtle_FG, Turtle_FB : ' RGB du fond
    dim Turtle_Pen_Up_Down              : ' Etat du crayon (0 = baissé) ; (1 = levé)
    full_space 0
    Turtle_Pen_Up_Down = 0              : ' crayon baissé au départ
    Turtle_Xorigine = width(0)/2        : ' L'origine de ...
    Turtle_Yorigine = height(0)/2-20    : ' ... l'écran graphique

    Turtle_PI  = pi            : ' pi
    Turtle_Cap = Turtle_PI/2   : ' La tortue est dirigée vers le haut
    Turtle_rad = Turtle_PI/180 : ' Facteur multiplicateur pour les angles (degrés --> radians)

    Origine()
END_SUB
rem ============================================================================
' Pour débuter un nouveau dessin
' Effacer l'écran et remettre la tortue à sa place
' (au centre de la fenêtre et dirigée vers le nord)
SUB Nouveau()
    cls : Origine()
END_SUB
rem ============================================================================
' Ramener la tortue à l'origine (c-à-d au centre de la fenêtre)
SUB Origine()
    Turtle_X = Turtle_Xorigine : Turtle_Y = Turtle_Yorigine
    New_Turtle_Cap = Turtle_Cap  : 2d_poly_from Turtle_X,Turtle_Y
END_SUB
rem ============================================================================
' Avancer de pas pixels
' Si le crayon est baissé, la tortue trace un trait avec la couleur en cours
' Si le crayon est levé, la tortue se déplace sans laisser de trace
SUB Forward(pas)
    dim_local x1,y1,x2,y2,a
    x1 = Turtle_X : y1 = Turtle_Y : a  = New_Turtle_Cap
    x2 = Turtle_X + pas * cos(a)  : y2 = Turtle_Y - pas * sin(a)

    if Turtle_Pen_Up_Down = 0 : ' crayon baissé ?
       2d_poly_to x2,y2       : ' on trace le trait avec la couleur en cours
    else : ' crayon levé
       2d_poly_from x2,y2     : ' on se déplace sans trace
    end_if
    Turtle_X = x2 : Turtle_Y = y2
END_SUB
rem ============================================================================
' Réculer de pas pixels
' Si le crayon est baissé, la tortue trace un trait avec la couleur en cours
' Si le crayon est levé, la tortue se déplace sans laisser de trace
SUB Back(pas)
    Forward(0-pas)
END_SUB
rem ============================================================================
' Tourner à gauche (sens trigonométrique) de a degrés
SUB Turn_Left(a)
    New_Turtle_Cap = New_Turtle_Cap + a * Turtle_rad
END_SUB
rem ============================================================================
' Tourner à droite (sens horaire) de a degrés
SUB Turn_Right(a)
    New_Turtle_Cap = New_Turtle_Cap - a * Turtle_rad
END_SUB
rem ============================================================================
' Fixer le Cap de la tortue
' Le Cap est la direction du déplacement de la tortue :
' 000 c'est vers la droite (EST)
' 090 c'est vers le haut (NORD)
' 180 c'est vers la gauche (OUEST)
' 270 c'est vers le bas (SUD)
' 360 c'est identique à 000
SUB Fixe_Cap(a)
    New_Turtle_Cap = a * Turtle_rad
END_SUB
rem ============================================================================
' Fixer la position X de la tortue par rapport à l'origine
' Déplacement horizontal
SUB FixeX(n)
    Turtle_X = Turtle_Xorigine + n : 2d_poly_from Turtle_X,Turtle_Y
END_SUB
rem ============================================================================
' Fixer la position Y de la tortue par rapport à l'origine
' Déplacement vertical
rem ############################################################################
rem   REMARQUE IMPORTANTE : le sens posif pour les Y est le sens vers le haut
rem ############################################################################
SUB FixeY(n)
    Turtle_Y = Turtle_Yorigine - n : 2d_poly_from Turtle_X,Turtle_Y
END_SUB
rem ============================================================================
' Fixer la position de la tortue
' Déplacer la tortue au point (X,Y) par rapport au centre de la
' fenêtre qui est l'origine.
' X et/ou Y peuvent être positives, négatives ou nulles
SUB Fixe_XY(x,y)
    Turtle_X = Turtle_Xorigine + x : Turtle_Y = Turtle_Yorigine - y
    2d_poly_from Turtle_X,Turtle_Y
END_SUB
rem ============================================================================
' Tracer l'axe des X
SUB AxeX()
    2d_line 0,Turtle_Yorigine,2*Turtle_Xorigine,Turtle_Yorigine
END_SUB
rem ============================================================================
' Tracer l'axe des Y
SUB AxeY()
    2d_line Turtle_Xorigine,0,Turtle_Xorigine,2*Turtle_Yorigine
END_SUB
rem ============================================================================
' Tracer les 2 axes X et Y
SUB Axe_XY()
    AxeX() : AxeY()
END_SUB
rem ============================================================================
' On modifie l'état du crayon
' Lever le stylo : le déplacement de la tortue ne laisse pas de trace
SUB Pen_Up()
    Turtle_Pen_Up_Down = 1
END_SUB
rem ============================================================================
' On modifie l'état du crayon
' Baisser le stylo : le déplacement de la tortue laisse une trace
SUB Pen_Down()
    Turtle_Pen_Up_Down = 0
END_SUB
rem ============================================================================
' Définition des 17 couleurs par leur nom
SUB Define_Color(couleur$)
    dim_local r,g,b,c$   : c$ = upper$(couleur$)
    if c$ = "NOIR"       : r = 000 : g = 000 : b = 000 : end_if
    if c$ = "ROUGE"      : r = 255 : g = 000 : b = 000 : end_if
    if c$ = "VERT"       : r = 000 : g = 255 : b = 000 : end_if
    if c$ = "JAUNE"      : r = 255 : g = 255 : b = 000 : end_if
    if c$ = "BLEU"       : r = 000 : g = 000 : b = 255 : end_if
    if c$ = "MAGENTA"    : r = 255 : g = 000 : b = 255 : end_if
    if c$ = "CYAN"       : r = 000 : g = 255 : b = 255 : end_if
    if c$ = "BLANC"      : r = 255 : g = 255 : b = 255 : end_if
    if c$ = "GRIS"       : r = 128 : g = 128 : b = 128 : end_if
    if c$ = "GRISCLAIR"  : r = 192 : g = 192 : b = 192 : end_if
    if c$ = "ROUGEFONCE" : r = 128 : g = 000 : b = 000 : end_if
    if c$ = "VERTFONCE"  : r = 000 : g = 128 : b = 000 : end_if
    if c$ = "BLEUFONCE"  : r = 000 : g = 000 : b = 128 : end_if
    if c$ = "ORANGE"     : r = 255 : g = 200 : b = 000 : end_if
    if c$ = "ROSE"       : r = 255 : g = 175 : b = 175 : end_if
    if c$ = "VIOLET"     : r = 128 : g = 000 : b = 255 : end_if
    if c$ = "MARRON"     : r = 153 : g = 102 : b = 000 : end_if

    Turtle_R = r :  Turtle_G = g :Turtle_B = b
END_SUB
rem ============================================================================
' Fixer la couleur du tracé
SUB Fixe_Pen_Color(couleur$)
    Define_Color(couleur$) : 2d_pen_color Turtle_R, Turtle_G, Turtle_B
END_SUB
rem ============================================================================
' Fixer la couleur du fond
SUB Fixe_Fond_Color(couleur$)
    Define_Color(couleur$)
    Turtle_FR =  Turtle_R :  Turtle_FG = Turtle_G :  Turtle_FB = Turtle_B
    color 0, Turtle_FR, Turtle_FG, Turtle_FB
END_SUB
rem ============================================================================
' La tortue efface tous les traits qu’elle rencontre
SUB Pen_Erase()
    2d_pen_color Turtle_FR, Turtle_FG, Turtle_FB
END_SUB
rem ============================================================================
' Inverser la couleur du crayon
SUB Pen_Invert()
    2d_pen_color 255 - Turtle_R, 255 - Turtle_G, 255 - Turtle_B
END_SUB
rem ============================================================================
SUB Pen_Paint(couleur$)
    Define_Color(couleur$)
    Turtle_FR =  Turtle_R :  Turtle_FG = Turtle_G :  Turtle_FB = Turtle_B
    2d_flood Turtle_X, Turtle_Y, Turtle_FR, Turtle_FG, Turtle_FB
END_SUB
rem ============================================================================
rem ############################################################################
rem ============================================================================


Enregistrez et compilez
Quant au résultat, je vous laisse le découvrir.

N'essayez surtout pas avec l'interpréteur : ça ne fonctionne pas !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyDim 6 Aoû 2017 - 11:30

J'ai retiré la dernière version (beta 6) du téléchargement car il y a un problème sur les chaînes de caractères.

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123
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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyDim 6 Aoû 2017 - 11:55

N’utilisant pas souvent les chaines de caractères, je me régalais avec cette version du compilateur.
Mais bon, j’attendrais la toute nouvelle.

Quelqu'un m'a dit : "il faut prendre son mal en patience." Crying or Very sad
Réflexion faite, je réponds : et si l'on prenait notre bien en urgence ?"  

Bon, je sors ! Embarassed
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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: re   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyDim 6 Aoû 2017 - 12:34

@ Papydall,

Pourquoi pas ?
lol!
Revenir en haut Aller en bas
Jack
Admin
Jack


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

COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 EmptyLun 7 Aoû 2017 - 22:50

Le problème général sur les chaines de caractères est résolu. Demain, je génère une nouvelle version.
Après 2 jours de recherche intensive et peu de sommeil, maintenant : Sleep Sleep Sleep

_________________
COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Webdav username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Contenu sponsorisé





COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty
MessageSujet: Re: COMPILATEUR V 0.9 beta 10 du 29 aout 2017   COMPILATEUR V 0.9 beta 10 du 29 aout 2017 - Page 2 Empty

Revenir en haut Aller en bas
 
COMPILATEUR V 0.9 beta 10 du 29 aout 2017
Revenir en haut 
Page 2 sur 5Aller à la page : Précédent  1, 2, 3, 4, 5  Suivant
 Sujets similaires
-
» COMPILATEUR version beta 18 du 09/05/2020
» COMPILATEUR version Beta 11 du 22/06/2019
» COMPILATEUR version beta 12 du 18/07/2019
» COMPILATEUR version beta 19 du 9 février 2021
» COMPILATEUR version beta 14 du 19 septembre 2019

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC Le compilateur :: Le Compilateur-
Sauter vers: