BlueBasic Compiler

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Worklogs BlueBasic Compiler Kommentare

Samstag, 5. Juni 2010 um 16:11 Uhr von Noobody

Zitat:

Außerdem habe ich eine Theorie aufgestellt und zwar darüber, wieso BB Variablen, die zum ersten Mal benutzt werden,
deklariert.

BB ist insgesamt eher an Anfänger gerichtet, daher wollte Mark vermutlich auf eine am Anfang verwirrende zwingende Deklaration verzichten. "Man braucht eine Variable? Einfach benutzen und gut ist!" war vermutlich seine Idee Razz

Zitat:
ich habe keine Ahnung was blitzcc macht - ich bleibe bei meiner Theorie, die besagt, dass BlitzBasic NICHT kompiliert wird

Natürlich wird BB kompiliert! Einfach direkt nach ASM und nicht über C.

Zitat:
Zumindest, wenn man nach C kompiliert ist es viel einfacher wenn man einfach alles deklariert,
was einem in den Weg kommt.

Eigentlich ist eher das Gegenteil der Fall. Wenn man strikt deklarieren muss, dann muss der Compiler nur nach Local oder Global mit neuen Variablen rechnen. Trifft er irgendwo auf einen Bezeichner, den er nicht kennt, ist nur ein Fehler auszugeben und abzubrechen. Bei der Autodeklaration hingegen muss er bei jedem Bezeichner, der angetroffen wird, prüfen, ob dieser schon existiert, und ihn zu den existierenden Variablen hinzufügen, wenn er das nicht tut. Das ist einer der Gründe, warum BB mühsam zu parsen ist - ständig muss man mit neuen Variablen rechnen.

Abgesehen davon darf man nicht davon ausgehen, dass die Syntax einer Sprache nach dem Kriterium "möglichst einfach zu kompilieren" entwickelt wird. Man hat hier nicht mit einem Hobby-Entwickler zu tun, der komplizierte Features nicht in seine Sprache implementiert, weil er zu faul ist, komplizierteren Code zu parsen, sondern mit jemandem, der über ein Jahr oder länger die Sprache entwickelt, um am Ende damit seinen Lebensunterhalt zu verdienen Wink

Sonntag, 25. April 2010 um 19:26 Uhr von Thunder

Weil ich C++ nur "flüchtig" kann(also über bestimmte C++-typische Konstrukte wenig bis nichts weiß) und nach C kompilieren sowieso schon ineffizient genug ist.
Ich habe zwar ein C/C++ Kompendium, aber den C++ Teil nur überflogen, da mich die OOP nicht sonderlich interessiert.
Allerdings finde ich, dass der Umstieg auf C gut ist, da alles plattformunabhängig ist und gcc auf jeder Linux-Distribution die ich kenne vorinstalliert ist - man müsste also nicht g++ runterladen.

Sonntag, 25. April 2010 um 18:42 Uhr von flona

Wegen den "optionalen Parametern" (Default-Parameter): Warum steigst du nicht einfach auf C++ um?

Donnerstag, 22. April 2010 um 22:13 Uhr von Thunder

Vielen Dank!
Ist jetzt auf der gedanklichen ToDo-List ganz oben. Werde es wahrscheinlich morgen umsetzen (kommt darauf an, wieviele Komplikationen es noch geben wird).

mfg Thunder

Grad vs. Bogenmaß

Donnerstag, 22. April 2010 um 22:09 Uhr von D2006

Der Unterschied liegt darin, dass BlitzBasic mit Grad rechnet, in anderen Programmiersprachen allerdings Bogenmaß benutzt wird. Das müsstest du für volle Kompatibilität also in der externen Funktion noch umrechen.

Donnerstag, 22. April 2010 um 20:37 Uhr von Silver_Knee

Wie kann denn ein Operator Singed sein? wenn das erste bit 1 ist is es negativ wenn net net... wo ist denn das problem?

Donnerstag, 22. April 2010 um 18:36 Uhr von Entenfels

Klingt gut!

Samstag, 10. April 2010 um 22:33 Uhr von Thunder

Inwieweit man sie genau übernehmen kann sehe ich mir genau an, wenn ich den Matheparser neuschreibe. Danke aber für den Tipp mit logischen Operationen.
Allerdings sollte es irrelevant sein, weil diese nach der Operation wieder in signed umgewandelt werden.

Samstag, 10. April 2010 um 17:26 Uhr von Chester

Kann man mathematische Ausdrücke nicht einfach übernehmen? C kennt doch auch fast alle Rechenoperatoren außer Potenzen?

Allerdings würde in C dein Code nicht funktionieren, weil alle OR-Operator in C Unsigned arbeiten.

Ansonsten weiter so Wink

Freitag, 2. April 2010 um 16:27 Uhr von Chester

Klingt wirklich sehr interessant das ganze. Hoffe daraus wird was Wink

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter


Kommentar schreiben

Titel:
Text: