BlitzBasicScript

Gehe zu Seite 1, 2  Weiter

Worklogs BlitzBasicScript Kommentare

Donnerstag, 19. März 2020 um 22:07 Uhr von Spark Fountain

@DAK: Mit Compilergeneratoren hab ich mich bislang noch nicht näher beschäftigt, ehrlich gesagt. Wäre aber vielleicht wirklich mal eine gute Idee, um nicht alles selbst machen zu müssen. Jetzt hab ich ja auch viel Zeit für sowas, dank Corona-Virus :/

Montag, 16. März 2020 um 10:17 Uhr von DAK

Hast du dir eigentlich schon mal Compilergeneratoren angeschaut? Das sind Programmiersprachen in denen man recht leicht Programmiersprachen generieren kann. Ich hab mal ein bisschen mit JavaCC gearbeitet. Dabei definiert man nur die Grammatik der Sprache und was equivalent zu was ist. Der Parser wird dann automatisch vom Compilergenerator erzeugt. Wenn du vor hast von neuem anzufangen, dann könnte dir sowas eventuell viel Arbeit abnehmen.

Mittwoch, 11. März 2020 um 15:39 Uhr von Spark Fountain

@DAK: Das stimmt, den Gedanken hatte ich bereits. Aber dann würde ich in puncto Programmiersprache nochmal von vorne anfangen und bei meinen Zeitplänen würde ich dann leider niemals fertig werden. So hoffe ich, dass ich zumindest etwas Brauchbares hinbekommen werde Smile

Mittwoch, 4. März 2020 um 09:57 Uhr von DAK

Wasm wäre eigentlich ziemlich gut tauglich für BlitzBasicScript. Wäre aber sicher noch mal deutlich komplizierter.

Montag, 3. Februar 2020 um 09:00 Uhr von Spark Fountain

@Jan_: Stimmt, der Code auf der Startseite ist auch mehr als Platzhalter gedacht, damit man ein typisches Game-Code-Beispiel sieht, das natürlich später auch mal funktionieren soll.

Momentan ist der Parser jedoch noch sehr eingeschränkt und kann (im Moment) noch nicht mal globale Variablen anlegen und beschreiben / auslesen. Gerade bin ich dabei, dem Parser beizubringen wie man Ausdrücke ("mathematische Terme") analysiert. Das ist für mich gerade eine ganz ordentliche Nuss, weshalb ich auch Codebeispiele aus dem Netz zu Rate ziehe.

Getestet

Sonntag, 2. Februar 2020 um 08:25 Uhr von Jan_

Hallo, dein hier geposteter Code funktioniert, das Beispiel voin der Startpage leider nicht :-/
Sieht aber viel versprechend aus!

Sonntag, 4. August 2019 um 11:23 Uhr von Fobsi

cooles projekt

Webassembly

Samstag, 11. Mai 2019 um 09:00 Uhr von DivineDominion

RE: MainLoop, kannst du nicht auch einfach einen "Callback" voraussetzen? Also statt es zu einem Keyword zu deklarieren, muss man in BBScript eine Hauptfunktion implementieren.

Code: [AUSKLAPPEN]


Function MainLoop(delta#)
    ...
End Function


Dann kann man in BB, sofern kompatibel, eine eigene main.bb schreiben, die die Schleife ausführt und die Funktion selber aufruft, während du diesen main-loop-wrapper halt als Teil vom Framework lieferst.

Super.

Donnerstag, 9. Mai 2019 um 16:57 Uhr von Matthias

Ich finde dein Projeckt echt Super.

Und ich hoffe du bleibst dran. Auch wenn es mal schwierig wird.

Als Tipp.
Kaum jemand will seine alten BlitzBasic Programme 1:1 konvertieren.
Deshalb mach es so wie es für dich am besten zu programmieren ist.

Ich bin gespannt wie du Types und Listen umsetzt.
Ich bleibe auch dran. Jedenfalls beim lesen. Smile

Montag, 21. Januar 2019 um 12:21 Uhr von DAK

Starke, bzw. schwache Typisierung hat leider keine richtige Definition. Eine Definition für Starke Typisierung ist z.B. keine impliziten Konvertierungen. Eine andere Definition ist die statische Typisierung.

Um das also auf besser definierte Worte zu stellen: BB hat implizite Konvertierungen (z.B. "3"+4 => "34", oder i = "34" ergibt eine Konvertierung des Strings auf int), aber eine statische Typisierung (da jede Variable fix und unänderbar einen Typ hat, und dieser Typ dauerhaft so bleibt). JS hat auch implizite Konvertierung aber dynamische Typisierung, da einer Variable Werte unterschiedlichen Typs zugewiesen werden dürfen.

BB hat (ähnlich wie JS) ziemlich blöde Umwandlungsregeln. So wird beim Cast auf int "10" auch 10 (wie erwartet), aber "0x10" ergibt 0, genauso wie "A10" oder "True" (beim ersten Fall könnte man hoffen das BB Hex unterstützt, beim zweiten Fall könnte Blitz alle nicht-numerischen Werte strippen, beim dritten Fall könnte Blitz "True" als True also 1 behandeln.). Auch sinnvoll möglich wäre hier eine Exception, die sagt, dass der Wert nicht umgewandelt werden hat können, aber es gibt in BB ja auch keine Exceptions, also that's that.

Wenn da BBS mit BB kompatibel sein soll, dann müsste man all den Schwachsinn da auch mit rein nehmen. In JS verhält sich das nämlich anders. Auch gibt es in JS auch echte Booleans (true und false) im Gegensatz zu BB, wo True==1 und False==0 und beides einfach als Int behandelt wird.

Gehe zu Seite 1, 2  Weiter


Kommentar schreiben

Titel:
Text: