B2J - BlitzBasic zu Java Crosscompiler

Übersicht Kommentare Worklogs


Mathias-Kwiatkowski

Link zu diesem BeitragSa, Okt 19, 2013 20:26
also interessant ist es auf jeden
Skype: Anarchie1984
http://projektworks.de/maxbase/
Icq - Erneuert am 21.08.2017
Yahoo - Erneuert am 21.08.2017

Addi

Link zu diesem BeitragSo, Okt 20, 2013 16:43
Höchst interessantes Projekt.
Vor ein paar Monaten hatte ich eine ähnliche Idee Very Happy, hatte aber nie Zeit sie umzusetzen.
Was mich interessieren würde:

- Was für einen Parser (recursive descent, oder die bottom up variante) benutzt du und
schreibst du diesen selbst oder hast du ihn generieren lassen.
BP/B3D/BMax : Lerne Java : Früher mal Lite-C : Gewinner BCC 62

Xeres

Moderator

Link zu diesem BeitragMo, Okt 21, 2013 15:19
Diese Entscheidungen invalidieren sehr viele BB Quelltexte... wenn man die erst händisch konvertieren/umschreiben muss, sehe ich keinen Sinn in einem Crosscompiler. Keine Ahnung ob es sinnvoller ist, spezielle Regeln von Anfang an ein zu bauen, aber in dem Endprodukt sollten sie enthalten sein.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Eingeproggt

Link zu diesem BeitragMo, Okt 21, 2013 16:12
DAK, du machst es einem echt schwer dein projekt zu kommentieren Razz
Zum einen isses natürlich eine super Idee und ich freu mich dass es mal wieder ein interessantes Worklog gibt.
Zum anderen ist die Sache doch nur dann wirklich nützlich, wenn sie 2 Dinge erfüllt die im Moment ja noch in den Sternen stehen bzw. sehr fragwürdig sind:
Nämlich 1.) Man wie Xeres schon schrieb wirklich "sorgenfrei" seinen BB-Code rein schießen kann, mit all dem Wirrsinn den BB mit sich bringt.
und 2.) es volle Unterstützung für all die Dinge gibt wegen denen man anfängt mit BB zu arbeiten. Und damit meine ich nicht "Hello World" sondern richtig hübsche (und einfache) Graphik Wink

Aber du hast ja grad erst angefangen und da kann ich mich ja noch hoffnungsvoll zeigen - Weiter so!

mfG, Christoph
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Eingeproggt

Link zu diesem BeitragDi, Okt 29, 2013 00:19
Das liest man gerne Smile
Aber du musst mir verzeihen, dass ich die Demo NOCH nicht ausprobier. Mehr oder weniger aus Zeitgründen. Aber auch ein wenig psychologisch... Ich denke es wird mich mehr umhauen je länger ich warte Very Happy

Immer schön weiter so und zeig den Leuten was man auf der TU alles lernt Very Happy
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Silver_Knee

Link zu diesem BeitragMo, Mai 19, 2014 10:00
Da B+ jetzt frei ist, kannst du dir den Code da ja mal anschauen
 

Bobo2040

Betreff: Schaut gut aus!

Link zu diesem BeitragSo, Aug 10, 2014 21:07
Hi Smile
Sieht ja ganz gut aus und würde mich auch SEHR freuen wenn das Projekt fertig ist Smile
Nur noch ne Frage gibt es eine Demo dazu ? Smile

Mfg

Weiter so!
bitro.de

DAK

Link zu diesem BeitragDi, Aug 12, 2014 18:48
Danke, Bobo, für die Lorbeeren^^

Hab mal eine neue Version gemacht, auch mit einer Demo.
Gewinner der 6. und der 68. BlitzCodeCompo
 

CO2

ehemals "SirMO"

Link zu diesem BeitragDi, Aug 12, 2014 20:44
Höchstinteressantes Projekt... Auf jeden Fall weitermachen (bitte)!

Nur müsstest du mal gucken, weil folgendes Resultat schon ein wenig "seltsam" ist (Ich weiß, du hast geschrieben, man soll sich das Ergebnis nicht angucken, konnte mich aber nicht zurückhalten Wink):
Code: [AUSKLAPPEN]
if (true)
{
   while (((1)!=0))
   {
                // Hauptschleife
        }
}
// Ende der main()


mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

DAK

Link zu diesem BeitragMi, Aug 13, 2014 07:00
Das hat alles seinen Sinn, wenn man es aus Compilersicht sieht.

In Java ist "unreacheable code" ein Error, der das Kompilieren verhindert. Wenn man also hat

Code: [AUSKLAPPEN]
void foo() {
    x = 5;
    return;
    System.out.println(x)
}


dann lässt sich das Programm nicht kompilieren, weil der Code nach return nicht erreichbar ist. Das Gleiche zählt für Code, der aufgrund einer endlosen While- oder For-Schleife nicht erreichbar ist. Das heißt, wenn nach der Hauptschleife noch was kommen würde, dann würde es nicht kompilieren können.
Die einzige Ausnahme zu der Regel ist ein "if (true)". Bei "if (true)" tut der Compiler so, als könnte das true auch false sein, und geht beide Wege. Das heißt, wenn die Endlosschleife durch ein "if (true)" eingeklammert wird, dann erlaubt der Java-Compiler das kompilieren.

Das "while (((1)!=0))" schaut auch ein bisschen seltsam aus, kommt aber daher, dass Blitz keinen Boolean-Variablentyp kennt, und stattdessen ein int<>0 für true, und ein int=0 für false nimmt. Java, auf der anderen Seite, macht das nicht mit. Hier muss in einer Bedingung auch wirklich ein Boolean-Wert stehen. Das heißt, "while (1)" würde Java nicht zulassen, da 1 ein int und kein boolean ist. Deswegen wird bei Bedingungen der Inhalt immer auf Boolean umgewandelt. Bei einem int heißt das, dass ich es mit "!=0" vergleichen muss, um einen Boolean-Wert zu erhalten.
Die liberale Klammersetzung ist dafür da, dass der Code auch wirklich das tut, was ich will. In diesem Beispiel wären einige der Klammern unnötig, in anderen aber nicht. Außerdem ignoriert der Java-Compiler unnötige Klammern ohnehin, weswegen ich lieber zu viele Klammern setze als zu wenige.

Wie gesagt, aus Sicht einer maschinellen Übersetzung macht es alles Sinn, da somit Grenzfälle abgedeckt werden. Um den Code dann händisch weiter zu verwenden oder daraus zu lernen aber eher nicht.
Gewinner der 6. und der 68. BlitzCodeCompo

Spark Fountain

Link zu diesem BeitragMi, Dez 16, 2015 13:04
Falls das Projekt noch lebt, hätte ich eine Idee für das "Repeat-Forever": Du könntest einfach until (false) simulieren Wink
Gewinner der MiniBCC's #11, #13 und #28

DAK

Link zu diesem BeitragMi, Dez 16, 2015 19:07
Nein, lebt wohl nicht mehr... Hab doch zu viel zu tun, um das Ganze wirklich am Leben zu erhalten.

Das Repeat-Forever war nur noch nicht drin, weil ich es vergessen gehabt hab, und es mir erst wieder eingefallen ist, wie ich den Post geschrieben habe.
Hmm, eventuell hol ich den Code wieder raus und schau, was ich damit mach, wenn's wen interessiert.
Gewinner der 6. und der 68. BlitzCodeCompo


Übersicht Kommentare Worklogs