Probleme mit Bascom

Gast #47624
Lesenswert?

Naja, so hab ich das dann auch gelöst.

Aber warum ist das so ?

Ich meine in Basic kann man doch sonst auch ohne Probleme
mehrere Variablen z.b. addieren. Oder auch komplexere Operationen
durchführen. (Klammern, ....)


Und bei BASCOM jeden Rechenschritt einzelnd ? Warum ?

Jan
Gast #47625
Lesenswert?

Sicher!

Aber Du vergißt, das Bascom ja alle Rechenoperationen wieder in
Maschienensprache wandeln muß.

Und in Assembler kannst Du halt immer nur zwei Zahlen zusammen zählen.

Also orientiert sich Bascom lediglich an dieser Einfachen Grundregel.
(Somit ist auch nachvollziebar, was Bascom hinterher an Hex-Code draus
bastelt.

Gruß
Metty
Gast #47626
Lesenswert?

@Jan:
Der Bascom-Compiler ist in Bezug auf die Sprache nicht so der Hit. Auch
FastAVR hat mich da nicht überzeugt.

In dieser Hinsicht ist z.B. der Gnu C-Compiler wesentlich
leistungsfähiger, auch was Optimierungen auf Sourcecodeebene angeht.

Es kann aber natürlich nicht jeder C und durch die große
Klassenbibliothek macht Bascom die Schwächen in der Sprache locker
wieder wett. Den idealen Compiler (auch finanziell) scheint es leider
nicht zu geben...

Markus
Gast #47628
Lesenswert?

tja so ist das nunmal ... aber eine ordentliche fehlermeldung in bascom
wäre echt hilfreich. ich stand mal vor dem selben problem mit dem
addieren und dachte gleich das wär ein bug.

MfG
formtapez
Gast #47630
Lesenswert?

@thkais:
Mir ist klar, daß z.B. viele Features in C++ relativ "teuer" sind,
deswegen erwarte ich auch keinen ordentlichen C++-Compiler, aber
bereits der Basic-Interpreter im C64 konnte mehrere Zahlen gleichzeitig
addieren. Immerhin läuft der Compiler nicht auf dem AVR, sondern auf
dem PC.

@Andreas:
Das ist wohl "broken as designed". Mir kommt es so vor, als ob
der/die Bascom-Programmierer mehr Ahnung von Microcontrollern als von
Compilerbau haben.

Markus
Gast #47631
Lesenswert?

@Markus
Der Basic Interpreter im C64 dürfte auch wesentlich mehr
Entwicklungszeit hinter sich haben als BASCOM. Ausserdem ist es nur ein
Interpreter. Wenn ich mich nicht irre war der sogar von M$.
Die stärken von Bascom sind meiner Meinung nach auch nicht die perfekte
Übersetzung von Programmen sondern die Unterstützung der AVR
Peripherie. Falls man Basic mag kommt man mit den Macken des Compilers
ganz gut klar. Allerdings sollte man auch alle Informationsquellen
nutzen (Hilfedatei, Mailinglisten usw.).

@Andreas
Dieser "Fehler" ist bereits bekannt. Es wird immer nur eine Anweisung
pro Zeile umgesetzt. Ist allerdings kein Problem weil die
Ketteninstuktionen ebenfalls Stück für Stück umgesetzt werden. Man muss
halt nur ein bischen mehr schreiben.

Gruss
Bernd
Gast #47633
Lesenswert?

@andreas:
Auch das sind zuviele Operatoren.
Wenn ich die Fehlermeldungen richtig deute, dann versucht er hier
irgendwas mit Arrays. Klar - wenn man keine komplexen Ausdrücke hat,
dann braucht man auch keine Klammerung.

@Bernd:
Die (c)-Meldung von M$ kenne ich nur beim C128 (Commodore Basic 7.0),
nicht von den anderen Computern.

Ansonsten muß ich Andreas recht geben. Ein Compiler der mit einem
Compiler-Compiler geschrieben wird, der sollte solche Probleme nicht
haben. Man schreibt einfach mehr oder weniger direkt die BNF-Notation
hin und gut ist.

Markus
Gast #47634
Lesenswert?

gibt es denn foren, groups oder mailinglisten die sich gründlcih mit
bascom-avr beschäftigen? ich hab bei google nichts finden (ausser
dialer seiten..)können......wer kann mir da helfen?
Gast #47636
Lesenswert?

@Markus
Ist zwar lange her aber wenn ich mich richtit entsinne stammen die
Basic Interpreter vom VC20 bis C64 von M$.
Auch Apple (damals im Apple ][) hatte den Interpreter von  M$. Das
wurde zwar nicht ins Handbuch geschrieben, aber die Basic-Tokens waren
teilweise gleich. Damals kannte sowieso niemand M$, wamrum also eine
Meldung ausgeben :-)

@Kai
www.grote.net/Bascom/ ist das Mailarchiv über Bascom. Auf
www.mcselec.com sind einige Links auf Bascom Seiten, teilweise in
Deutsch.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren