Types in BB und BMax - Wie in ASM

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

flona

Betreff: Types in BB und BMax - Wie in ASM

BeitragMi, Sep 03, 2008 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
So, hab mal wieder eine Frage.

Also gleich mal vorweg: ich habe kein BMax und habe die Demo zwar mal runtergeladen und installiert, dann aber verschlafen sie auszuprobieren und dann war die Testzeit auch schon um. Mad

Ich würde gerne mal wissen wie des mit den Types in Assembler übersetzt wird und wie des in BMax mit den Methoden funktioniert. Ich habe kA wie des funktioniert. Wäre vll jemand so nett einen kleinen Testtype in BMax zu schreiben und den Asm-Source zu posten? Very Happy

mfg flona
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit

kog

BeitragMi, Sep 03, 2008 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm weiss nicht ob dir das was Hilft
Aber habe einen kleinen Source erstellt und Kompiled, der ASM code ist im Archiv + der SourceCode der anwendung.

http://www.kognetwork.ch/type.rar

flona

BeitragMi, Sep 03, 2008 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Da wärs jetzt interessant zu wissen was in den BMax-Funktionen passiert. Aber danke kog Wink
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit

kog

BeitragMi, Sep 03, 2008 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm inwiefern?
Was soll ich noch einbauen, schreib es mal so gedanklich und theoretisch auf.

Farbfinsternis

BeitragMi, Sep 03, 2008 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
flona hat Folgendes geschrieben:
Da wärs jetzt interessant zu wissen was in den BMax-Funktionen passiert. Aber danke kog Wink


Was willst Du wissen? kog hat einfach eine Klasse definiert die die Eigenschaft "i" besitzt. Vielleicht hätte er noch folgenden Code darunter setzen sollen:
Code: [AUSKLAPPEN]

Local at:AsmTest = New AsmTest
at.Set()
Farbfinsternis.tv

flona

BeitragMi, Sep 03, 2008 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich meinte, dass es noch interessant wäre was in den Funktionen von BMax passiert, die eingebunden werden. (zB: _bbObjectCtor, _bbObjectClass, ...)
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit

kog

BeitragMi, Sep 03, 2008 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm Tut mir leid, wäre zuviel das zu schicken, da es sozusagen der Kern von BlitzMax ist, gehört zur Object verwaltung und co.
Findest du alles unter brl.mod/blitz.mod/objects.c

BtbN

BeitragDo, Sep 04, 2008 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Der OOP-Code von BMax wird auf normale funktionen gewrappt, die als ersten Parameter einen Self-Parameter haben, welcher das Objekt selbst enthält.

Ein aufruf von beispiel:TBeispiel, wie z.B.
Code: [AUSKLAPPEN]
beispiel.spielbei("hallo")
würde also zu
Code: [AUSKLAPPEN]
TBeispiel_spielbei(beispiel, "hallo")


Eine Typ-Definition ist also nichts anderes als das Definieren von Funktionen und Variablen, die einen speziellen Namens-Prefix tragen.

flona

BeitragFr, Sep 05, 2008 8:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Thx, BtbN. Aber des kann ja garnicht sein. Wenn ich einen Typ definiere zB Test, mit den Feldern x und y. Dann werden deiner Meinung nach die Variablen Test_x und Test_y oder so definiert. Und was machst du wenn du ein zweites Objekt erstellst.
Ich dachte schon des müsste iwie mit STRUCTuren gehen. Also zb:
Code: [AUSKLAPPEN]
Struct Type_Test
x Int
y Int
last Pointer
next Pointer
EndStruct

In last und next wird der Pointer auf den vorherigen und nächsten "Type"(Structur) gespeichert, bei jedem new wird eine neue Struktur "erstellt", in dem letztem "Objekt" bei next der neue Pointer gespeichert. Und die Methoden werden dann wie du bereits gesagt hast also Method_Test_Iwas(pointer,par1,...) gespeichert. Kann man des so in der Art umsetzen?
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit

BladeRunner

Moderator

BeitragFr, Sep 05, 2008 10:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Diese last und next spielereien gibt es unter Bmax im Objekt nicht da hier der Programmierer selbst die Verwaltung der erstellten Instanzen übernimmt.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

flona

BeitragFr, Sep 05, 2008 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich dachte, des wäre für eine For var=Each Type...Next Schleife gut.
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit

BladeRunner

Moderator

BeitragFr, Sep 05, 2008 12:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Unter BB wäre das auch eventuell so gewesen, da hier alle Instanzen global erfasst wurden, für BMax trifft das nicht mehr zu.
Und selbst unter BB denke ich war die globale Liste separat von den einzelnen Objekten gehalten.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

BtbN

BeitragFr, Sep 05, 2008 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Es wird für Felder natürlich keine Globale Variable angelegt, das nur für Globals in Types. Für Fields weiss ich das exacte vorgehen nicht, könnte mir aber vorstellen, dass es eine Methode/Funktion ala Beispiel_getfield_testfield(Self:Beispiel) gibt, welche dann relativ zur addresse von Self im speicher die Variablen abruft.

flona

BeitragFr, Sep 05, 2008 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Also meint ihr, dass ich die Verwaltung besser dem Programmierer überlassen soll Question
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group