delete
- NicTheQuick
- Ein Admin
- Beiträge: 8807
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: SimpleOOP - Opensource Precompiler
Mal 'ne blöde, weil ich den Thread jetzt nicht komplett gelesen und im Download nur Exe-Dateien gefunden hab: Funktioniert SimpleOOP auch unter Linux, wenn ich die Sourcen dort kompiliere?
- Blackskyliner
- Beiträge: 532
- Registriert: 28.07.2005 00:54
- Wohnort: /home/Blackskyliner/
Re: SimpleOOP - Opensource Precompiler
Wenn du die wenigen API Funktionen ersetzt siehe 5 Posts oder so vor deinem stehen alle genutzten API Funktionen...
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Re: SimpleOOP - Opensource Precompiler
Hi Sirhc.ITI,
also ersteinmal eine Top-Arbeit
.
hab hier im thread schon öfter mal gelesen. hab mich aber nie so richtig begeistern können von einem oop-precompiler. aber ich dachte mir mal, da ich ein paar kleine projekte realisieren will, die es in java z.b. schon gibt, dachte ich mal, warum dann nicht auch objektorientiert. und da ja SimpleOOP anscheinend nicht links liegen gelassen wird, so wie manch andere Projekte, dachte ich mal fängste hier mit an.
so lange rede kurzer unsinn...
jetzt zum thema. ich hab nämlich leider auch was zu bemängeln. nun ich bin halt ein kleiner java-fetischist, und deshalb fehlt mir was ganz entscheidenes in SimpleOOP: 'InstanceOf'.
kleine erklärung: die methode überprüft zur Laufzeit, ob ein Objekt der angegebenen Klasse angehört, oder einer Klasse die von dieser angegebenen Klasse erbt. hier mal ein kleines beispiel um das zu veranschaulichen:
also ich hatte schon mal eine eigene oo-programmiersprache geschrieben, die sehr an java angelehnt war, deshalb weiß ich, dass das schwieriger aussieht als man denkt.
so die erste bedingung "ein Objekt der angegebenen Klasse angehört" ist ja noch recht leicht zu realisieren: um zu prüfen, ob ein objekt z.b genau ein auto ist, als durch 'NewObject.auto' erstellt wurde, müsste jedes objekt nur eine int-variable besitzen. zudem hat jede klasse eine eigene id. in der int-variablen wird dann die id der jeweiligen klasse gespeichert. bei InstanceOf muss nur dieser int-wert mit der id der klasse verglichen werden.
die zweite bedingung "einer Klasse die von dieser angegebenen Klasse erbt" ist halt der knackpunkt. ohne zu viel in deiner jetzigen strukture zu ändern wüsste ich da jetzt nicht, wie man das machen sollte. vielleicht hast du ja ne gute lösung dafür. würde mich sehr darüber freuen, denn das halte ich für sehr wichtig in einer oo-sprache.
ansonsten werd ich mir noch was überlegen, wie es ohne viel aufwand möglich wäre. SimpleOOP ist ja OpenSource
.
bis denne
lg kevin
also ersteinmal eine Top-Arbeit

hab hier im thread schon öfter mal gelesen. hab mich aber nie so richtig begeistern können von einem oop-precompiler. aber ich dachte mir mal, da ich ein paar kleine projekte realisieren will, die es in java z.b. schon gibt, dachte ich mal, warum dann nicht auch objektorientiert. und da ja SimpleOOP anscheinend nicht links liegen gelassen wird, so wie manch andere Projekte, dachte ich mal fängste hier mit an.
so lange rede kurzer unsinn...
jetzt zum thema. ich hab nämlich leider auch was zu bemängeln. nun ich bin halt ein kleiner java-fetischist, und deshalb fehlt mir was ganz entscheidenes in SimpleOOP: 'InstanceOf'.
kleine erklärung: die methode überprüft zur Laufzeit, ob ein Objekt der angegebenen Klasse angehört, oder einer Klasse die von dieser angegebenen Klasse erbt. hier mal ein kleines beispiel um das zu veranschaulichen:
Code: Alles auswählen
Class Objekt
EndClass
Class Fahrzeug Extends Objekt
EndClass
Class Auto Extends Fahrzeug
EndClass
Procedure Test(*fahrzeug.Fahrzeug)
If InstanceOf(*fahrzeug, Auto)
Debug "ist Auto"
EndIf
If InstanceOf(*fahrzeug, Objekt)
Debug "ist Objekt"
EndIf
EndProcedure
*auto.Auto = NewObject.Auto
*fahrzeug.Fahrzeug = NewObject.Fahrzeug
Test(*auto) ; Ausgabe: "ist Auto" und "ist Objekt"
Test(*fahrzeug) ; Ausgabe: "ist Objekt"
so die erste bedingung "ein Objekt der angegebenen Klasse angehört" ist ja noch recht leicht zu realisieren: um zu prüfen, ob ein objekt z.b genau ein auto ist, als durch 'NewObject.auto' erstellt wurde, müsste jedes objekt nur eine int-variable besitzen. zudem hat jede klasse eine eigene id. in der int-variablen wird dann die id der jeweiligen klasse gespeichert. bei InstanceOf muss nur dieser int-wert mit der id der klasse verglichen werden.
die zweite bedingung "einer Klasse die von dieser angegebenen Klasse erbt" ist halt der knackpunkt. ohne zu viel in deiner jetzigen strukture zu ändern wüsste ich da jetzt nicht, wie man das machen sollte. vielleicht hast du ja ne gute lösung dafür. würde mich sehr darüber freuen, denn das halte ich für sehr wichtig in einer oo-sprache.
ansonsten werd ich mir noch was überlegen, wie es ohne viel aufwand möglich wäre. SimpleOOP ist ja OpenSource

bis denne
lg kevin



http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Re: SimpleOOP - Opensource Precompiler
hi, sorry ich muss dir leider nochmal ein messer in den bauch stechen
. nein quatsch, also:
ich weiß zwar nicht wie das in anderen oo-sprachen ist, aber aus java kenn ich halt, dass private methoden und argumente in der klasse nicht nur von this benutzt werden dürfen, sondern auch von allen variablen, die diese klasse als struktur haben und in dieser klasse definiert wurden. hier mal ein beispiel (unter java würde so was z.b funktionieren):
das ist hier in diesem beispiel noch einfach zu lösen. aber bei komplexen datenstrukturen, wie z.b binäre Suchbäume, die intern verändert werden müssen bei einer bestimmten operation, wie einfügen oder so was, dort muss es möglich sein, nicht nur den baum in 'this' zu verändern, sondern auch die unterbäume. gleichzeitig will man natürlich auch nicht, dass der benutzer dies verändern kann.
ich hoffe ich konnte das problem verständlich erklären und hoffe natürlich auch, dass du nicht denkst, ich will alles nur schlecht reden. stimmt natürlich nicht. ich will halt ein paar datenstrukturen ect. mal schreiben, vielleicht auch für die öffenlichkeit. da bräuchte ich aber schon solche sachen. also nicht böse sein
.
lg kevin

ich weiß zwar nicht wie das in anderen oo-sprachen ist, aber aus java kenn ich halt, dass private methoden und argumente in der klasse nicht nur von this benutzt werden dürfen, sondern auch von allen variablen, die diese klasse als struktur haben und in dieser klasse definiert wurden. hier mal ein beispiel (unter java würde so was z.b funktionieren):
Code: Alles auswählen
Class Test
value.i
Public Method Init(value.i)
This\value = value
EndMethod
Public Method.i compareTo(*obj.Test)
If (This\value < *obj\value) ; *obj ist auch von der Klasse Test, in der wir gerade drin sind.
MethodReturn -1 ; also müsste es möglich sein, auf value zugreifen zu können
ElseIf (This\value = *obj\value)
MethodReturn 0
Else
MethodReturn 1
EndIf
EndMethod
EndClass
ich hoffe ich konnte das problem verständlich erklären und hoffe natürlich auch, dass du nicht denkst, ich will alles nur schlecht reden. stimmt natürlich nicht. ich will halt ein paar datenstrukturen ect. mal schreiben, vielleicht auch für die öffenlichkeit. da bräuchte ich aber schon solche sachen. also nicht böse sein

lg kevin



http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Re: SimpleOOP - Opensource Precompiler
So zum zweiten Punkt hab ich ein wenig gegoogelt. so wie ich das verstanden hab ist das auch in anderen oo-sprachen so (man möge mich steinigen, wenns nicht so ist, und bitte meldet euch, falls jemand dort wirklich ahnung hat). aber ehrlich gesagt, bei rekursiven datenstrukturen, mit denen ich mich schon sehr oft beschäftigt hab, geht das gar nicht, so wies bei dir zur zeit ist. zumindest kann ich dann die attribute nicht vor dem benutzer verstecken. hier mal ein etwas ausführlicheres beispiel:
sagen wir mal, ich will mir einen binären suchbaum 'BinTree' als rekursive datenstruktur erstellen. dazu hat der binäre suchbaum einen linken und einen rechten teilbaum auch vom Typ 'BinTree'. nun will ich eine methode bereitstellen, damit ein element eingefügt werden kann. es soll aber an der richtigen stelle im baum eingefügt werden (also alle elemente im linken teilbaum müssen kleiner sein, als die wurzel, rechts größer), somit es immer noch ein binären suchbaum darstellt. hier mal als code verdeutlicht (ist nicht vollständig):
ich will halt nicht, dass ich dem benutzer lese- und schreibrechte für 'left', 'right' und 'obj' gebe, will aber trotzdem in der lage sein, intern eine solch rekursive datenstruktur zu verändern.
lg kevin
sagen wir mal, ich will mir einen binären suchbaum 'BinTree' als rekursive datenstruktur erstellen. dazu hat der binäre suchbaum einen linken und einen rechten teilbaum auch vom Typ 'BinTree'. nun will ich eine methode bereitstellen, damit ein element eingefügt werden kann. es soll aber an der richtigen stelle im baum eingefügt werden (also alle elemente im linken teilbaum müssen kleiner sein, als die wurzel, rechts größer), somit es immer noch ein binären suchbaum darstellt. hier mal als code verdeutlicht (ist nicht vollständig):
Code: Alles auswählen
Class BinTree
*left.BinTree
*right.BinTree
*obj
Public Method add(*new)
*parent.BinTree
*tree.BinTree
While (*tree <> #Null) ; In der Schleife durchlaufe ich den Baum von oben nach unten, bis ich eine leere Stelle finde
*parent = *tree
If (*new < *tree.obj) ; Ab hier hab ich ein Problem
*tree = *tree.left
Else
*tree = *tree.right
EndIf
Wend
If (*new < *parent.obj)
*parent.left = NewObject.BinTree(*new)
Else
*parent.right = NewObject.BinTree(*new)
EndIf
EndMethod
EndClass
lg kevin



http://www.jasik.de - Windows Hilfe Seite
padawan hat geschrieben:Ich liebe diese von hinten über die Brust ins Auge Lösungen
Re: SimpleOOP - Opensource Precompiler
Download-Link ist tot, wie auch bei vielen anderen Projekten.
Das passiert also wenn man einem Kiddy vertraut, das Webhoster spielen will.
Das passiert also wenn man einem Kiddy vertraut, das Webhoster spielen will.

Re: SimpleOOP - Opensource Precompiler
@Sirhc
Koenntest du noch "static" mit einbauen? Ich hab es zwar versucht, kommt aber nix sinnvolles bei rum.
Methoden mit Static sind unabhaengig von der instanz, man kann also auch kein this in der Methode benutzen. Sehr sinnvoll z.b. fuer Callbacks.
Fuer mehr infos kannst du ja mal hier reinschauen
http://de.wikibooks.org/wiki/C%2B%2B-Pr ... in_Klassen
Koenntest du noch "static" mit einbauen? Ich hab es zwar versucht, kommt aber nix sinnvolles bei rum.
Code: Alles auswählen
Class Test
Public Static Method Callback()
EndMethod
EndClass
Fuer mehr infos kannst du ja mal hier reinschauen
http://de.wikibooks.org/wiki/C%2B%2B-Pr ... in_Klassen
Re: SimpleOOP - Opensource Precompiler
naja, dann muss ich sie ja so oder so ausserhalb der Klasse schreiben. Aber im Moment eilt hier eh nix...
Re: SimpleOOP - Opensource Precompiler
Hallo, ich wollte Dir hier huldigen:
Das Ding ist Gold wert und macht auch Spaß! Auf etwaigen Overhead der durch das Featureaufpeppen passieren könnt wird - ihr wisst schon was!

Das Ding ist Gold wert und macht auch Spaß! Auf etwaigen Overhead der durch das Featureaufpeppen passieren könnt wird - ihr wisst schon was!