Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

51

29.06.2014, 00:06

Dein Programm versuchst einen Ordner mit dem selben Namen wie die Datei anlzuegen (im selben Ordner). Das ist nicht möglich.
"Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works and they don’t know why." - Anon

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

52

29.06.2014, 00:16

Ok ich guck mir das morgen noch mal genau an.
Danke schon mal für das Feedback.

EDIT:
Und ihr schreibt auch wirklich ".\xxc" und nicht einfach nur "xxc"?
Bei mir passiert der selbe Fehler nämlich nur dann, wenn ich "xxc" schreibe (habe ich auch als Info in der readme Datei).
Und im letzten Screenshot von "FSA" war es falsch geschrieben.

FSA

Community-Fossil

  • Private Nachricht senden

53

29.06.2014, 00:37

.\ oder nicht macht bei mir keinen Unterschied.

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

54

29.06.2014, 11:43

Echt komisch, auf meinem Laptop geht es auch und da habe ich xxc nicht einmal in der PATH Variable.
Normaler Wiese schreibe ich auch an ".\ConnectFour.xx" das ".\" aber wenn ich es weglasse, geht es bei mir immer noch.
Wie sieht es denn bei anderen aus??
Anbei mal ein Screenshot wie es aussehen sollte.
»LukasBanana« hat folgendes Bild angehängt:
  • Screenshot 01.png

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

55

29.06.2014, 13:35

Es scheint nur dann zu funktionieren, wenn die *.xx-Datei mit Pfadangabe (vollständiger Pfad oder relativer Pfad mit . oder ..) angegeben wird. Fehlt das, kommt der Fehler.
Wurde das Programm schonmal erfolgreich übersetzt, wird bei einem Fehler in der Übersetzung einfach das bestehende Kompilat ausgeführt, im Hintergrund sieht man aber kurzzeitig die roten Ausgaben in der Konsole. Löscht man die *.xx.xasm- und die *.xx.xbc-Dateien, sieht man auch die Fehlermeldung wieder.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

56

29.06.2014, 15:47

Danke für den Hinweis. Habe eben noch mal eine kleine Änderung im Code vorgenommen. Hoffe es klappt jetzt.
Außerdem habe ich den Code noch mal ein ganz klein wenig 'schöner' gemacht, indem ich nun auch Gebrauch der booleans mache.
Hier noch mal der Download Link zum kleinen Update (diesmal auch mit vorkopiliertem Programm).

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

57

02.03.2015, 11:15

Nach längerer Pause zu diesem Projekt habe ich endlich mal wieder angefangen, an meinem (neuen) Compiler zu arbeiten.
Ich habe die Sprache rund um erneuert und vor Allem stark vereinfacht - ich habe mir zu Beginn einfach zu viel vorgenommen :rolleyes:

Die Sprache ist jetzt mehr an Java als an C++ angelehnt:
Garbage Collection, keine Pointer Arithmetik, keine Templates.

Hier mal zwei Code Beispiele die mein Parser bereits akzeptiert:
MathTest1.xx
CodeTest1.xx
Feedback zur Syntax bzw. Grammatik ist erwünscht :-)

Die Virtuelle Maschine ist auch komplett neu und als separates Projekt in reinem C99 geschrieben.

Zum Thema Garbage Collection:
Hat jemand von euch Erfahrung mit dem Boehm-Demers-Weiser conservative C/C++ Garbage Collector?
Ich will so einen fertigen GC für meine VM benutzen. Ich stell mir aber schon die ganze Zeit die Frage, wie das zusammen mit meiner VM funktionieren soll.
Wenn ich mit "GC_MALLOC" Speicher allokiere, woher weiß dann der GC, dass dieser Pointer noch in meinen virtuellen Registern bzw. auf meinem virtuellen Stack liegt?
Diese (Owning-)Pointer liegen nämlich als 'Raw-Memory' irgendwo in meiner VM.

Hoffe ihr könnt mir mit dem GC Problem weiter helfen und euch gefällt die neue, simplere Syntax meiner Sprache :D

Lukas

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

58

02.03.2015, 11:32

Zum Thema Garbage Collection:
Hat jemand von euch Erfahrung mit dem Boehm-Demers-Weiser conservative C/C++ Garbage Collector?
Ich will so einen fertigen GC für meine VM benutzen. Ich stell mir aber schon die ganze Zeit die Frage, wie das zusammen mit meiner VM funktionieren soll.
Wenn ich mit "GC_MALLOC" Speicher allokiere, woher weiß dann der GC, dass dieser Pointer noch in meinen virtuellen Registern bzw. auf meinem virtuellen Stack liegt?
Diese (Owning-)Pointer liegen nämlich als 'Raw-Memory' irgendwo in meiner VM.

Soweit ich weiß, durchsucht dieser Garbage Collector auch sämtliche Register nach möglichen Zeigern. Dabei kann es natürlich zu falsch Positiven kommen, wenn ein Wert gar nicht als Pointer benutzt wird, sondern z.B. einfach nur eine Zahl ist, die als Adresse gelesen zufällig in eines deiner Objekte zeigt.
Ich denke nicht, dass das der richtige Ansatz ist, um Garbage Collection in eine eigene Sprache zu integrieren. Da solltest du viel bessere Möglichkeiten haben.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

59

02.03.2015, 12:06

Solltest du auch eine eigene Implementierung für einen GC in Betracht ziehen, dann dürfte da die Implementierung von Java von Interesse sein.
Objekte, die von der VM selbst (bspw. über den Stack) oder anderen C/C++ Code heraus (Stichwort JNI) referenziert werden, werden vom GC als referenziert betrachtet. Von diesen Objekten aus werden alle weiterhin referenzierten Objekte ebenfalls als referenziert betrachtet und deren referenzierte Objekte durchlaufen. Ist das fertig, werden alle als nicht mehr referenziert erachtete Objekte abgeräumt. Um Fehler durch zyklische Referenzen (bspw. Kind kennt Elter und Elter kennt alle Kinder) zu vermeiden, wird zu beginn eines Durchlauf des GC das entsprechende Flag gecleared und bei einem Fund gesetzt. (Wird also eine Referenz auf ein Objekt gefunden, das bereits als referenziert erkannt wurde, wird dieses also nicht weiter betrachtet.)
Auf diese Weise werden außerdem Objekte mit zyklischen Referenzierungen richtig abgeräumt, was bei einem reinen Zählen der Referenzen nicht berücksichtigt werden würde.

Zur Optimierung dessen gibt es weiterhin eine Unterteilung in 3 Generationen, die ebenfalls etwas für einen selbstgeschriebenen GC sein könnte.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

LukasBanana

Alter Hase

  • »LukasBanana« ist der Autor dieses Themas

Beiträge: 1 097

Beruf: Shader Tools Programmer

  • Private Nachricht senden

60

14.03.2015, 21:19

Ich habe jetzt mal in LaTeX mit einem Programming Guide für meine Sprache angefangen, den ich u.A. als eigenen Leitfaden nutze, damit ich meine eigenen Spezifikationen und Definitionen nicht vergesse ^^
Feedback dazu ist wie immer willkommen :-)

Werbeanzeige