Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 31.10.2004, 08:29 Titel: Freebasic compiler 0.01 |
|
|
hallo,
auf die gefahr hin das es jemanden interessiert:
v1ctor (der typ der mit blitz die ugl lib gebastelt hat) hat innerhalb der letzten 2 monate einen 32-bit protected mode basic compiler geschrieben, der qb/vbdos/pb kompatible ist. das ding is zur zeit in einem alpha betta gamma delta stadium, sprich nicht bugfrei. aus diesem grunde gibts hier mal eine vorabversion http://freebasic.bad-logic.com/downloads/freeBASIC_preview.rar
bissi details:
* 32-bit compiler,geschrieben mit vbdos!!! (deswegen zur zeit auf 2000 varnames/funcnames/typenames/constantnames beschränkt, wird sich bald ändern)
* produziert win32 executables
* wunderfeinstens optimiert und schlägt performancemäßig alle anderen basic compiler da draußen
* leichte einbindung von c libs (blitz hat heute gl/glu/glut geportet ich die sdl beides nocht nicht 100% ausgestestet bzw. 100% fertig wegen der 2000 symbols grenze...)
jeder der dazu beitragen möchte diesem compiler ruhm und ehre zu verschaffen, sowie ihn so bugfrei wie möglich zu machen möge sich doch bitte am besten auf forum.bad-logic.com erkundingen im forum compiler coding thread freebasic, dort gibts auch immer die aktuellsten neuigkeiten.
gut,
mario _________________ Yagl - yet another gameprogramming library |
|
Nach oben |
|
|
helium
Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 31.10.2004, 13:44 Titel: |
|
|
Zitat: | * 32-bit compiler,geschrieben mit vbdos!!! (deswegen zur zeit auf 2000 varnames/funcnames/typenames/constantnames beschränkt, wird sich bald ändern) |
OK, Basic ist recht leist zu parsen, ansonsten würde ich ihn für verückt erklären, sowas in vbdos zu machen.
Und das man mehr Bezeichner verwenden können wird, wird dann wohl daran liegen, das sich das Ding dann endlich selbst übersetzt, richtig? |
|
Nach oben |
|
|
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
|
Nach oben |
|
|
Mecki Igel
Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
|
luckyfreddy
Anmeldungsdatum: 02.09.2004 Beiträge: 78 Wohnort: Erkrath-Hochdahl (b. Düsseldorf)
|
Verfasst am: 01.11.2004, 05:44 Titel: |
|
|
Hört sich ja durchaus gut an
Die Frage ist wann eine gute IDE dazukommt, denn dann dürften auch PC-Zeitschriften an dem Ding interesse zeigen und damit schon für die bekanntheit sorgen
Von wegen Performance wollte ich noch sagen:
ptc_test.exe lässt mit dieser "leichten" Aufgabe meinen P2-350MHz auf 100% Prozessorauslastung laufen :-/
Nur die 8KB-Dateigröße sind unschlagbar _________________ Gegen Kummer, Angst und Depressionen: Kummerboard.com
Freiwillige Helfer sind gern gesehen! Alles ehrenamtlich! |
|
Nach oben |
|
|
Blitz Gast
|
Verfasst am: 01.11.2004, 07:31 Titel: |
|
|
Hey helium, parse this a(b).c.d(e).f->g.h(i,j,k)(arg1,arg2,arg3) |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
|
helium
Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 01.11.2004, 19:25 Titel: |
|
|
Zitat: | Die Frage ist wann eine gute IDE dazukommt, denn dann dürften auch PC-Zeitschriften an dem Ding interesse zeigen und damit schon für die bekanntheit sorgen |
Glaubst du? Und wie kommst du darauf? Ich meine es gibt genügend andere Sprachen mt guten IDEs, die kaum einer kennt.
Zitat: | Hey helium, parse this a(b).c.d(e).f->g.h(i,j,k)(arg1,arg2,arg3) |
Verstehe ich jetzt nicht ganz
Soll ich sagen, das V1ctor generell verrückt ist? Oder was willst du erreichen.
Natürlich hätte ich soetwas nie und nimmer in VB-DOS gemacht, sondern in O'Caml, aber wenn er das toll findet, sowas in VB-DOS zu machen, ist das doch nicht mein Problem.
Ich habe des weiteren nie Behauptet, das es eine generell einfache Aufgabe ist, dennoch ist das Parsen von Basic-Code in der Regel deutlich leichter, als das vieler anderer Sprachen, insbesondere C++ (man denke an Template-Code).
Also, ich würde sagen: da wird eine Funktion 'a' mit dem Argument 'b' aufgerufen. Die leifert eine Struktur, mit einem Element 'c'. Diese ist wiederum eine Struktur, die eine Funktion (Methode) namens 'd' enthält, die mit einem Argument 'e' aufgerufen wird, die eine Struktur liefert, die einen Zeiger namens 'f' enthält. Der verweist auf etwas, das ein Element 'g' enthält, das wiederum eine Struktur ist, die eine Funktion 'h' enthält, die mit den Argumente 'i', 'j' und 'k' aufgerufen wird und selbst eine Funktion zurückgibt (also eine Funktion höherer Ordnung ist), die dann mit den Argumenten 'arg1', 'arg2' und 'arg3' aufgerufen wird. Selbstverständlich muss es sich nicht Zwangsläufig bei allem, was ich als Funktion bezeichnet habe auch um eine Funktion handeln, sondern kann auch etwas sein, das sie wie eine Funktion aufrufen lässt (in C++ Funktoren genannt). _________________ Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit. |
|
Nach oben |
|
|
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 02.11.2004, 12:41 Titel: |
|
|
wie bereits gestern im irc channel diskutiert is basic bei weitem nicht einfach zu parsen, aber das soll hier nicht gegenstand der diskussion sein...
wieso würdest du O'Calm verwenden? wo liegt da der vorteil?
und ja v1ctor is verrückt... der grund warum er vbdos als seine zielsprache verwendet hat ist, dass die syntax der von freebasic am nächsten kommt, und daher das selbstkompilieren des compilers am einfachsten ist.
sou.... _________________ Yagl - yet another gameprogramming library |
|
Nach oben |
|
|
helium
Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 02.11.2004, 21:00 Titel: |
|
|
Zitat: |
wieso würdest du O'Calm verwenden? wo liegt da der vorteil?
|
Weil ich mit den Discriminated Unions die EBNF-Synthax fast eins zu eins in mein Programm bauen kann und dank Patternmatchings auch auf einfache Art bearbeiten kann. O'Caml hat eigene LeX und Yacc Tools, die es wohl kaum hätte, wenn die Sprache nicht für diese Aufgabe geeignet wäre.
Allgemein ist das Arbeiten mit jeglicher Art von rekursiven Strukturen in O'caml recht angenehm (im Gegensatz zu allen Basics und C-Abkömmlingen, von denen ich gehört habe, JMatch mal ausgenommen) und beim Parsen entstehen nunmal rekursive Strukturen.
Zitat: | und ja v1ctor is verrückt... der grund warum er vbdos als seine zielsprache verwendet hat ist, dass die syntax der von freebasic am nächsten kommt, und daher das selbstkompilieren des compilers am einfachsten ist. |
Klingt für mich nach einer vollkommen rationalen, vernüpftigen Begründung und nicht danach, als sei er verrückt. _________________ Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit. |
|
Nach oben |
|
|
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 03.11.2004, 08:49 Titel: |
|
|
@helium was auch immer...
hab heute nacht schnell einen kleinen preprozessor geschrieben, wer interesse hat den auszutesten:
http://ratatoskr.bad-logic.com/temp/pp.zip
folgendes wird angeboten
* '$include: 'FILENAME' -> binde FILENAME in die aktuelle datei ein
* '$define -> definiere ein SYMBOL
* '$ifdef / ifndef SYMBOL -> falls das symbol definiert / nicht definiert ist schreibe alles im nächsten block in das outputfile
* '$else -> sollte die bedingung nicht zu getroffen haben schreiben den block nach dem else in das output file
* '$endif -> if block abschließen
mehr is es derzeit nicht, aber doch genug um bedingte kompilierung und include guards zu realisieren. if blöcke können so oft verschachtelt werden wie es dem user beliebt. als ergebnis spuckt der pp ein file namens output.txt aus in dem dann alles drinnen stehen sollte was reingehört (includefiles, blöcke etc.)
aufgerufen wird das ding so:
tokenizer FILENAME
jo das wärs, ich verbiete mir jeglichen kommentar zum code und zur wahl der programmiersprache _________________ Yagl - yet another gameprogramming library |
|
Nach oben |
|
|
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 05.11.2004, 06:54 Titel: |
|
|
luckyfreddy hat Folgendes geschrieben: |
Von wegen Performance wollte ich noch sagen:
ptc_test.exe lässt mit dieser "leichten" Aufgabe meinen P2-350MHz auf 100% Prozessorauslastung laufen :-/
Nur die 8KB-Dateigröße sind unschlagbar |
hehe die prozessorauslastung hat aber wirklich gar nix mit der performance zu tun gell _________________ Yagl - yet another gameprogramming library |
|
Nach oben |
|
|
helium
Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 05.11.2004, 12:10 Titel: |
|
|
Bin greade nicht zuhause, werde es mir aber ansehen.
Ansonsten: wirkt der Beschreibung nach wie der C-Präprozessor. Vielleicht mal Stoustrups Proposal zu dem Thema (#scope, ...) ansehen? _________________ Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit. |
|
Nach oben |
|
|
Gast
|
|
Nach oben |
|
|
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 06.11.2004, 19:17 Titel: |
|
|
btw, die commands san case-sensitive und müssen so ausschaun
'$include: 'XXX'
'$define VALUENAME VALUE wobei man VALUE auch weglassen kann, strings als values müssen in anführungszeichen gesetzt werden z.B.:
'$define VALUENAME "value"
'$ifdef
'$ifndef
'$else
'$endif
guti... _________________ Yagl - yet another gameprogramming library |
|
Nach oben |
|
|
|