C++-ähnlicher Aufsatz für Blitz

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

PacMani

Betreff: C++-ähnlicher Aufsatz für Blitz

BeitragDi, Okt 04, 2011 11:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

schon seit längerer Zeit kam mir Gedanke, einen C++-Aufsatz für Blitz zu erstellen.
Damit meine ich genauer gesagt erstmal die Umformung der Blitz Basic-Syntax in C-Syntax, weiterhin Objektorientiertheit.

Natürlich kann ich den Compiler nicht neu schreiben, deswegen würde es einen eigener Editor werden, der den C++-ähnlichen Quellcode vor Kompilierung erst in BlitzBasic-Code umwandelt. Der Editor würde dann natürlich auch irgendwann wieder Syntaxhervorhebung einführen. Aber mir geht es erstmal um den Grundgedanken.

Ich nenne einfach mal ein Beispiel: Der folgende Blitz-Code und derselbe Code in C++-ähnlicher Syntax
Code: [AUSKLAPPEN]
Type Spieler
    Field Entity
    Field AmLeben
    Field Energie#
End Type

Code: [AUSKLAPPEN]
type Spieler
{
    int Entity,
    int AmLeben,
    float Energie
}


Weiterhin kann man ja die Sprache durchaus erweitern (im folgenden Bsp. um Vererbung), wenn der Übersetzer des Editors richtig in Blitz-Code umwandelt:
Code: [AUSKLAPPEN]
type Ball
{
    int entity,
    float x,
    float y
}
type FeuerBall : Ball
{
    int brennDauer
}

Würde übersetzt werden in:
Code: [AUSKLAPPEN]
Type Ball
    Field entity
    Field x#
    Field y#
End Type
Type FeuerBall
    Field entity
    Field x#
    Field y#
    Field brennDauer
End Type


Außerdem malte ich mir gedanklich schon die Umsetzung von Eigenschaften (wie in C#) aus, die dann in get/set-Funktionen umgewandelt werden würden sowie ein paar anderer netter Dinge, die einem moderne Programmiersprachen bieten (Klassenmethoden und damit echte OO, XML-Dokumentation etcetera blabla *träum*).

Was haltet ihr von der Idee an sich, mal abgesehen davon, dass zumindest BlitzBasic und Blitz3D nicht unbedingt zukunftssicher sind und sich der Aufwand vielleicht nicht lohnt? Hättet ihr ggf. sogar Interesse daran? Vielleicht fallen euch aber auch Haken bei der Sache ein, an die ich nicht gedacht habe.

BladeRunner

Moderator

BeitragDi, Okt 04, 2011 11:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Mir stellt sich die Frage warum Du eine andere Syntax nutzen willst. Wenn Du auf C hinauswillst, kannst Du doch C nutzen?
Ich mag BlitzBasic ja grade weil es BASIC ist so sehr... Wink
Anders gefragt: worin siehst Du den Vorteil des umsyntaktierens der Sprache?
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
 

PacMani

BeitragDi, Okt 04, 2011 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun, ich bin an sich leidenschaftlicher C-Programmierer.
Natürlich könnte ich auch gleich komplett auf C++ umsteigen mit z.B. der SoftPixelEngine, das habe ich teilweise auch schon getan. Aber trotzdem geht es mit Blitz immer so schön zackig, ein Spiel zu entwerfen.
Und ich hatte schon immer versucht, irgendwie pseudo-objektorientiert mit BB zu arbeiten.

Weiterhin könnte es ja einen prima Lerneffekt für C-Anfänger haben, gewohnt zwar mit Blitz zu arbeiten, aber dann in einer anderen Syntax, ohne dass sie sich gleich um Pointer und richtige Include-Reihenfolge usw. kümmern müssen.

Andererseits wäre aes auch interessant, o.g. Erweiterungen der BB-Sprache in Basic-Dialekt umzusetzen, nach dem Motto "Type FireBall Inherits Ball". Aber das war nicht mein Ziel ursprünglich^^

Noobody

BeitragDi, Okt 04, 2011 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kannst du schon probieren - erweiterte Sprachfeatures für B3D finden sicher genug Interessenten, und obwohl ich die Syntaxumformung ein wenig seltsam finde, wäre es trotzdem eine schöne Sache.

Tatsache ist aber, dass so etwas sehr schwierig zu gestalten ist. Im Prinzip musst du zuerst einen kompletten B3D-Compiler (ohne ASM-Output, natürlich) schreiben, damit du einen robusten Compiler mit zuverlässigem Syntax- und Semantikcheck machen kannst. Erst dann wird dein Precompiler auch wirklich nutzbar, denn Programmierer machen Fehler (sehr viele Fehler), und einige sind auch sehr schwer nachzuvollziehen. Wenn man dann statt einer verständlichen Fehlermeldung einen Crash deines Compilers oder eine Fehlermeldung des echten Blitz3D-Compilers erhält, wird es sehr schwierig, den Fehler im ursprünglichen Code zu finden.
Und da ich es zugegebenermassen selber (ohne Erfolg) versucht habe, so einen Precompiler für B3D zu schreiben, glaube ich, dass so etwas wirklich schwierig ist, wenn man nicht gerade einiges an Erfahrung im Compilerbau mitbringt.

Aber versuch es auf jeden Fall, wenn es dir Spass macht Razz Ist sicher ein gutes Lernprojekt.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun
 

PacMani

BeitragDi, Okt 04, 2011 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuchen werde ich es auf alle Fälle. Mich hatte so etwas immer schon interessiert. Ich habe zwar selber nicht allzu viel Erfahrung auf dem Gebiet, aber vollkommen ratlos dürfte ich nicht daran gehen. Mal sehen, wie weit ich es bringe, und anfangs dürfte es nur syntaxmäßig C-ähnlichen Code in Basic umwandeln (so etwas hatte ich bereits einmal gemacht).
Mir düngt aber, es gibt zumindest hier im Forum ein allgemeines Unbehagen gegenüber C-Syntax. Vielleicht sollte ich den "Umwandler" (Compiler klingt mir zu hochgetragen) gleich von Anfang an flexibel halten um vielleicht irgendwann mal folgende echte Spracherweiterungen (wie die o.g. Vererbung) auch in Basic-Ausgangssyntax möglich zu machen.
Aber erstmal "C" zu BB. Ich finde C-Syntax nämlich schön kompakt und tatsächlich besser lesbar als Basic.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group