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
» 3D_LINE How to ?
par papydall Aujourd'hui à 6:51

» mise a jour calculatrice
par joeeee2017 Hier à 23:00

» supprimé
par joeeee2017 Dim 15 Oct 2017 - 20:02

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» Convertisseur de base 10 de 2 à 36
par gigi75 Sam 14 Oct 2017 - 21:54

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» supprimé
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

» Mise à jour PANOMAND
par jean_debord Mar 26 Sep 2017 - 11:33

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Compilateur : version de travail disponible

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2, 3, 4  Suivant
AuteurMessage
Jack
Admin
avatar

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

MessageSujet: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 0:17

Une version de travail du compilateur est disponible sur mon Webdav.
C'est une version en cours de développement (alpha) qui donne une idée de ce que sera le compilateur.

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
mindstorm

avatar

Nombre de messages : 534
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 0:26

merci pour tes developpement Jack
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

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

MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 1:05

Merci Jack, je ne testerais pas beaucoup mais je prends la version et si je teste des codes postés sur le forum, je signalerais les problèmes bien entendu Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 1:25

!!! C’EST LE DEBUT D'UNE VRAIE (R)EVOLUTION DE PANORAMIC !!! BRAVO JACK

J’ai  fais quelques tests avec le compilateur pour des codes  très gourmands en calculs : j’apprécie la vitesse d’exécution qui est incomparable avec l’interpréteur.

Pour ceux qui veulent comparer l’interpréteur et le compilateur, je vous mets ce code : testez et comparez.

Spoiler:
 

Et ce code
Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 11:47

Merci Jack pour ce compilateur qui était très attendu !

Je viens de tester les 2 exemples de Papydall ; ça marche très bien Smile

Au cours de la compilation, une installation temporaire de FreeBasic est créée puis effacée ! Ne serait-il pas possible d'utiliser une installation préexistante ?

D'autre part, comment accéder au code FreeBasic généré ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 13:26

J'ai pu récupérer le code FreeBasic généré par le programme Julia de Papydall :
Code:

#include"MemoryModule.bi"
#include"incfile.bi"
IncFile(DLLdata,"panoramic.dll")
#lang "fblite"
option gosub
#include once"windows.bi"
dim shared _handl as HWND
dim shared _library as HMEMORYMODULE
_library = MemoryLoadLibrary(DLLdata)
dim shared pc_init as sub stdcall _
(byval operand1 as handle)
pc_init=MemoryGetProcAddress(_library,"pc_init")
dim shared pc_close as sub
pc_close=MemoryGetProcAddress(_library,"pc_close")
DIM SHARED V_X0 AS DOUBLE
DIM SHARED V_Y0 AS DOUBLE
DIM SHARED V_NX AS DOUBLE
DIM SHARED V_NY AS DOUBLE
DIM SHARED V_X AS DOUBLE
DIM SHARED V_Y AS DOUBLE
DIM SHARED V_N AS DOUBLE
DIM SHARED V_XN AS DOUBLE
DIM SHARED V_YN AS DOUBLE
DIM SHARED V_MODUL AS DOUBLE
DIM SHARED V_DX AS DOUBLE
DIM SHARED V_DY AS DOUBLE
DIM SHARED V_L AS DOUBLE
DIM SHARED V_H AS DOUBLE
DIM SHARED V_S AS DOUBLE
DIM SHARED V_TITRE AS STRING
DIM SHARED V_XD AS DOUBLE
DIM SHARED V_YD AS DOUBLE
DIM SHARED V_XA AS DOUBLE
DIM SHARED V_YA AS DOUBLE
dim shared pf_scancode as function stdcall as integer
pf_scancode=MemoryGetProcAddress(_library,"pf_scancode")
dim shared pc_2d_fill_color as sub stdcall _
(byval P1 as integer,_
byval P2 as integer,_
byval P3 as integer)
pc_2d_fill_color=MemoryGetProcAddress(_library,"pc_2d_fill_color")
dim shared pc_2d_pen_color as sub stdcall _
(byval P1 as integer,_
byval P2 as integer,_
byval P3 as integer)
pc_2d_pen_color=MemoryGetProcAddress(_library,"pc_2d_pen_color")
dim shared pc_2d_point as sub stdcall _
(byval P1 as integer,_
byval P2 as integer)
pc_2d_point=MemoryGetProcAddress(_library,"pc_2d_point")
dim shared pc_2d_rectangle as sub stdcall _
(byval P1 as integer,_
byval P2 as integer,_
byval P3 as integer,_
byval P4 as integer)
pc_2d_rectangle=MemoryGetProcAddress(_library,"pc_2d_rectangle")
dim shared pc_caption as sub stdcall _
(byval P1 as integer,_
byval P2 as string)
pc_caption=MemoryGetProcAddress(_library,"pc_caption")
dim shared pc_height as sub stdcall _
(byval P1 as integer,_
byval P2 as integer)
pc_height=MemoryGetProcAddress(_library,"pc_height")
dim shared pc_print_string as sub stdcall _
(byval P1 as string)
pc_print_string=MemoryGetProcAddress(_library,"pc_print_string")
dim shared pc_width as sub stdcall _
(byval P1 as integer,_
byval P2 as integer)
pc_width=MemoryGetProcAddress(_library,"pc_width")
declare function WinMain _
(byval _hInstance as HINSTANCE,_
byval _hPrevInstance as HINSTANCE,_
byval _szCmdLine as string,_
byval _iCmdShow as integer)as integer
end WinMain(GetModuleHandle(null),null,Command(),SW_NORMAL)
function WndProc _
(byval _hWnd as HWND,_
byval _wMsg as UINT,_
byval _wParam as WPARAM,_
byval _lParam as LPARAM)as LRESULT
function=0
select case(_wMsg)
case WM_CREATE
exit function
case WM_DESTROY
pc_close()
sleep 200
MemoryFreeLibrary(_library)
PostQuitMessage(0)
exit function
end select
function=DefWindowProc(_hWnd,_wMsg,_wParam,_lParam)
end function
function WinMain (byval _hInstance as HINSTANCE,_
byval _hPrevInstance as HINSTANCE,_
byval _szCmdLine as string,_
byval _iCmdShow as integer)as integer
dim _wMsg as MSG
dim _wcls as WNDCLASS
dim _hWnd as HWND
function=0
with _wcls
.style=CS_HREDRAW or CS_VREDRAW
.lpfnWndProc=@WndProc
.cbClsExtra=0
.cbWndExtra=0
.hInstance=_hInstance
.hIcon=LoadIcon(NULL,IDI_APPLICATION)
.hCursor=LoadCursor(NULL,IDC_ARROW)
.hbrBackground=GetStockObject(WHITE_BRUSH)
.lpszMenuName=NULL
.lpszClassName=@"HelloWin"
end with
if(RegisterClass(@_wcls)=FALSE)then
MessageBox(null,"Failed to register _wcls","Error",MB_ICONERROR)
exit function
end if
_hWnd = CreateWindowEx(0,_
@"HelloWin",_
"PANORAMIC",_
WS_OVERLAPPEDWINDOW,_
10,_
10,_
200,_
100,_
NULL,_
NULL,_
_hInstance,_
NULL)
_handl=_hWnd
UpdateWindow(_hWnd)
pc_init(_hWnd)
sleep 100
'-------------------------------------------------------------------------------
' SOURCE
'-------------------------------------------------------------------------------
V_L=640
V_H=480
V_S=90
V_TITRE="l'ensemble de JULIA"
pc_width(0,V_L)
pc_height(0,V_H)
pc_caption(0,"Papydall vous présente        "+V_TITRE)
V_XD=V_S
V_YD=V_S
V_XA=V_L-V_S
V_YA=V_H-V_S
pc_2d_pen_color(255,0,0)
pc_2d_fill_color(255,255,0)
pc_2d_rectangle(V_XD,V_YD,V_XA,V_YA)
pc_print_string(" VEUILLEZ PATIENTER ... <ESC> pour arrêter  ")
V_X0=.3
V_Y0=-.5
FOR V_NX=V_XD+V_S TO V_XA-V_S
FOR V_NY=V_YD TO V_YA
V_X=(V_NX-V_L/2)/V_S
V_Y=(V_H/2-V_NY)/V_S
FOR V_N=1 TO 25
pc_2d_pen_color(150+(450-V_NX)/3,V_NY/2,V_N*10)
V_XN=V_X*V_X-V_Y*V_Y+V_X0
V_YN=2*V_X*V_Y+V_Y0
V_DX=V_XN-V_X
V_DY=V_YN-V_Y
V_MODUL=V_XN*V_XN+V_YN*V_YN
V_X=V_XN
V_Y=V_YN
IF V_MODUL>4 THEN
V_N=25
END IF
NEXT V_N
IF V_MODUL<4 THEN
pc_2d_point(V_NX,V_NY)
END IF
IF PF_SCANCODE()=27 THEN
pc_print_string("programme arrête!")
goto _end
END IF
NEXT V_NY
NEXT V_NX
pc_print_string("  TERMINE ")
_end:
while(GetMessage(@_wMsg,NULL,0,0)<>FALSE)
TranslateMessage(@_wMsg)
DispatchMessage(@_wMsg)
wend
function=_wMsg.wParam
end function
Au cours de la compilation, le programme original est renommé en .pan et le fichier .bas devient le code FreeBasic !

Sacré boulot, de la part de Jack ! cheers 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
pan59

avatar

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

MessageSujet: Compilateur   Mar 26 Nov 2013 - 15:30

Bonjour.

Chez moi, ça ne fonctionne pas du tout.

J'obtiens le message suivant, dans une fenêtre DOS:

fbc.exe monlogo.rc -s gui "mandelbrot.bas"  1>error.txt

Puis un message:

Compilation is OK
Source file: mandelbrot.bas


Je clique sur OK, et rien ne se passe.
Aucune fenêtre ne s'affiche !

Merci de votre aide.

Ah, autant pour moi.

Je viens de m'apercevoir qu'un fichier '.exe' était créé, du même nom que le fichier '.bas', et qu'il fallait ensuite lancer cet exécutable.

Donc, tout est OK, et bien plus rapide.

Test avec mandelbrot.bas:

Version interprétée: 211 sec
Version compilée: 2 sec !!

L'exécution est donc 105 fois plus rapide !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Francis-mr



Nombre de messages : 160
Age : 65
Localisation : Corrèze
Date d'inscription : 26/11/2012

MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 16:41

Bravo cheers et merci bounce  Jack pour ce compilateur (promesse tenue), même si je dois reprendre mes programmes car j'ai souvent utilisé des Labels.
La vitesse d'exécution va changer la donne.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://cfmr.e-monsite.com
Jicehel

avatar

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

MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 16:43

Belle performance Smile

J'imagine déjà l'application sur le calcul des fractales ... Après au niveau de la jouabilité des jeux, c'est pareil, ça devrait vraiment être appréciable. Il faudra peut-être même ralentir certains jeux pour qu'ils restent jouables selon la façon dont ils sont codés...

Revenir en haut Aller en bas
Voir le profil de l'utilisateur
pan59

avatar

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

MessageSujet: Compilateur.   Mar 26 Nov 2013 - 16:59

Bonjour.

Je viens de tester les labels et subs avec le nouveau compilateur.
Contrairement à la doc, tout fonctionne à merveille.

Pouvez-vous me confirmer ?

Code:
'              3D_Mendelbrot.bas
' Interpréteur: 3m31sec = 211 sec
' Compilateur: 2 sec

dim x,y,z,u,v,w,a,b,l,sa,sb,xmax,xmin,ymax,ymin,fin,seuil
dim c$,d$

label test

button 1
caption 1,"OK"
on_click 1,test

c$=time$

caption 0, " <CLICK> pour arrêter"
width 0,700 : height 0,500
xmax = 1.8 : xmin = -2.5 : ymax = 1.8 : ymin = -1.8 : fin = 65 : seuil = 4
2d_fill_color 0,0,255 : 2d_rectangle 0,0,1000,700
for v = 180 to 380
  for u = 380-v to 820-v
    y =(ymax-ymin)*(380-v)/200+ymin
    x =(xmax-xmin)*(u+v-380)/440+xmin
    z = 0 : a = 0 : b = 0 : l = 0
    while (l <= seuil)and(z <= fin)
      z = z + 1 : sa = a : sb = b : a = sa*sa-sb*sb+x : b = 2*sa*sb+y : l = a*a+b*b
    end_while
    w = z*3
    2d_pen_color 255,0,0    : 2d_line u,v,u,v-w
    2d_pen_color 0,0,0      : 2d_line u-2,v,u-2,v-w
    2d_pen_color 255,255,255 : 2d_line u-2,v-w,u,v-w
    ' if scancode <> 0 then terminate
  next u
next v
d$=time$
caption 0,"Début: "+c$+",Fin: "+d$

afficher()

end

test:
  message "OK"
return

sub afficher()
    message "OK"
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 17:43

Bonjour,
Je viens de tester, et cela marche. Maintenant peut-être y -a-t'il des choses qui ne marche pas.
Faut voir avec les variables locales.

Par contre: version Papydall sur mon ordi: 30 secondes. Ta version: 10 secondes. Je ne sais pas si les codes sont repris. Je ne fais pas d'analyse maintenant.
Revenir en haut Aller en bas
pan59

avatar

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

MessageSujet: Compilateur.   Mar 26 Nov 2013 - 18:08

Bonjour.

L'un d'entre vous pourrait-il me dire pourquoi le code suivant ne se compile pas !!

Merci.


Code:
dim boite_dialogue_visible%, false%, form7_creee%, hauteur_boite%, hauteur_ecran%, hnd%, kk%, largeur_boite%, largeur_ecran%, res%, true%, zz99%
false%=0
true%=1
dim sens_traduction$(15)

sens_traduction$(1)="français -> espagnol"
sens_traduction$(2)="espagnol -> français"
sens_traduction$(3)="français -> allemand"
sens_traduction$(4)="allemand -> français"
sens_traduction$(5)="français -> polonais"
sens_traduction$(6)="polonais -> français"
sens_traduction$(7)="français -> anglais"
sens_traduction$(8)="anglais -> français"
sens_traduction$(9)="français -> italien"
sens_traduction$(10)="italien -> français"
sens_traduction$(11)="français -> néerlandais"
sens_traduction$(12)="néerlandais -> français"
sens_traduction$(13)="français -> portugais"
sens_traduction$(14)="portugais -> français"

label valider_dialogue7, valider_sens_traduction

dll_on "kgf.dll"

' Préchargement des drapeaux.
for kk%=1 to 7
    res%=kk%+470
    picture res%
    left res%,-300
    width res%,100
    height res%,70
    stretch_on res%

    ' file_load res%,"images\"+trim$(mid$("espagne        allemagne      pologne        grande_bretagne italie          pays_bas        portugal      ",kk%*16-15,15))+"2.bmp"
next kk%

creer_dialogue7()

dll_off

end

sub creer_dialogue7()

    if form7_creee%=true%
      show 7
          else
      form 7
    end_if

    largeur_ecran%=screen_x
    hauteur_ecran%=screen_y

    largeur_boite%=590
    hauteur_boite%=750

    boite_dialogue_visible%=true%

    ' Cacher les boutons de réduction, agrandissement et fermeture.
    hnd% = handle(7)
    res% = DLL_call2("SetMinimizeMaximize",hnd%,0)
    res% = DLL_call2("SetCloseBox",hnd%,0)

    left 7,(largeur_ecran%-largeur_boite%)/2
    top 7,(hauteur_ecran%-hauteur_boite%)/2
    width 7,largeur_boite%
    height 7,hauteur_boite%

    caption 7,"Choix du sens de traduction."

    for kk%=1 to 14
        res%=kk%+450

        if form7_creee%=false% then option res%
        parent res%,7
        mark_off res%
        caption res%,sens_traduction$(kk%)
        font_size res%,12
        font_bold res%

        if mod(kk%,2)=1
          zz99%=0
          font_color res%,255,0,200
          left res%,20
              else
          zz99%=-45
          font_color res%,45,0,255
          left res%,360
        end_if

        top res%,kk%*45+zz99%
        width res%,200
        height res%,20

        on_click res%,valider_sens_traduction
    next kk%

    if form7_creee%=false%
      for kk%=1 to 7
          res%=kk%+470
          parent res%,7
          left res%,largeur_boite%/2-50
          top res%,kk%*90-70
          width res%,100
          height res%,70
      next kk%

      creer_bouton(478,7,"OK",largeur_boite%/2-50,hauteur_boite%-80,100,30)
      font_size 478,12
      font_bold 478
    end_if

    on_click 478,valider_dialogue7

    form7_creee%=true%

end_sub

valider_sens_traduction:
  ' N° du dernier objet cliqué.
  sens_traduction_texte$=caption$(number_click)
return

valider_dialogue7:
  boite_dialogue_visible%=false%
  hide 7
return

sub creer_bouton(param1%, param2%, param3$, param4%, param5%, param6%, param7%)
    button param1%
    if param2%>0 then parent param1%,param2%
    caption param1%,param3$
    left param1%,param4%
    top param1%,param5%
    width param1%,param6%
    height param1%,param7%
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Invité
Invité



MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 19:44

Je vois la ligne:
Citation :
sub creer_bouton(param1%, param2%, param3$, param4%, param5%, param6%, param7%)
Je ne pense pas que les variables locales soient codées
D'ailleurs il est dit que:
Jack a écrit:
SUB / DIM_LOCAL / END_SUB
ne sont pas codées.
Revenir en haut Aller en bas
papydall

avatar

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

MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 20:34

Salut

Un autre code à essayer  (interpréteur  d’abord puis compilateur) pour apprécier la vitesse !

Spoiler:
 

Et un de plus
Spoiler:
 
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
mindstorm

avatar

Nombre de messages : 534
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: Compilateur : version de travail disponible   Mar 26 Nov 2013 - 22:56

je viens de tester
c'est super
vivement que la 3D passe
merci Jack
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Compilateur : version de travail disponible   Mer 27 Nov 2013 - 1:36

Code:
 dim titre$
' titre$ = "CECI EST UN TEST" + string$(80," ")+ "Veuillez patienter"
 titre$ = "CECI EST UN TEST" + " Veuillez patienter"
 print titre$
La ligne 2 provoque l’erreur suivante lors de la compilation (le code est sauvegardé sous le nom test3.bas) :

test3.bas(86) error 67: Array not dimensioned, before '('
V_TITRE="CECI EST UN TEST"+*pf_STRINGd(80," ")+"Veuillez patienter"

                                      ^

Par contre la ligne 3 est accepté, donc STRING$() n’est pas (encore) reconnue.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
papydall

avatar

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

MessageSujet: Re: Compilateur : version de travail disponible   Mer 27 Nov 2013 - 3:12

Salut Jack.
Salut tout le monde.

Les premiers tests du compilateur dans l’état où il est, sont concluants.
Avec l’avènement  du compilateur, on doit prendre une autre habitude pour la conception d’un programme : j’ai nommé la phase de la compilation.
En effet, il n’est plus suffisant de coder son programme et lancer son exécution via l’interpréteur, quitte à ce qu’il s’arrête s’il rencontre une erreur en cours d’exécution.

Le compilateur a pour rôle de vérifier les déclarations et la syntaxe de l’intégralité du code pendant la phase de la compilation et  ne fournit un code exe que si le code est correct du point de vue syntaxe.
Si le compilateur détecte des erreurs, il les mentionne et il ne crée pas le fichier exe.
Le concepteur du programme doit apporter les corrections nécessaires et relancer le compilateur autant de fois que nécessaire jusqu‘à ce qu’il n’y ait plus d’erreur.
Toutefois le compilateur est incapable de détecter tous les types d’erreurs (de logique principalement).
Ces erreurs se manifesteront en cours de l’exécution : on peut, par exemple obtenir des résultats non conformes  à ce que l’on s’attend ou pire encore on peut assister à un plantage ! (c’est la responsabilité du concepteur)

La phase de compilation pourrait être assez longue, notamment si le programme est complexe.
Je constate que (dans l’état actuel du compilateur) si le code comporte des erreurs, le compilateur nous avertit par message que la compilation n’a pas aboutit et qu’il faille consulter le fichier error.txt qu’il a crée dans le répertoire de travail pour prendre connaissance de ces erreurs.

Sur ce point, je pense qu’il soit plus avantageux que ce fichier error.txt s’ouvre automatiquement dans une fenêtre pour être consulté par le concepteur du programme, plutôt que d’être enregistré sur disque. Ca fait gagner du temps.
Autre chose, on ne souhaite pas toujours créer un exécutable sur disque mais une simple exécution en mémoire (surtout en phase d’essai d’un bout de code ou d’un test quelconque). Alors, si on dispose d’un choix (options ou icones)  COMPILE  ou COMPILE & RUN  ou MAKE ou BUILD ou que sais-je encore ?

Jack, rien ne presse, prends ton temps et nous savons tous que tu n’en dispose pas d’assez de temps.
On peut toujours faire nos programmes avec l’interpréteur (qui est devenu un adulte !) et nous familiariser avec le bébé compilateur !Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur : version de travail disponible   Mer 27 Nov 2013 - 11:47

papydall a écrit:

test3.bas(86) error 67: Array not dimensioned, before '('
V_TITRE="CECI EST UN TEST"+*pf_STRINGd(80," ")+"Veuillez patienter"

J'ai récupéré le code FreeBasic test3.bas et remplacé *pf_STRINGd(80," ") par la fonction FreeBasic string$(80, " ").

Ensuite j'ai passé (par glisser-déposer) ce fichier test3.bas au programme COMPILER.exe qui se trouve dans le répertoire du compilateur.

La compilation se lance automatiquement et on obtient bien test3.exe
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur : version de travail disponible   Mer 27 Nov 2013 - 12:56

Voici le programme test3.bas modifié qu'il faut passer à COMPILER.exe

Code:

#include"MemoryModule.bi"
#include"incfile.bi"
IncFile(DLLdata,"panoramic.dll")
#lang "fblite"
option gosub
#include once"windows.bi"
dim shared _handl as HWND
dim shared _library as HMEMORYMODULE
_library = MemoryLoadLibrary(DLLdata)
dim shared pc_init as sub stdcall _
(byval operand1 as handle)
pc_init=MemoryGetProcAddress(_library,"pc_init")
dim shared pc_close as sub
pc_close=MemoryGetProcAddress(_library,"pc_close")
DIM SHARED V_TITRE AS STRING
dim shared pc_print_string as sub stdcall _
(byval P1 as string)
pc_print_string=MemoryGetProcAddress(_library,"pc_print_string")
declare function WinMain _
(byval _hInstance as HINSTANCE,_
byval _hPrevInstance as HINSTANCE,_
byval _szCmdLine as string,_
byval _iCmdShow as integer)as integer
end WinMain(GetModuleHandle(null),null,Command(),SW_NORMAL)
function WndProc _
(byval _hWnd as HWND,_
byval _wMsg as UINT,_
byval _wParam as WPARAM,_
byval _lParam as LPARAM)as LRESULT
function=0
select case(_wMsg)
case WM_CREATE
exit function
case WM_DESTROY
pc_close()
sleep 200
MemoryFreeLibrary(_library)
PostQuitMessage(0)
exit function
end select
function=DefWindowProc(_hWnd,_wMsg,_wParam,_lParam)
end function
function WinMain (byval _hInstance as HINSTANCE,_
byval _hPrevInstance as HINSTANCE,_
byval _szCmdLine as string,_
byval _iCmdShow as integer)as integer
dim _wMsg as MSG
dim _wcls as WNDCLASS
dim _hWnd as HWND
function=0
with _wcls
.style=CS_HREDRAW or CS_VREDRAW
.lpfnWndProc=@WndProc
.cbClsExtra=0
.cbWndExtra=0
.hInstance=_hInstance
.hIcon=LoadIcon(NULL,IDI_APPLICATION)
.hCursor=LoadCursor(NULL,IDC_ARROW)
.hbrBackground=GetStockObject(WHITE_BRUSH)
.lpszMenuName=NULL
.lpszClassName=@"HelloWin"
end with
if(RegisterClass(@_wcls)=FALSE)then
MessageBox(null,"Failed to register _wcls","Error",MB_ICONERROR)
exit function
end if
_hWnd = CreateWindowEx(0,_
@"HelloWin",_
"PANORAMIC",_
WS_OVERLAPPEDWINDOW,_
10,_
10,_
200,_
100,_
NULL,_
NULL,_
_hInstance,_
NULL)
_handl=_hWnd
UpdateWindow(_hWnd)
pc_init(_hWnd)
sleep 100
'-------------------------------------------------------------------------------
' SOURCE
'-------------------------------------------------------------------------------
V_TITRE="CECI EST UN TEST"+string$(80," ")+"Veuillez patienter"
V_TITRE="CECI EST UN TEST"+" Veuillez patienter"
pc_print_string(V_TITRE)
_end:
while(GetMessage(@_wMsg,NULL,0,0)<>FALSE)
TranslateMessage(@_wMsg)
DispatchMessage(@_wMsg)
wend
function=_wMsg.wParam
end function
Il faut faire une copie de sauvegarde de ce fichier car il sera détruit après action de COMPILER.exe

Attention : le fichier COMPILER.exe disparaît quand on ferme le "COMPILER_EDITOR". Il faut donc lancer ce dernier, compiler un programme quelconque pour forcer la création de COMPILER.exe, puis laisser le COMPILER_EDITOR ouvert.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Jack
Admin
avatar

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

MessageSujet: Re: Compilateur : version de travail disponible   Mer 27 Nov 2013 - 16:09

Je vois que ce compilateur vous intéresse. Merci à tous pour vos premières remarques.

Francis_mr a écrit:
même si je dois reprendre mes programmes car j'ai souvent utilisé des Labels.
Il n'y a aucun problème sur les labels, tu peux les utiliser avec le compilateur.

mindstorm a écrit:
vivement que la 3D passe
Tu peux compiler des sources utilisant la 3D. Le seul problème que j'ai trouvé est lors de la réinstallation d'une texture.

@papydall et jean-debord:
Il y a effectivement un bug pour la fonction STRING$ qui n'est pas reconnue. Ce bug sera corrigé pour la prochaine version.
L'idée d'une option donnant le choix entre "compilation" et "compilation avec exécution" me plait bien.

pan59 a écrit:
L'un d'entre vous pourrait-il me dire pourquoi le code suivant ne se compile pas !!
à la ligne 121 de ton source, il y a une variable non définie par un DIM: sens_traduction_texte$
La compilation n'est donc pas possible, car une compilation ne passe que si il n'y a aucune erreur dans le source (même dans des lignes qui ne seront pas exécutées).
Par contre, le compilateur devrait s'arrêter or sa fenêtre reste visible...

_________________
username : panoramic@jack-panoramic password : panoramic123
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 27 Nov 2013 - 16:43

bounce bounce bounce bounce 

cheers Bravo pour cette réalisation Jack.
J' enrage de ne pas être sur mon PC pour tester plus en avant tout çà...Very Happy
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

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

MessageSujet: Re: Compilateur : version de travail disponible   Mer 27 Nov 2013 - 18:21

Un bug( ?) selon moi (on en a beaucoup discuté sur le Forum) a été corrigé dans le compilateur mais pas dans l’interpréteur.
Toujours selon moi, le code suivant ne doit pas afficher le mot hello, or l’exécution du code en interprété affiche bien le texte, tandis qu’en compilé, il n’y a pas d’affichage, ce qui très juste.
Code:
dim i,n
n = 1
for i =  5 to n
   print "hello"
next i
message "terminé"
Freebasic teste la condition de sortie de la boucle FOR …NEXT AVANT l’entrée dans la boucle, tandis que Panoramic, exécute une première fois la boucle PUIS il teste la condition de sortie.

J’ai toujours pensé que la boucle FOR …NEXT est une boucle du type WHILE (qui peut ne pas être exécutée du tout) et non du type REPEAT (qui est exécutée au moins une fois).
C’est peut-être un détail mais un détail qui a son importance : le  savoir  ne sera que bénéfique !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur : version de travail disponible   Mer 27 Nov 2013 - 19:16

Voici une version légèrement modifiée du programme de Papydall, dans laquelle j'ai ajouté quelques lignes de FreeBasic (signalées par des commentaires) :

Code:

#include"MemoryModule.bi"
#include"incfile.bi"
IncFile(DLLdata,"panoramic.dll")
#lang "fblite"
option gosub
#include once"windows.bi"
dim shared _handl as HWND
dim shared _library as HMEMORYMODULE
_library = MemoryLoadLibrary(DLLdata)
dim shared pc_init as sub stdcall _
(byval operand1 as handle)
pc_init=MemoryGetProcAddress(_library,"pc_init")
dim shared pc_close as sub
pc_close=MemoryGetProcAddress(_library,"pc_close")
DIM SHARED V_TITRE AS STRING
dim shared pc_print_string as sub stdcall _
(byval P1 as string)
pc_print_string=MemoryGetProcAddress(_library,"pc_print_string")

' ----------- FreeBasic ----------

function Titre(byval i as integer) as string
  dim as string s  
  s = str(i) : if i < 10 then s = " " + s
  s = s + " : CECI EST UN TEST " + string(i, "*")
  s = s + " Veuillez patienter"
  Titre = s
end function

' --------------------------------

declare function WinMain _
(byval _hInstance as HINSTANCE,_
byval _hPrevInstance as HINSTANCE,_
byval _szCmdLine as string,_
byval _iCmdShow as integer)as integer
end WinMain(GetModuleHandle(null),null,Command(),SW_NORMAL)
function WndProc _
(byval _hWnd as HWND,_
byval _wMsg as UINT,_
byval _wParam as WPARAM,_
byval _lParam as LPARAM)as LRESULT
function=0
select case(_wMsg)
case WM_CREATE
exit function
case WM_DESTROY
pc_close()
sleep 200
MemoryFreeLibrary(_library)
PostQuitMessage(0)
exit function
end select
function=DefWindowProc(_hWnd,_wMsg,_wParam,_lParam)
end function
function WinMain (byval _hInstance as HINSTANCE,_
byval _hPrevInstance as HINSTANCE,_
byval _szCmdLine as string,_
byval _iCmdShow as integer)as integer
dim _wMsg as MSG
dim _wcls as WNDCLASS
dim _hWnd as HWND
function=0
with _wcls
.style=CS_HREDRAW or CS_VREDRAW
.lpfnWndProc=@WndProc
.cbClsExtra=0
.cbWndExtra=0
.hInstance=_hInstance
.hIcon=LoadIcon(NULL,IDI_APPLICATION)
.hCursor=LoadCursor(NULL,IDC_ARROW)
.hbrBackground=GetStockObject(WHITE_BRUSH)
.lpszMenuName=NULL
.lpszClassName=@"HelloWin"
end with
if(RegisterClass(@_wcls)=FALSE)then
MessageBox(null,"Failed to register _wcls","Error",MB_ICONERROR)
exit function
end if
_hWnd = CreateWindowEx(0,_
@"HelloWin",_
"PANORAMIC",_
WS_OVERLAPPEDWINDOW,_
10,_
10,_
200,_
100,_
NULL,_
NULL,_
_hInstance,_
NULL)
_handl=_hWnd
UpdateWindow(_hWnd)
pc_init(_hWnd)
sleep 100
'-------------------------------------------------------------------------------
' SOURCE
'-------------------------------------------------------------------------------

' ------------ FreeBasic ------------

for i as integer = 1 to 32
  V_TITRE = Titre(i)
  pc_print_string(V_TITRE)
next i

' -----------------------------------

_end:
while(GetMessage(@_wMsg,NULL,0,0)<>FALSE)
TranslateMessage(@_wMsg)
DispatchMessage(@_wMsg)
wend
function=_wMsg.wParam
end function
A compiler avec COMPILER.exe (n'oubliez pas de faire une copie de sauvegarde !)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

avatar

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

MessageSujet: Re: Compilateur : version de travail disponible   Mer 27 Nov 2013 - 19:35

Salut jean_debord

Comment dois-je m’y prendre pour compiler avec COMPILER.exe ? Embarassed 
Je lance COMPILER.exe, une FORM s’affiche à l’écran et puis que dois-je faire ? Embarassed 
J’ai collé le code dans ce FORM mais rien ne s’est passé.

Voulant essayer de compiler avec COMPILER EDITOR, j’obtiens le message : Cannot open file WINDOWS.BI
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
jean_debord

avatar

Nombre de messages : 756
Age : 63
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Compilateur : version de travail disponible   Mer 27 Nov 2013 - 19:42

Pour moi, je déplace directement l'icône du fichier BAS sur celle de COMPILER.exe, avec la souris.

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé




MessageSujet: Re: Compilateur : version de travail disponible   

Revenir en haut Aller en bas
 
Compilateur : version de travail disponible
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 4Aller à la page : 1, 2, 3, 4  Suivant
 Sujets similaires
-
» Compilateur : version de travail disponible
» Nouvelle version 8.0A3 disponible
» Version 7.0F8 disponible!
» (RESOLU)Impossible de télécharger Garmin Map Update
» La version 8.0A1 disponible au téléchargement

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: