Forum: Mikrocontroller und Digitale Elektronik mbeddr - schonmal angeschaut?


von Bernd K. (prof7bit)


Lesenswert?

Hallo,

Hat sich irgendwer hier schonmal http://mbeddr.com/ angeschaut oder 
damit rumgespielt?

Was ich interessant finde ist das Konzept nicht den Quelltext sondern 
den AST direkt zu bearbeiten, und zwar in einer Sprache die rein optisch 
immer noch so ähnlich wie C aussieht

https://www.youtube.com/watch?v=NenPFYK0TPM#t=12

Ich meine, OK, das allein reißt es jetzt noch nicht raus, so ziemlich 
jede IDE parst den Syntaxbaum zumindest so weit daß sie kontextsensitive 
Vorschläge machen kann und zumindest einige Fehler gleich bei der 
Eingabe anstreichen kann, aber das geht halt wirklich konsequent bis zum 
nächsten Level, verbietet jegliche Typfehler schon beim Tippen und 
eröffnet dann auch noch ganz andere zusätzliche Möglichkeiten:

https://www.youtube.com/watch?v=Pe34U9QuhXA
https://www.youtube.com/watch?v=aJ8d7ISFat4

Und zum Beispiel sowas wie das finde ich auch extrem nützlich:
https://www.youtube.com/watch?v=Jcby0mqk1pY

Und angeblich wird ganz normaler C Code daraus generiert der angeblich 
keinen Laufzeit-Overhead hat und sich dann direkt mit dem Cross-Compiler 
für den jeweiligen Controller übersetzen lassen soll.

Es soll angeblich folgende Probleme lösen wenn ich nach kurzem 
Überfliegen die Philosophie richtig verstanden habe, folgende Thesen:

* Nichtvorhandensein jedweder Typsicherheit in normalem C99 ist 
gefährlich
* Darin geschriebene Programme sind nicht formal verifizierbar
* C Präprozessor ist noch gefährlicher als reines C und skaliert auch 
nicht für große Projekte
* C++ Template-Metaprogramming macht auch keinen Spaß
* Idiotensichere und skalierbare Abstraktions-Schichten in den oben 
genannten Sprachen und auch in allen anderen Sprachen implizieren einen 
großen Laufzeit-Overhead und Bloat der nicht akzeptabel ist für viele 
Embedded Projekte mit notorisch knappen Ressourcen.

mbeddr will angeblich alle diese Probleme lösen und noch viel mehr. Tut 
es das wirklich? Zumindest ist es mal eine komplett andere 
Herangehensweise als das meiste andere und insofern finde ich es 
grundsätzlich interessant. Erstaunlicherweise finde ich zum Stichwort 
"mbeddr" in diesem Forum mit der Suchfunktion nicht eine einzige 
Erwähnung, obwohl man sich hier schon trefflich über die 
(Un-)Geeignetheit von allen möglichen (konventionellen) C-Alternativen 
für die Mikrocontroller-Programmierung gestritten hat.

Hat das also schonmal jemand näher evaluiert? Mit wieviel Frust muss man 
rechnen bis man die Einstiegshürde überwunden hat und der Controller 
meines Vertrauens (einsatzbereite C-Toolchain vorausgesetzt) zum ersten 
Mal mittels mbeddr eine LED blinken lässt? Hat das schonmal jemand 
durchgespielt oder gibt es Gründe das sofort wieder zu vergessen?

von W.S. (Gast)


Lesenswert?

Ich halte es für reinen Mumpitz.

Wenn jemand kein C kann, dann sollte er es eben lernen.

Alternativ kann man sich fragen, ob es keine echten Alternativen zu C 
für die betreffende Zielplattform gibt.

Das Ganze ist also wieder mal ein untauglicher Versuch, unter 
Beibehaltung von C sich um C drumherum zu mogeln. Wasch mich, aber mach 
mich nicht naß.

W.S.

von Bernd K. (prof7bit)


Lesenswert?

W.S. schrieb:
> Ich halte es für reinen Mumpitz.
> Wenn jemand kein C kann, dann sollte er es eben lernen.

So eine ausführliche Antwort habe ich jetzt nicht erwartet.

Aber das ergibt natürlich Sinn: Durch Lernen von C wird die Sprache 
automatisch typsicher und verifizierbar denn Menschen die C gelernt 
haben machen keine Fehler mehr, da fällt dann auch versehentlich kein 
case mehr durch, da rutscht auch kein if ohne {} mehr in die falsche 
Zeile. Das muss man dann auch nicht mehr formal verifizieren, der gute 
Name des Autors allein ist dann schon Zertifikat genug. Das leuchtet 
ein.

> Alternativ kann man sich fragen, ob es keine echten Alternativen zu C
> für die betreffende Zielplattform gibt.

Aber genau das will es doch sein? Ich täte mich jetzt echt schwer aus 
dem Bauch raus eine real existierende Sprache außerhalb des 
Elfenbeinturms zu nennen die auch nur ansatzweise so "alternativ" wäre 
wie dieses hier auf allen Ebenen andere (wirklich komplett andere!) 
"Etwas" (das ist ja nicht nur eine andere Sprache sondern auch gleich 
noch eine andere Art zu programmieren). Alternativer gehts doch schon 
bald gar nicht mehr?

Oder ist das jetzt schon wieder zu alternativ?

Ich finds auf jeden Fall spannend, ich glaub ich werd mir das mal bei 
Gelegenheit näher anschauen. Vielleicht stell ich dann fest daß es in 
der Praxis (noch) nicht vernünftig zu handhaben ist, vielleicht aber 
auch daß es sehr wohl funktioniert. Mal schaun.

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.