B2J - BlitzBasic zu Java Crosscompiler
Übersicht 

![]() |
Mathias-Kwiatkowski |
![]() |
---|---|---|
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 |
![]() |
---|---|---|
Höchst interessantes Projekt.
Vor ein paar Monaten hatte ich eine ähnliche Idee ![]() 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 |
![]() |
XeresModerator |
![]() |
---|---|---|
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 THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Eingeproggt |
![]() |
---|---|---|
DAK, du machst es einem echt schwer dein projekt zu kommentieren ![]() 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 ![]() 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 |
![]() |
---|---|---|
Das liest man gerne ![]() 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 ![]() Immer schön weiter so und zeig den Leuten was man auf der TU alles lernt ![]() |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Silver_Knee |
![]() |
---|---|---|
Da B+ jetzt frei ist, kannst du dir den Code da ja mal anschauen |
Bobo2040Betreff: Schaut gut aus! |
![]() |
|
---|---|---|
Hi ![]() Sieht ja ganz gut aus und würde mich auch SEHR freuen wenn das Projekt fertig ist ![]() Nur noch ne Frage gibt es eine Demo dazu ? ![]() Mfg Weiter so! |
||
bitro.de |
![]() |
DAK |
![]() |
---|---|---|
Danke, Bobo, für die Lorbeeren^^
Hab mal eine neue Version gemacht, auch mit einer Demo. |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
CO2ehemals "SirMO" |
![]() |
|
---|---|---|
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 ![]() 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 |
![]() |
---|---|---|
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 |
![]() |
---|---|---|
Falls das Projekt noch lebt, hätte ich eine Idee für das "Repeat-Forever": Du könntest einfach until (false) simulieren ![]() |
||
Gewinner der MiniBCC's #11, #13 und #28 |
![]() |
DAK |
![]() |
---|---|---|
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

