Deutsch
Forum

Unterschied zwischen Interpreter und Compiler

 
- Seite 1 -



Dietmar
Horn
Hallo,

ich grübele nun schon den dritten Abend über einen Programmteil, der im Interpretermodus einwandfrei funktioniert, aber compiliert nur Schrott ausspuckt.

Inzwischen konnte ich die fehlerhaft reagierende Stelle eingrenzen und mir die fehlerhaften Werte ausgeben lassen:
KompilierenMarkierenSeparieren
messagebox(str$((gx0% + i% * ga% + i% * gb%)) + "
" + str$((gx0% + i% * ga% + (i% + 1) * gb%)),"",4160)
messagebox(str$((gx0% + i% * ga% + i% * gb%)) + "
" + str$((gx0% + i% * ga% + i% * gb% + gb%)),"",4160)

Im Interpretermodus -> richtige Werte: 10 und 36
Compiliert -> idiotische Werte: 10 und 8

Die Werte werden im Programm in einer Schleife mehrere hundert Mal mit unterschiedlichen Ausgangswerten berechnet. Die angegebenen Wertepaare sind die Werte des ersten Schleifendurchlaufes.

Vom Mathematischen her ist in diesem Programmteil alles in Ordnung (es geht um die Berechnung der Werte für ein Balkendiagramm). Im Interpretermodus wird das Diagramm auch korrekt dargestellt - compiliert wegen der falschen Werte aber eben leider nicht.

Kann jemand weiterhelfen?

Ich krieg sonst langsam noch ne Macke wegen der ständigen Unterschiede zwischen Interpreter- und Compilermodus.

Gruß
Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
22.04.2005  
 



 
- Seite 1 -



Dietmar
Horn
Nee, Andreas,

ich habe nur wegen der Mathe-Logik beide Message-Boxen gepostet (beide liefern identische Werte).

Lediglich die beiden Formeln unterscheiden sich etwas (weil ich anfangs dachte, daß PRF mit Klammerung in Klammerung hier evtl. Probleme haben könnte).

Die Ausgangswerte sind ebenfalls richtig (bei jedem Schleifendurchlauf).

Ansonsten stehe ich mit Mathematik zum Glück nicht gerade auf Kriegsfuß. Daran dürfte es nicht liegen (vermute ich mal) ...

Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
22.04.2005  
 



Hallo Dietmar...

Trotzdem wäre es für mich ganz hilfreich die Werte für die Variablen und das dazugehörige falsche Ergebnis zu wissen.
 
22.04.2005  
 



also ich erhalte im inter und im compi beide male die gleichen werte:
KompilierenMarkierenSeparieren
declare gx0%,ga%,i%,gb%
i%=10
gx0%=5
gb%=7
messagebox(str$((gx0% + i% * ga% + i% * gb%)) + "
" + str$((gx0% + i% * ga% + (i% + 1) * gb%)),"",4160)
messagebox(str$((gx0% + i% * ga% + i% * gb%)) + "
" + str$((gx0% + i% * ga% + i% * gb% + gb%)),"",4160)

Vielleicht liegt es daran - das die variablen durch str$ verkehrt werden. ich erinnere da mal an die autom. typenconvertierung..

Salve.
 
22.04.2005  
 




GDL
Hi,

deine Messageboxen mit gleichen Zahlen von iF im Interpreter wie als exe immer 75.000000 und 82.000000 .

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
22.04.2005  
 




Stephan
Sonneborn
Hi,
ich kann auch keinen Unterschied zwischen Interpreter und Exe feststellen. Auch dann nicht, wenn man ga% mit einem Wert belegt (bisher ist ga% = 0).

Dietmar, poste doch einfach mal die Werte für die Variablen, mit denen es nicht klappt. Werden evtl. Dezimalzahlen an Integervariablen übergeben und es entstehen beim Runden ungewollte Nebeneffekte? Obwohl mir allerdings der Unterschied schon recht groß erscheint...
 
Schöne Grüße aus Wittgenstein
von Stephan

Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz
23.04.2005  
 




Dietmar
Horn
Ja, langsam vermute ich auch, daß es irgendwie mit dieser blöden automatischen Typumwandlung an irgendeiner Stelle zusammenhängen könnte, und ich muß das wahrscheinlich nun von Anfang an nochmals alles auseinanderbröseln.

An Rundungsfehlern dürfte es nicht liegen, denn dann sollte es doch keine Unterschiede zwischen Interpreter und Compiler geben. Ein paar Mal habe ich bereits erlebt, daß Profan Probleme mit der Mathematik hat, aber man kann doch nicht alle Formeln in der Art auseinandernehmen (stark vereinfacht dargestellt):

statt: x = (a + b) - (c - d)

schreibe:

u = a + b
v = c - d

x = u - v

Interessant wird diese Vorgehensweise, wenn dann auch noch trigonometrische Funktionen, Potenzen und Logarithmen hinzukommen ...

Heute und morgen komme ich wahrscheinlich nicht gleich dazu, aber ich werde es posten, wenn ich den Übeltäter eingefangen habe oder zumindest weiter einkreisen konnte. Oder den Mathe-Berechnungsteil notfalls in Delphi schreiben und die Ergebnisse dem Profan-Programm zur Weiterbearbeitung übergeben ...

Mich stört in erster Linie, daß es öfters mal diese blöden Unterschiede zwischen Interpreter und Compiler gibt, weil man das selber beim Programmieren kaum beeinflussen kann. Wenn das einheitlich wäre (notfalls eben auch gleiche Bugs bei Beiden), dann könnte man sich ja danach richten, aber so ...

Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
23.04.2005  
 




CB
Ich habe mir angewöhnt, sämtliche Klammern zu setzen, auch wenns aus mathematischen Prinzipien nicht notwendig wäre - aber wer weiß?
Damit erzwinge ich ggf. ein korrektes Vorgehen - hoffentlich ...

Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
23.04.2005  
 



Aus dem Grund arbeite ich überhaupt nicht mit dem Interpreter - sondern immer nur mit der fertigen Exe.

Deshalb steht bei mir oben im Source auch immer {$cleq}

Am Ende spart man Zeit. :/:

Salve.
 
23.04.2005  
 




Dietmar
Horn
Hallo,

ich habe endlich meinen Fehler gefunden.

Statt

ga% = 3

hatte ich versehentlich

ga% = 3%

getippelt.

Komisch, daß weder Interpreter noch Compiler das angemeckert haben und vor allem, daß die Sache im Interpreter sogar korrekt funktionierte.

Ich danke trozdem allen, die mir versucht haben zu helfen.

Dietmar
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
23.04.2005  
 



Hallo Dietmar...

Mir ist vor vor einigen Jahren was ganz ähnliches passiert - auch hier meckerte der Interpreter nicht und die EXE gab falsche Werte.
Das Programm hatte ca. 10000 Zeile und ich habe tagelang nach dem Mist gesucht, der da passiert...
 
23.04.2005  
 



 
- Seite 2 -



CB
In so einem Fall beschwert sich Profan nicht - da 3% nicht existiert ist ga% halt 0 und schon fällts nimmer auf, daß 3% nicht deklariert (weil falsch) ist.
Es lebe die Variablenüberprüfung vom XPSE, wenn sie auch solche fehlenden Deklarationen findet. iF wirds schon hinkriegen!

Christian
 
XProfan 8/9.1, Win XP, AMD 64/3200
24.04.2005  
 



Ich habs mit in die ToCheckToDo vom XPSE gepackt.

So isses ja gedacht - xpse soll sich ja stetig weiterentwickeln und immer strenger werden.

Salve.
 
24.04.2005  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

9.670 Betrachtungen

Unbenanntvor 0 min.
Michael Klumb17.03.2016
Chregu Mueller22.03.2014
E.T.10.12.2012
Michael Borowiak15.10.2012
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie