Forum: Mikrocontroller und Digitale Elektronik DDS Basic Interpreter


von chris (Gast)


Lesenswert?

Kennt jemand den DDS-Basic Interpreter?

Wenn ich es richtig verstehe ist folgendes C-Programm ein vollständiger 
Basic-Interpreter:

http://cis.csuohio.edu/~somos/ddsbasic.c

Erstaunlich, oder? Der ließe sich wohl recht einfach auf einen 
AVR-compilieren.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

chris schrieb:
> Erstaunlich, oder?
Und wohin dann mit dem BASCI-Programm?

> Der ließe sich wohl recht einfach auf einen AVR-compilieren.
Du mußt dafür nur eben mal ein Filesystem implementieren:
1
 ... fprintf(f,I) ...
2
 ... while(fgets(B,R,f) ...
Und auch das ist eher bedenklich:
1
 ... malloc(strlen(p)) ...

von Karl H. (kbuchegg)


Lesenswert?

Und das

>    Error checking / error reports:
>
>        No error checking is performed.
>        The message `core dumped' signifies a syntax or semantic error.

ist auch nicht so prickelnd.



(Und ja, ich hab schon verstanden, dass das vom TO als Joke gedacht war)

von Rene B. (themason) Benutzerseite


Lesenswert?

@chris

Schau mal hier unter dem Artikel AVR-Basic bzw uBasic. Das ist ein 
Basic-Projekt für den AVR, basierend auf dem Basic von Adam Dunkels. Das 
ist ebenfalls sehr klein, aber leichter zu verstehen und auch leichter 
zu portieren. Das Projekt hat mehrere Mitstreiter, von denen jeder 
allerdings seinen eigenen Zweig erstellt hat. Es gibt Optimierungen für 
Platz und/oder Geschwindigkeit. Sogar ein "Compiler" für das Basic der 
direkt auf einem AVR läuft (muß mal wieder Werbung machen :-)) plus div. 
andere Features.

Beitrag "Basic-Interpreter auf einem AVR"

http://www.mikrocontroller.net/articles/AVR_BASIC

Edit: Na ja. Den Joke hab ich nicht verstanden, obwohl das Listing ja 
schon sehr "rechteckig" und ein "wenig" kryptisch aussieht.

von Uwe B. (boerge) Benutzerseite


Lesenswert?

MoinMoin,

Rene Böllhoff schrieb:
> Schau mal hier unter dem Artikel AVR-Basic bzw uBasic. Das ist ein
> Basic-Projekt für den AVR, basierend auf dem Basic von Adam Dunkels. Das
> ist ebenfalls sehr klein, aber leichter zu verstehen und auch leichter
> zu portieren. Das Projekt hat mehrere Mitstreiter, von denen jeder
> allerdings seinen eigenen Zweig erstellt hat. Es gibt Optimierungen für
> Platz und/oder Geschwindigkeit. Sogar ein "Compiler" für das Basic der
> direkt auf einem AVR läuft (muß mal wieder Werbung machen :-)) plus div.
> andere Features.

stimmt, wollte ich auch gerade anmerken...

Nebenbei, von meinem "Entwicklungszweig" (der platzoptimierte 
Interpreter...) wird es demnächst ein Update geben. Ich bin gerade an 
zwei Sachen dran:

- "Basic-Syntax-Normalisierung"...: ich hatte mich mal letztens an alte 
Informatikgrundlagen (Compiler-/Interpreterbau) erinnert und den, von 
mir realisierten, Basic-Syntax in Backus-Naur-Notation aufgeschrieben. 
Dabei sind mir einige Dinge aufgefallen die zum einen nicht rund und zum 
anderen etwas unterschiedlich zu TinyBasic waren. Diese 
Unzulänglichkeiten habe ich jetzt behoben.

-Z.Z. bin ich dran den Parser (Tokenizer) so zu verallgemeinern, dass er 
den Basic-Quelltext von beliebigen Medien einlesen kann. In Rene's 
Version ist das zwar schon enthalten, passt aber nicht ganz zu meinen 
Wunschvorstellungen, wie es aussehen soll. (Aber ein paar nette 
Anregungen habe ich daraus gezogen...).

Grüße Uwe

von MaWin (Gast)


Angehängte Dateien:

Lesenswert?

> ein vollständiger Basic-Interpreter:

Ohne Fehlermeldungen.

Er behandelt korrekte Programme (dieses stark reduzierten 
Basic-Dialekts)
richtig, aber fehlerhafte werden nicht angemeckert sondern "merkwürdig" 
abgearbeitet.

Zudem frisst das Ding Speicher ohne Ende, mit einem kleinen AVR wird das 
also nichts.

Beigefügt ist auch ein Basic-Interpreter in Basic selbst der, wie ich 
finde, etwas eleganter formuliert ist.

von chris (Gast)


Lesenswert?

Ich habe den schon mehrfach verwendet, auch als token-generator für uC, 
mit 4 bit tokens, aber nicht in der "obfuscated" form.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.