VisualBlitz - B3D & BMax in Visual Studio

Worklogs VisualBlitz - B3D & BMax in Visual Studio Kommentare

Gute Antworten / Einwände

Sonntag, 22. Juni 2014 um 15:55 Uhr von PacMani

Danke Xeres und Thunder für eure Kommentare, die haben etwas Licht ins Dunkel gebracht.

Zunächst zu der altmodischen Art, Variablen in einer Zeile zu deklarieren / initialisieren. Da bin ich wohl tatsächlich mit etwas anderem durcheinander gekommen. Folgendes VB-Beispiel:
Code: [AUSKLAPPEN]

Dim a, b, c As String

Im alten VB6 hat dies zwei Integer a und b und einen String deklariert. c war ein String.
Im neuen VB.NET werden drei Strings deklariert. Das finde ich vernünftiger, weil man es auch so von der Leseart her erwartet.
Das mit der Wertezuweisung bei der Deklaration ist natürlich eine ganz andere Sache. Ist die Frage, was schöner ist. Aber in C ist es bisher auch nicht anders abgelaufen wie in BB. Von daher nochmal ein Sorry für meine Verwirrtheit Wink

Das mit den abgeschlossenen Statements ohne Zeilenumbruch ist ziemlich hässlig. Aber nun eben mal möglich in B3D. Wenigstens erklärt es diese Global / Local-Geschichte, die mich total aufgeschmissen hat.

@Thunder: Bist du sicher, dass dein Editor Alt+255 auch nicht in normale Leerzeichen umgewandelt hat? Wink

Sonntag, 22. Juni 2014 um 13:45 Uhr von Xeres

Als Sprache für Anfänger sollte BB wohl einfach und robust sein: Explizite Trennung von Befehlen ist nicht nötig, explizite deklaration ist nicht nötig, klammern bei Funktionen sind nicht zwingend nötig, gecasted wird automatisch... Klar kann man da allerhand zusammenschreiben, ohne das der Compiler meckert.
Code: [AUSKLAPPEN]


a = 1 b = 2 c = 3 d = 4 ; lauter zuweisungen (ohne trenner)
Print(a+","+b+","+c+","+d)
d = b = 2 ; zuweisung von dem vergleich b = 2
Print(d)
WaitKey

Sonntag, 22. Juni 2014 um 13:24 Uhr von Thunder

Hallo PacMani,
interessantes Projekt! Ich freue mich schon auf den Einbau von BlitzMax, da ich Blitz3D nicht verwende.

@Fake-Leerzeichen: Das mit den Variablennamen ist richtig, das sollte der Compiler eigentlich nicht erlauben. Das ist mir auch ziemlich unerklärlich, da man ja beim Lexen normalerweise eine "Whitelist" vorgibt (also z.B.: Variablennamen dürfen nur A-Z, a-z und _ enthalten und ab dem 2. Zeichen auch 0-9). Aber ich finde, das brauchst du nicht zu berücksichtigen - das Syntaxhighlighting muss nicht alle Fälle, die der Compiler erlaubt, auch highlighten. 1:0 für dich.

@altmodische Art: Also die Initialisierung von Variablen bei der Deklaration, so wie sie in Blitz3D/Plus/Max vorkommt, ist vielleicht altmodisch, aber auch der einzig korrekte Weg es zu handhaben. Das hat dann nichts mit modern/altmodisch zu tun. Man kann natürlich Sprachen definieren, die das anders handhaben, aber es ist nicht einleuchtend (syntaktisch gesehen) - in dem Punkt gebe ich dem Compiler recht. 1:1 Ausgleich.

@Komma vergessen: Ist eine interessante Geschichte. "Global var1" ist ein gültiges Statement. "var2 = 5" ist auch eines. Wenn du das komma dazwischen vergisst, betrachtet der Compiler das erste Statement als abgeschlossen, was völlig korrekt ist. In Sprachen wie C/C++/C#... würde er jetzt nach einem Strichpunkt suchen, was in Blitz* nicht sinnvoll ist. Man könnte natürlich auf einen Zeilenumbruch prüfen, aber das macht der Compiler offenbar einfach nicht. Ist natürlich nicht schön und ungünstig. In dem Fall musst du schauen, mit welchen Statements das noch geht (also ob blitzcc das allgemein nicht prüft). Wenn ja, dann würde ich es in betracht ziehen, trotzdem es umzusetzen, auch wenn es nicht schön ist.

Ich hab nur BlitzPlus und kein B3D und mein Compiler kompiliert dein Programm nicht wegen "Bananen = 5". Wenn ich die Zeile rausnehme, kriege ich: 0 0 2 4 3.

Viel Erfolg weiterhin! Very Happy

Nicht schlecht ;)

Sonntag, 15. Juni 2014 um 18:40 Uhr von CO2

Hallo,
sieht durchaus vielversprechend aus, weitermachen! Very Happy


Kommentar schreiben

Titel:
Text: