Gibt es einen Formelparser für C (Arduino)

Gast #5570138
Lesenswert?

Da ich mindestens 25 J. kein C programmiert habe, ist einiges in 
Vergessenheit geraten. Zum Auffrischen der Arbeitsweise der Operatoren 
würde ich mir eine Art Formelparser wünschen. Gibt es sowas?

Wo man z.B. eingibt:
1
a |= (1 << 2)
und der Inhalt von a dann angezeigt wird.

Natürlich könnte ich das auch über die Arduino IDE machen. Also den Code 
in den Arduino laden und das Ergebnis auf dem seriellen Monitor anzeigen 
lassen. Ist aber nicht sehr effizient.
Gast #5570139
Lesenswert?

Man kann C tatsaechlich auch fuer Windows oder Linux uebersetzen...

Unter Linux hast Du den GCC meist direkt an Board, unter Windows kannst 
Du z.B. MingGW nehmen (auch der GCC).
Gast #5570140
Lesenswert?

Unter Linux:
1
### c() { echo "main(){int a;$1;printf(\"$1  -> a=%d\n\",a);}" | gcc -xc -w - && ./a.out; }
2
### c "a=128; a |= (1<<2)"
3
a=128; a |= (1<<2)   -> a=132
4
### c "a=255; a &= ~(1<<2)"
5
a=255; a &= ~(1<<2)   -> a=251
Gast #5570196
Lesenswert?

Entweder Online-C (JDoodle, oder sehr schön auch https://tio.run/ für 
alle möglichen Programmiersprachen), oder was ich gerne mache: 
Code::Blocks.

Ist ne einfache und kompakte IDE für C, die ich nutze, um schnell mal 
was auszuprobieren, bevor ich es ständig aufn Controller schubsen und 
mir das Debugging seriell angucken muss.
Gast #5570538
Lesenswert?

Danke für die Tipps. Hatte leider vergessen zu schreiben, dass ich weder 
C noch Linux griffbereit installiert habe :( MingGW/GCC ließ sich nicht 
installieren bzw. die Serververbindung brach beim Download immer wieder 
ab.

Mir fiel gestern dann noch ein, dass es früher im C-Editor so ein 
Evaluate-Fenster gab. Bei der "nur" 400 MB großen Arduino-DE ein 
Evaluate-Tool zu vermuten, wäre wohl vermessen. Es gibt natürlich auch 
keins. Für popelige 400 MB wäre kann man das auch gar nicht verlangen.

Doch ihr werdet es nicht glauben. Auf der Festplatte habe ich ein TC 
gefunden. Alte EXE unter DOS, und hat ein Tool 'Evaluate and Modify'. 
Damit geht es :-)

Wozu die Arduino-DE 400 MB braucht, und doch nix kann, wissen wohl nur 
die "Profis", die es programmiert haben. TC-EXE ist gerade mal 1234 KB 
groß.
Gast #5570544
Lesenswert?

Roth schrieb:
> TC-EXE ist gerade mal 1234 KB
> groß.

Kennt es auch all die hochkomplexen Optimierungs-Algorithmen, welche der 
bei Arduino integrierte GCC unterstützt? Alle aktuellen Sprachstandards 
(C++17, C11)? Unterstützt die Plattformen AVR und Cortex-M? Liefert 
Bibliotheken und Beispiele für alles mögliche mit?
Gast #5570563
Lesenswert?

Dr. Sommer schrieb:
> Kennt es auch all die hochkomplexen Optimierungs-Algorithmen, welche der
> bei Arduino integrierte GCC unterstützt? Alle aktuellen Sprachstandards
> (C++17, C11)? Unterstützt die Plattformen AVR und Cortex-M? Liefert
> Bibliotheken und Beispiele für alles mögliche mit?
Wir reden von 400 MB, Megabygte. In Buchstaben: 200.000 
vollgeschriebene Schreibmaschinenseiten, Zweihundertausend. Auch Dr. 
Sommer kann nicht begründen, wozu man soviel Platz braucht, um ein 
lauffähiges Programm zu erstellen. Auch die Bibliotheken sind nur im 
Textformat, Text

Selbst 1234 KB braucht es bei weitem nicht, um eine lauffähige IDE zu 
erstellen. Und von 400 MB wollen wir gar nicht reden.
Gast #5570568
Lesenswert?

Roth schrieb:
> Auch Dr.
> Sommer kann nicht begründen, wozu man soviel Platz braucht, um ein
> lauffähiges Programm zu erstellen.

Es erstellt nicht einfach nur ein lauffähiges Programm. Es durchläuft 
viele komplexe Algorithmen, bindet viele Bibliotheken ein, um ein 
effizientes lauffähiges Programm zu erstellen. Schau dir einfach mal 
an, was in einer GCC-Distribution alles so drin ist. Allein die C++ 
Standard Bibliothek ist nicht so ganz klein. Der ARM-GCC enthält gleich 
mehrere Varianten der vorkompilierten Bibliotheken für die verschiedenen 
Architektur-Varianten, das nimmt auch einiges weg.

Roth schrieb:
> Auch die Bibliotheken sind nur im
> Textformat, Text
Nein, die sind vorkompiliert (.a).

Roth schrieb:
> Selbst 1234 KB braucht es bei weitem nicht, um eine lauffähige IDE zu
> erstellen. Und von 400 MB wollen wir gar nicht reden.
Über "lauffähig" ist die Technik schon lange hinaus. Es gibt da auch so 
Sonderwünsche wie "Geschwindigkeit". Es steht dir frei, einen anderen 
Compiler mit weniger Features zu nutzen.
Gast #5570575
Lesenswert?

Sorry für das OT, aber das musste gerade mal sein. Wir haben seinerzeit 
einen kompletten BASIC-Interpreter mit nur 64 KB im ROM untergebracht. 
Und dieses BASIC war sogar eins der besten, was je es gab. Locomotive 
BASIC, da fehlte nichts. Der Zeit weit voraus und sogar interrputfähig. 
Die komplette Firmware der Maschine, auf der das BASIC lief, war 
ebenfalls nicht größer als 64 KB - mit allen Service- und 
Grafikfunktionen. So eine Hochstabellei wie heute gabs nicht, da wurde 
noch korrekt programmiert. Wer heute 400 MB mit "Bibliotheken und 
Funktionen" begründet, ist sich der Menge von 400 MB nicht bewusst
Gast #5570583
Lesenswert?

Roth schrieb:
> Sorry für das OT, aber das musste gerade mal sein. Wir haben seinerzeit
> einen kompletten BASIC-Interpreter mit nur 64 KB im ROM untergebracht.

Na dann, bau doch mal die Funktionalität des GCC und der C++ Standard 
Bibliothek in 64kB nach. Melde dich wenn du damit fertig bist (in ca 
1000 Jahren) und festgestellt hast dass die 400 MB berechtigt sind. 
Schau doch einfach mal in den GCC-Ordner, was da so alles ist, und sag 
was davon überflüssig ist.
Neben dem Compiler ist da ja auch noch die JVM, Programmiertool usw. Ja, 
das ginge kleiner, aber man hat andere Prioritäten gesetzt.
Gast #5570594
Lesenswert?

Roth schrieb:
> Sorry für das OT, aber das musste gerade mal sein. Wir haben seinerzeit
> einen kompletten BASIC-Interpreter mit nur 64 KB im ROM untergebracht.
> Und dieses BASIC war sogar eins der besten, was je es gab. Locomotive
> BASIC, da fehlte nichts. Der Zeit weit voraus und sogar interrputfähig.
> Die komplette Firmware der Maschine, auf der das BASIC lief, war
> ebenfalls nicht größer als 64 KB - mit allen Service- und
> Grafikfunktionen. So eine Hochstabellei wie heute gabs nicht, da wurde
> noch korrekt programmiert. Wer heute 400 MB mit "Bibliotheken und
> Funktionen" begründet, ist sich der Menge von 400 MB nicht bewusst

Sorry für OT:

Mir fällt auf, dass die Selbstbeweihräucherung in den Foren zunimmt. 
Habt ihr so wenig Erfolgserlebnisse, so dass ihr nur noch mit eurer 
"ruhmreichen" Vergangenheit glänzen könnt?
Gast #5570600
Lesenswert?

Dr. Sommer schrieb:
> Na dann, bau doch mal die Funktionalität des GCC und der C++ Standard
> Bibliothek in 64kB nach. Melde dich wenn du damit fertig bist.
Das brauche ich nicht, sowas gabs tatsächlich.

Die Sourcen für einen C-Compiler finde ich auf die Schnelle nicht.

Alternativ für BASIC, und ein vollständiges Betriebssystem (mit 
Grafikbearbeitung). 128 KB.

ftp://ftp.cpcszene.de/pub/Computer/Amstrad_CPC/CPC-Literatur/CPC%20464%2 
0INTERN.pdf

Kannst dich ja mal einlesen, so lange dauert das nicht ;)

Ach ja, und nochmas: Der CPC hatte 8 (acht) bekannte Fehler im 
Betriebssystem. Keine 8.000, wie man das von M$ gewöhnt ist.
Gast #5570602
Lesenswert?

Roth schrieb:
> Wozu die Arduino-DE 400 MB braucht
Wie Dr. Sommer schon schrieb:
Da ist ja sehr viel mehr als nur ein schlechter Texteditor bei. Das 
Zip-File ausgepackt braucht 500MB bei mir. Da ist dann aber auch die 
ganze Toolchain bei: Compiler fuer AVR und ARM, Tools zum flashen 
(avrdude fuer AVR und bossac fuer ARM), Beispiele, die ganzen 
Definitionen fuer die Controller, etc. und der Editor.

Der 'example' Ordner sind bei mir schon 5,3MB, 'hardware' sind schon 
189MB und der 'java' Ordner sind 207MB. 'libraries' sind nochmal 19MB.

Ist zwar kein Formelparser, aber das Atmel Studio (kostenlos) enthaelt 
einen Simulator.

Wenn dir das Atmel Studio nicht zusagt, es gibt auch noch andere 
Simulatoren, z.B. simavr.
Gast #5570613
Lesenswert?

Jetzt sind wir ganz weg vom Schuss. Ich wollte das nicht so stehen 
lassen, dass gute (komplexe) Software den immensen Platzbedarf 
begründet. Das ist zwar in unseren Köpfen so drin, das ist aber nicht 
richtig. Alles fing damit an, dass M$ Libs u. DLLs einführte. Ein fertig 
compilierter CLS-Befehl, sonst nix, ergab dann eine EXE-Datei von 384 
KB. brrr, es schütelt mich jetzt noch. Das war vor mehr als 30 Jahren, 
und ist seitdem nicht besser geworden. Aber wollen wir darüber nicht 
streiten, es ist so, wie es ist. Danke nochmal für die Tipps.
Gast #5570615
Lesenswert?

Roth schrieb:
> Das brauche ich nicht, sowas gabs tatsächlich.

Du vielleicht nicht. Andere Nutzer des GCC schon. Sollen die mehrere 
Editionen rausbringen? Vollversion und Speicher-Knauser-Version?

Roth schrieb:
> Die Sourcen für einen C-Compiler finde ich auf die Schnelle nicht.
Schau z.B. hier:
https://gcc.gnu.org/viewcvs/gcc/trunk/gcc/

Roth schrieb:
> Alternativ für BASIC, und ein vollständiges Betriebssystem (mit
> Grafikbearbeitung). 128 KB.

Ein BASIC-Interpreter ist ja auch easy. Es gibt halt Leute, die 
mächtigere Sprachen benutzen wollen, und GCC unterstützt diese. 
Unterstützt dieses 128KB-Betriebssystem auch tausende verschiedene 
Geräte, und die unzählig vielen möglichen Kombinationen daraus? Eine 
große Anzahl an Netzwerkprotokollen? Diese auch super robust? 
Integrierte Firewalls? Zig Dateisysteme? Präemptives Multitasking mit 
ausgefeiltem Scheduler? Optimales Paging? Linux und Windows schon.

Roth schrieb:
> Ach ja, und nochmas: Der CPC hatte 8 (acht) bekannte Fehler im
> Betriebssystem. Keine 8.000, wie man das von M$ gewöhnt ist.
Bau mal ein OS mit o.g. Features und so wenig Fehlern, aber nur mit dem 
begrenzten Budget von "M$". Und der Anzahl an existierenden 
Programmierern (Achtung: Der Arbeitsmarkt ist leer).
Moderator #5570623
Lesenswert?

Roth schrieb:
> Wozu die Arduino-DE 400 MB braucht, und doch nix kann, wissen wohl nur
> die "Profis", die es programmiert haben. TC-EXE ist gerade mal 1234 KB
> groß.

Ich frage mich, warum du die deiner Ansicht nach nutzlosen 400MB nicht
längst von deiner Festplatte gelöscht hast. Löschtaste kaputt?

Roth schrieb:
> Wir haben seinerzeit einen kompletten BASIC-Interpreter mit nur 64 KB
> im ROM untergebracht.

Dann seid ihr vermutlich "Real Programmers". Was ihr damals geschafft
habt, schafft ihr das heute ganz sicher immer noch.

Allerdings: Die echten "Real Programmers" haben nicht gemeckert, sondern
gemacht.
#5570626
Lesenswert?

Roth schrieb:
> Alles fing damit an, dass M$ Libs u. DLLs einführte.

Das ist doch Unsinn. Gerade DLLs werden ja nicht in der Exe verpackt 
sondern sollen auf dem Zielsystem schon zur gemeinsamen Nutzung 
vorhanden sein. Die werden erst bei der Ausführung gelinkt (daher das 
erste D).

>  Aber wollen wir darüber nicht streiten, es ist so, wie es ist.

Keine Sorge. Spaten wie dir sage ich trotzdem immer gerne die Meinung. 
Streiten würde ich das nicht nennen.
Gast #5570687
Lesenswert?

Cyblord -. schrieb:
> Das ist doch Unsinn. Gerade DLLs werden ja nicht in der Exe verpackt
> sondern sollen auf dem Zielsystem schon zur gemeinsamen Nutzung
> vorhanden sein. Die werden erst bei der Ausführung gelinkt (daher das
> erste D).
Kein Unsinn, sondern völlige Ahnungslosigkeit auf deiner Seite. Die 
Sourcen wurden vom Compiler in die EXE integriert. Was im übrigen auch 
die Größe von 384 KB nachweisbar belegt.

Cyblord -. schrieb:
> Keine Sorge. Spaten wie dir sage ich trotzdem immer gerne die Meinung.
Du scheinst noch sehr jung zu sein. Aber sei dir gewiss: Deine 
Überheblichkeit wird sich noch legen ;-)
#5570692
Lesenswert?

Roth schrieb:
> Cyblord -. schrieb:
>> Das ist doch Unsinn. Gerade DLLs werden ja nicht in der Exe verpackt
>> sondern sollen auf dem Zielsystem schon zur gemeinsamen Nutzung
>> vorhanden sein. Die werden erst bei der Ausführung gelinkt (daher das
>> erste D).
> Kein Unsinn, sondern völlige Ahnungslosigkeit auf deiner Seite. Die
> Sourcen wurden vom Compiler in die EXE integriert. Was im übrigen auch
> die Größe von 384 KB nachweisbar belegt.

Ist ja deine Entscheidung alle DLLs in die EXE zu integrieren. Du kannst 
auch gleich das ganze OS in eine EXE mit deiner Anwendung reinpacken.
Sinnvoll ist das nicht und läuft dem Konzept einer DLL (und einem OS) 
auch zuwieder.

> Cyblord -. schrieb:
>> Keine Sorge. Spaten wie dir sage ich trotzdem immer gerne die Meinung.
> Du scheinst noch sehr jung zu sein. Aber sei dir gewiss: Deine
> Überheblichkeit wird sich noch legen ;-)

Weder Jung noch Überheblich. Aber keine Sorge, Niveau sieht von unten 
immer aus wie Arroganz.
Gast #5570694
Lesenswert?

Roth schrieb:
> Kein Unsinn, sondern völlige Ahnungslosigkeit auf deiner Seite. Die
> Sourcen wurden vom Compiler in die EXE integriert.

Wenn schon vom Linker. Und das gilt natürlich nur für statische 
Bibliotheken (.lib, .a). Der Sinn von DLL's (Dynamic Link Library) 
ist es, dass der Code eben nicht integriert ist, sondern zentral in der 
DLL abgelegt. Die kann man dann auch separat updaten. Warum sonst sind 
bei Windows jede Menge DLLs dabei, wenn der Inhalt nicht gebraucht 
würde?! Kannst sie ja mal löschen und schauen was passiert :-)

Roth schrieb:
> Was im übrigen auch
> die Größe von 384 KB nachweisbar belegt.
Ein Disassembler Dump würde mehr belegen. Zeig doch mal den Source Code 
dieser ominösen "zu großen" EXE. Natürlich integriert der Linker gewisse 
Teile in die .exe, welche aber teilweise nur Umleitungen auf die DLLS 
sind.
Gast #5570700
Lesenswert?

Yalu X. schrieb:
> Dann seid ihr vermutlich "Real Programmers". Was ihr damals geschafft
> habt, schafft ihr das heute ganz sicher immer noch.
Assembler gibts heute nicht mehr bzw. wird kaum kaum noch verwendet. 
Beim Schrauben an alten COBOL-Sourcen setze ich es ab und zu ein, wenn 
nichts anderes meht geht.

Und JA, ich hätte keine Angst, dieses "Schaffen" unter Beweis zu 
stellen.
Gast #5570714
Lesenswert?

Dann eben vom Linker :)

Dr. Sommer schrieb:
> Ein Disassembler Dump würde mehr belegen. Zeig doch mal den Source Code
> dieser ominösen "zu großen" EXE. Natürlich integriert der Linker gewisse
> Teile in die .exe, welche aber teilweise nur Umleitungen auf die DLLS
> sind.
Du magst lachen, aber vielleicht habe ich die sogar noch. Habe die 
Dateien immer auf DVD oder CD gebrannt, wenn ich einen PC geschrottet 
habe. Ab und zu war das sogar ganz nützlich. Die CLS.EXE suche ich jetzt 
trotzdem nicht.

Kannst sie aber selber auch erzeugen. Wenn meine Erinnerung nicht trügt, 
aber vermutlich trügt sie doch, konnte man mit Q-BASIC lauffähige 
EXE-Dateien erzeugen. Wenn nicht Q, dann Nachfolger. Das Ergebnis von 
"CLS" war dann die für damalige Zeiten riesige Datei...die nur den 
Bildschirm gelöscht hat, und sonst keine Funktion hatte.

Darüber zu "meckern", lass ich mir jedenfalls nicht nehmen. Wer das 
akzeptiert, tritt jeden Entwickler in den A., der sich mit seiner Arbeit 
Mühe gibt.
Gast #5570717
Lesenswert?

Just for fun: Im Anhang ist eine unter x86-Linux ausführbare Datei (ELF) 
welche einfach nur "Hello World" ausgibt. Sie ist 384 Bytes groß. Sie 
wurde mit dem GCC Compiler erstellt um zu zeigen dass er auch kleine 
Dateien produzieren kann. Manuelles Erstellen er ELF-Datei würde noch 
ein paar Bytes sparen, aber darum ging es nicht.
Unter Windows ist das etwas komplizierter weil die Syscalls keine fixen 
Nummern haben und man die Kernel-DLL importieren muss, geht aber 
letztlich äquivalent auch so.
Natürlich hat die Datei keine Verweise auf die C- oder 
C++-Standardbibliothek und kann daher deren ganze bequeme Funktionalität 
nicht nutzen. Dafür bräuchte es eine größere Datei.
Angehängte Dateien:
Gast #5570719
Lesenswert?

Roth schrieb:
> Das Ergebnis von
> "CLS" war dann die für damalige Zeiten riesige Datei...die nur den
> Bildschirm gelöscht hat, und sonst keine Funktion hatte.

Toll, eine .exe Datei die wahrscheinlich einen ganzen Basic-Interpreter 
enthält, der einen einzigen Befehl ausführt, der dann das CLS-Programm 
aufruft. Und das als Maßstab für Overhead nehmen? Wow. Mach das mal in 
C, das wird viel kleiner. Dann in Assembler, dann wird das bestimmt 
unter 1KB.
Gast #5570720
Lesenswert?

Cyblord -. schrieb:
> Roth schrieb:
>> Und JA, ich hätte keine Angst, dieses "Schaffen" unter Beweis zu
>> stellen.
>
> Man merkt was für ein Experte zu bist. Große Klappe aber wenig Kompetenz
> wenns um die Sache geht. Peinlich!

Endlich mal Tacheles: die einen zeigen grosse Klappe, die andern haben 
bereits über 10k Posts alleine in diesem Forum gepostet...
Gast #5570722
Lesenswert?

Cyblord -. schrieb:
> Man merkt was für ein Experte zu bist. Große Klappe aber wenig Kompetenz
> wenns um die Sache geht. Peinlich!
Nee, du bist peinlich. Große Klappe habe ich - immer gehabt - aber zu 
meiner "Expertenfähigkeit" halte DU einfach nur die Klappe. Das kannst 
du, unbekannterweise, gar nicht beurteilen. Und ich vermute, fachlich 
auch gar nicht nachvollziehen.

So, ich bin draußen.
Gast #5570750
Lesenswert?

>Wozu die Arduino-DE 400 MB braucht, und doch nix kann, wissen wohl nur
>die "Profis", die es programmiert haben. TC-EXE ist gerade mal 1234 KB
>groß.

Turbo-C unterstützt auch nur einen Prozessortyp und nicht viele wie die 
Arduino IDE.
Das Packet ist so groß, weil die ganzen Toolchains für die verschiedenen 
Prozessoren und viele Bibliotheken für verschieden Boards mit geliefert 
werden.
Gast #5571113
Lesenswert?

Roth schrieb:
> Ein fertig
> compilierter CLS-Befehl, sonst nix, ergab dann eine EXE-Datei von 384
> KB. brrr, es schütelt mich jetzt noch.

Roth schrieb:
> Darüber zu "meckern", lass ich mir jedenfalls nicht nehmen. Wer das
> akzeptiert, tritt jeden Entwickler in den A., der sich mit seiner Arbeit
> Mühe gibt.

Echt absurd, erst Q-Basic zu nehmen, dann zu lästern dass das große 
ausführbare Dateien produziert und das auf dynamische Bibliotheken zu 
schieben! Das ist so wie mit einem VW Käfer rückwärts 1m weit zu fahren, 
zu lästern dass das länger als zu Fuß dauert und die Schuld der 
Elektromobilität zu geben.

Aus Langeweile hab ich mal rumprobiert wie man mit aktuellem Visual C++ 
eine möglichst kleine .exe produziert. Die angehängte Datei ist 1552 B 
groß und auf 64bit-Windows ausführbar. Mit manuellen Hex Editor Hacks 
lässt sich das noch stark reduzieren, aber ich wollte es mit aktuellen 
Standard-Tools machen.

Des weiteren ist eine MathParser.jar angehängt, welche ein simples 
Java-Programm enthält, mit welchem sich mathematische Audrücke auswerten 
lassen. Es nutzt die exp4j-Bibliothek.

Die miniexe.exe zeigt wenn gestartet eine Meldung an. Bestätigt man 
diese mit Ja, wird Java gestartet und der MathParser.jar ausgeführt. Man 
könnte natürlich auch CLS ausführen aber das ist ja langweilig. Damit 
das funktioniert muss die javaw.exe über den Path auffindbar sein (d.h. 
die JRE muss auf übliche Art und Weise installiert sein).

Zusammen also ein Formelparser und eine Exe auf 48kB. In Java einfach 
nur um die Java-Hater zu ärgern. Das alles also ein Bruchteil deiner 
hochprofessionellen CLS.EXE. Der MathParser ist noch dazu auf nahezu 
allen Plattformen ausführbar und grafisch.
Angehängte Dateien:
Gast #5571118
Lesenswert?

Cyblord -. schrieb:
> Rauschender Abgang des "großen Experten".
Du findest immer Wege, GEGEN irgend jemanden zu sein, der euer 
"Verständnis" von effizienter Programmierung nicht teilt. So wie ich 
es, jahrzehntelang, immer wieder bei Kollegen erlebt habe, die für M$ 
gefrickelt äh programmiert haben. Getroffen und versenkt, gell ^^

;-)
Gast #5571136
Lesenswert?

Mich würde mal interessieren wo diese CLS.EXE existieren soll, ich kenne 
nur die built-in Varianten (COMMAND.COM & Co, bei DOS 6 zähle ich rund 
53kb für die ganze .COM, das war dann vor ~25 Jahren)...

Das früher die Resourcen effektiver genutzt wurden als heute ist 
sicherlich richtig aber die Art der Kritik ist unsachlich.
Gast #5571143
Lesenswert?

Dr. Sommer schrieb:
> Echt absurd, erst Q-Basic zu nehmen, dann zu lästern dass das große
> ausführbare Dateien produziert und das auf dynamische Bibliotheken zu
> schieben!
Das war kein Q-Basic. Habs gerade probiert und damit gehts nicht. Es war 
ein Basic, das compilieren und eigenständige EXE-Dateien erzeugen 
konnte. Vielleicht QuickBasic? Habe ich aber, im Gegensatz zu GW oder Q, 
nicht mehr zur Hand. Ist ja auch völlig schnuppe. Schnee von gestern. 
Wer auf megagroße Applikationen steht, die unheimlich wenig können, soll 
damit glücklich werden. Ich arbeite damit auch -geht ja nicht anders- 
aber ich über meine Lippen ganz bestimmt kein Wort der Anerkennung .
Gast #5571150
Lesenswert?

Klaus Manns schrieb:
> Mich würde mal interessieren wo diese CLS.EXE existieren soll, ich kenne
> nur die built-in Varianten (COMMAND.COM & Co, bei DOS 6 zähle ich rund
> 53kb für die ganze .COM, das war dann vor ~25 Jahren)...
Wenn jemand QuickBasic hat, ich habe es nicht mehr, kann msn es ja mal 
testen. Einfach CLS eingeben und EXE-Datei erzeugen. Hat bei mir ein 
Koloss der o.g. Größe erzeugt. So dass ich mich lange gefragt habe, was 
M$ da alles rein gepackt hat....

Heute interessiert sowas niemanden mehr. Die Festplatten waren zu der 
Zeit aber nur knapp 100 MB groß. Da war das schon viel.
Gast #5571217
Lesenswert?

Roth schrieb:
> Kein Unsinn, sondern völlige Ahnungslosigkeit auf deiner Seite. Die
> Sourcen wurden vom Compiler in die EXE integriert. Was im übrigen auch
> die Größe von 384 KB nachweisbar belegt.

Roth schrieb:
> Wenn jemand QuickBasic hat, ich habe es nicht mehr, kann msn es ja mal
> testen. Einfach CLS eingeben und EXE-Datei erzeugen. Hat bei mir ein
> Koloss der o.g. Größe erzeugt. So dass ich mich lange gefragt habe, was
> M$ da alles rein gepackt hat....

Wie Dr. Sommer oben schreibt als ein Paket aus Interpreter und 
Basic-Source - kaum ernsthaft mit einem echten Kompilat vergleichbar! 
Ich krieg nur ~ die Hälfte als .EXE raus (was es nicht wirklich besser 
macht). Trotzdem hinkt der Vergleich.
Gast #5571236
Lesenswert?

Ich bin erschüttert.

Jemand, der es so drauf hat, hat andererseits Probleme mit logischen 
Ausdrücken und braucht dafür einen "Rechner".
Sowas baut man sich doch an einem Nachmittag...
Oder?

Und wenn man dann der Arduinogemeinde was gutes tun möchte, baut man es 
als IDE Plugin. Das dauert dann sicherlich etwas länger.

Roth schrieb:
> Da ich mindestens 25 J. kein C programmiert habe, ist einiges in
> Vergessenheit geraten.
Dann wirst du aber noch viel lernen müssen, denn Arduino ist eher C++, 
als dein verblichenes C.
Gast #5571324
Lesenswert?

foobar schrieb:
> Naja, die Java-Runtime nicht mitzuzählen ist aber nicht die Feine
> Englische™ ;-)

Die hat eh jeder installiert. Die muss ja auch nur 1x installiert sein. 
Bei einem C Programm zählt man ja auch nicht den Windows Kernel mit.
Wenn du jetzt sagst dass es Leute gibt die das nicht haben... dann kann 
man das Beispiel auch mit C# machen, das ist technisch sehr ähnlich, und 
.NET ist bei aktuellen Windows vorinstalliert...
Gast #5571366
Lesenswert?

>> Naja, die Java-Runtime nicht mitzuzählen ist aber nicht die Feine
>> Englische™ ;-)
>
> Die hat eh jeder installiert. Die muss ja auch nur 1x installiert sein.
> Bei einem C Programm zählt man ja auch nicht den Windows Kernel mit.

Genau das macht er aber mit dem CLS Beispiel.
Gast #5571400
Lesenswert?

Mike R. schrieb:
> Warum braucht ein langweiliger Compiler 25MB, so schwer kann es doch
> nicht sein ein wenig Text in Bits und Bytes zu übersetzen? ;-)

Die Zeiten, wo ein kompletter Basic-Interpreter in 8kByte ASM-Code 
abgehakt ist, sind dank moderner Programmentwicklungsmethoden und 
sonstiger Fortschritte der Rechnertechnik definitiv vorbei. Das ging 
vielleicht vor 40 Jahren. Bei einem heutiges Programm wirst du selbst 
mit dem 1024-fachen Speicherplatz nicht weit kommen.
Gast #5571411
Lesenswert?

Dr. Sommer schrieb:
> Die hat eh jeder installiert. Die muss ja auch nur 1x installiert sein.
> Bei einem C Programm zählt man ja auch nicht den Windows Kernel mit.
> Wenn du jetzt sagst dass es Leute gibt die das nicht haben... dann kann
> man das Beispiel auch mit C# machen, das ist technisch sehr ähnlich, und
> .NET ist bei aktuellen Windows vorinstalliert...

Die Java Runtime (mit ihren 160MB) ist bei jeder Arduino Installation 
mit im Paket

Damit ist irrelevant, ob die JRE schon auf dem Rechner vorhanden war, 
ist, oder in welcher Version.

Marcus schrieb:
> Beispiel? :
> 
https://opensource.apple.com/source/groff/groff-39/groff/src/libs/libgroff/itoa.c.auto.html
Was möchtest du mir damit sagen?
Dass ein großer Teil des Arduino Core in C geschrieben ist?
Durchaus wahr!

Allerdings sind nahezu alle Libs in C++ geschrieben.
Und die *.ino sind sowieso C++.
Damit ist das erste, womit es ein Arduino Anfänger es zu tun bekommt, 
eben C++.

Ich denke schon, dass ein altgedienter C Krieger, nach 25 Jahren Pause, 
einen schwierigen Start mit C++ haben wird.
Ins besondere, wenn er mit einer solchen Einstellung da ran geht...

Roth schrieb:
> .. über meine Lippen ganz bestimmt kein Wort der Anerkennung .
Gast #5571429
Lesenswert?

Arduino Fanboy D. schrieb:
> Die Java Runtime (mit ihren 160MB) ist bei jeder Arduino Installation
> mit im Paket

Ja, eine etwas fragwürdige Entscheidung. Das ist vermutlich so, um es 
Java-Verweigerern einfacher zu machen, damit sie gar nicht merken dass 
da eine JRE auf dem Rechner ist. Und für Leute, die allgemein 
Schwierigkeiten mit Software Installation haben:

Roth schrieb:
> MingGW/GCC ließ sich nicht installieren bzw. die Serververbindung brach
> beim Download immer wieder ab.

Das Doployment auf PCs ist bei Java zugegeben nicht so dolle. Aber davon 
ist nicht die ganze Technologie schlecht.
Gast #5571461
Lesenswert?

Rainer schrieb:
>>Wozu die Arduino-DE 400 MB braucht, und doch nix kann, wissen wohl nur
>>die "Profis", die es programmiert haben. TC-EXE ist gerade mal 1234 KB
>>groß.
>
> Turbo-C unterstützt auch nur einen Prozessortyp und nicht viele wie die
> Arduino IDE.
> Das Packet ist so groß, weil die ganzen Toolchains für die verschiedenen
> Prozessoren und viele Bibliotheken für verschieden Boards mit geliefert
> werden.

Das Arduino Paket ist nur für Windows so gross und besteht zu 39xMB nur 
aus ähnlichen Dreingaben wie das gemästete CLS.EXE/BASIC Beispiel. Dies 
auch nur um dem "Bedürfnis" von Windows-Hirschen zu entsprechen. Das 
Bedürfnis hat MS selbst geschaffen, durch deren Wahl des 
Modularisierungskonzeptes für Windows.

Bei Debian u. Derivate ist nämlich das Arduino Paket nur knapp über 1MB 
gross (Nichtskönnender Editor, "IDE", Terminal - aus den Tastaturen der 
Arduinoprorammierer) + arduino-core Paket 6MB (Arduino-libraries, 
Targetboard Definitionen, Buildscripts - aus den Tastaturen der 
Arduinoprogrammierer)

Cross-Compilers, Target-libs, AvrDude, Bossa, JRE, ... (NICHT aus den 
Tastaturen der Arduinoprogrammierer) kommen dank funktionierendem 
Paketmanagement aus anderen Paketen. Diese stellen den "Rest des 
angeprangerten Bloats" von 39xMB.
Diese können durchaus schon auf dem Entwicklungsrechner vorhanden sein 
so sie von anderen Programmen bereits benötigt wurden oder werden eben 
automatisch nachgeholt.

[Die Zahlen sind von den nicht mehr taufrischen 1.0.x und 1.5.x 
Versionen, genügen aber um Licht in das dreckige Halbwissen zu bringen 
womit in diesem Thread geschmissen wird und um die Grössenverhältnisse 
zu illustrieren
https://packages.debian.org/search?keywords=arduino

Um Funktionsumfang Pro Paket-/Programmgrösse kann man jederzeit 
streiten, genausogut wie man dies vor 25J konnte.]
#5571525
Lesenswert?

Dr. Sommer schrieb:
> Just for fun: Im Anhang ist eine unter x86-Linux ausführbare Datei (ELF)
> welche einfach nur "Hello World" ausgibt. Sie ist 384 Bytes groß.

Ich habe hier eine 166 Byte großes Programm für x86-64 Linux, das "Hello 
World\n" ausgibt.

Übersetzen kann man es mit NASM:
1
nasm -f bin tiny.s

Inspiriert wurde ich hier, wobei der Autor aber noch viel mehr 
optimiert:
https://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
Angehängte Dateien:
Gast #5571552
Lesenswert?

Alexander F. schrieb:
> Ich habe hier eine 166 Byte großes Programm für x86-64 Linux, das "Hello
> World\n" ausgibt

Auch schön :) ich wollte zeigen dass es auch mit den Standard-Tools 
geht, mit welchen man auch komplexe Anwendungen schreiben kann und über 
deren "Overhead" so gern gelästert wird. Dass das mit Assembler und/oder 
Hex-Editor noch etwas besser geht ist klar ;-)

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