Forum: PC-Programmierung Welchen Compiler für einfaches Programm ?


von Mark Hilbich (Gast)


Lesenswert?

Hallo Leute.

Wieder einer mit einer einfachen Frage.(oder auch nicht)


Ich habe für eine einfache Beleuchtungsregelung gebastelt die mit einer
Kennlinie aus 8 Bytes arbeitet die im EEprom des Controllers stehen.
Aktuelle Daten werden einfach über die Serielle in den Controller
übertragen
Soweit läuft alles perfekt.

Momentan nutze ich noch ein Terminalprogramm um die Daten zu
überspielen aber ich möchte natürlich ein passendes Program für Windows
erstellen.

Die Ausführung ist eigentlich recht simpel.
8 Schieber zum Einstellen und auf Tastendruck soll der Datensatz
einfach mit Checksumme über die Serielle zum Controller geschickt
werden.

Was ich suche ist ein Compiler der mir ein ergebnis ohne Externe
Bibliothek liefert und auch die Serielle unterstützt.

Das bis jetzt gefundene benötigt entweder eine Laufzeitbibliothek oder
unterstützt die Serielle nur mit viel umstand oder gleich garnicht.


Ich brauche also folgendes:

1. Frontend quasi zusammenklickbar.
2. Unterstürzung der Seriellen.
3. Ergebnis muß Standalone sein.
4. Wenn möglich dann natürlich Freeware aber das ist nur Optional.

Was ich ausklammern möchte ist C oder C++.Es ist mir einfach zu
Kyptisch.
Basic oder Pascal kämen mir schon entgegen da mir diese nicht ganz
fremd sind.



Kann mir da mal einer nen Schubs in die richtige Richtung geben ?
Wäre echt Nett.



Mark Hilbich

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

Alternative 1:
C# + Visual C# 2005 Express mit .NET-Framework 2.0
Braucht zwar auch eine Laufzeitumgebung aber um die wird der normale
Windows-Benutzer eh nicht lange rumkommen.

Alternative 2:
Java + Netbeans mit CommAPI
Braucht aber auch die Java-Laufzeitumgebung und die etwas merkwürdig zu
installierende CommAPI.

Beide Alternativen bringen brauchbare GUI-Editoren mit. Weitere
Alternativen werden dir von anderen noch genannt werden.

Matthias

von Heinz (Gast)


Lesenswert?

Die Serielle Schnittstelle wird von der Windows API unterstützt und kann
mit CreateFile (oder so) angesprochen werden.
Im Prinzip tut es also jeder C-Compiler.
z.B.
http://www.bloodshed.net/devcpp.html

Hilfe zu Windows API:
http://www.winapi.net/

Das zusammenklicken der Oberfläche wird schon schwieriger.
Da kann ich z.B. den C++ Builder von Borland empfehlen.

Wenn es kostenlos sein soll:
http://wxdsgn.sourceforge.net/

Ist allerdings noch nicht ganz ausgereift. Für Anfänger nicht zu
empfehlen.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wenn es doch Basic sein soll - RealBasic. Erzeugt im Gegensatz zu den
Microsoft'schen Ansätzen monolithische Programme (1 Exe-Datei, die
alles erforderliche enthält).
Je nach Ausführung ist RealBasic sogar ein "cross platform"-Werkzeug
und kann auch Code für Linux und MacOS erzeugen.
Eine einfache Version (ohne "cross platform") wurde eine Zeitlang
sogar kostenlos verteilt - Zielgruppe waren VB6-Anwender, die ihre
Programme für VB.net hätten anpassen müssen.

Alternativ bietet sich für die Leute, die mit der Pascal-Syntax
klarkommen, Delphi an. Das lag in diesem Sommer einer c't bei - und
war, vom Preis der c't abgesehen, kostenlos. Zur Installation bedarf
es nur einer Seriennummer, die man bei Borland abholen kann.

von ,,,, (Gast)


Lesenswert?

Schon Delphi in Erwägung gezogen?

> 1. Frontend quasi zusammenklickbar.

Mit Delphi 100% möglich.

> 2. Unterstürzung der Seriellen.

Es ibt kostenlose Komponenten, die diese Funktionalität besitzen =>
keinerlei Programmieraufwand.

> 3. Ergebnis muß Standalone sein.

Delphiprogramme sind stand alone.

> 4. Wenn möglich dann natürlich Freeware aber das ist nur Optional.

Bis vor kurzem gab es die personal edition von Delphi v7 kostenlos,
scheint aber wohl nicht mehr so zu sein. Jedenfalls gibt es den
Downloadlink nicht mehr bei Borland bzw. Inprise. Dieser Compiler wurde
aber auch oft auf irgendwelchen CDs mitgeliefert, vielleicht findest du
da noch was. Ich denke, dass es die personal edition auch noch irgendwo
im Netz gibt.

von Ratber (Gast)


Lesenswert?

Hmmm.

Basic oder auch Pascal.
Keine Bibliotheken.
Frontend zusammenklickbar
Funktionen für die Serielle
Möglichst Gratis.


Ich denke mal das du da vieleicht noch Abstriche machen müßtest.

Purebasic wäre vieleicht ein Kandidat für dich.

+Ist Basic.
+Das Compilat läuft ohne zusätze.
+Das Frontend ist wie bei vielen anderen zusammenklickbar und,was noch

 besser kommt,einfach in den Code integrierbar.
+Crosscompiler für Win,Linux und MAC falls was universelles gebastelt
 wird.

=Die Serielle wird nicht direkt unterstützt aber ich habe da ne Lösung

 gesehen die man sich anpassen kann.

-Leider nicht gratis aber mit 60 bzw. 80 Eur. noch bezahlbar.
 (Demo verfügbar)


Leider kann ich dir nicht viel Erfahrungen dazu mitteilen.
Hab das mal ausprobiert weil ein Arbeitskollege damit seine kleinen
Apps zusammengeschustert hat.
Machte einen leichten Eindruck.

Schau es dir mal an.

von Stefan (Gast)


Lesenswert?

Schau dir doch mal Labview von National Instruments an. Da kannst du dir
die Programme + Frontend zusammenklicken. Die Programme werden dort
mittels Symbolen zusammengeklickt.
-> Nix schreiben!

Ist aber nicht kostenlos, es gibt aber eine Demoversion.

von Mark Hilbich (Gast)


Lesenswert?

@Matthias Weißer

Ich sagte ja das C mir zu kryptisch ist.
Da bekomme ich Kopfschmerzen von.



@Heinz

Ohne Laufzeitumgebung war bedingung.
Mit kann ich gleich VB nehmen.
aber der Hinweis auf die Windows-API war gut (Näheres weiter unten)



@Rufus T. Firefly

RealBasic ist schon nicht schlecht (Keine Laufzeitumgebung) aber der
eigentliche Code geht da wieder komplett in der ganzen Verknüpfelei
unter.



@,,,, und Rufus T. Firefly

Delphi habe ich schon durch und etliche Tutorials probiert.
Wie bei fast allen Visuellen Compilern ist die Oberfläche zwar schnell
zusammengeklickt und auch der eigentliche Code noch in sinvoller Zeit
und verständlich erstellt aber man wird beim Verknüpfen der Funktionen
mit den For,mularen über Zig Listen irre.

leider hat Delphi nicht mehr viel mit dem Pascal was ich noch kenne zu
tun.
die Syntax erinnert mehr an C.



@Stefan

Das schaue ich mir mal näher an.



@Ratber

Ja,Purebasic sieht gut aus.
Ich probiere es gerade.

Bis jetzt kann ich auch die Beispiele nachvollziehen.
Die diversen Routinen für die Serielle habe ich schon gefunden.
So wie die aussehen glaube ich eine Chance zu haben das ich die mir
anpasse.






@All


Vielen Dank für die Hinweise und Hilfe.
Ich probiere mal Purebasic aus und melde mich die Tage nochmal um zu
berichten.





Mark Hilbich

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

C# hat soviel mit C zu tun wie Java mit C zu tun hat. Es verwendet die
gleiche Struktur für Blockbildung, die Funktions- bzw.
Methodendefinition hat gewisse Ähnlichkeiten mit C und es verwendet die
gleichen Operatoren wie C aber das wars dann auch schon. Sowohl Java als
auch C# sind moderne Programmiersprachen in denen man nicht mehr wild
mit Pointern um sich schmeißen muss obwohl das in C# immer noch geht.

Matthias

von pittbull (Gast)


Lesenswert?

> C# hat soviel mit C zu tun wie Java mit C zu tun hat.

c# ist microsoft-java. die haben java quasi nachgebaut und aufgebohrt.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

und? Was willst du und damit sagen? So wie C# von Java abstammt (mit
einigen netten Erweiterungen wie delegates, boxing, operator
overloading) stammt Java von Smalltalk und ein kleines bischen von C++
ab. Kaum eine heutige Programmiersprache kann von sich behaupten das
sie nicht irgendwelche Ideen aus Vorgängern übernommen hat.

Matthias

von A.K. (Gast)


Lesenswert?

"stammt Java von Smalltalk und ein kleines bischen von C++ ab"

Huh? Was bitte hat Java von Smalltalk, abgesehen davon, dass beide
objektorientiert sind?

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

Java verwendet z.B. das Konzept eines Objektbaums wie Smalltalk. Alle
Objekte stammen von java.lang.Object ab. Jede Klasse kann nur von einer
Klasse erben im Gegensatz zu C++. Die automatische Speicherverwaltung
(Garbage Collection) und das Konzept der VM wurden ebenfalls
übernommen. Von C++ stammt eigentlich nur der Syntax (Blockbildung,
Verzweigungen, Schleifen usw.) Kaum eine elementare Eigenschaft von C++
(Mehrfachvererbung, Destruktoren, Operator Overloading, Templates), mit
Ausnahme der primitiven Datentypen die es in Smalltalk nicht gibt,
wurde in die erste Java-Version übernommen.

Matthias

von Mark Hilbich (Gast)


Lesenswert?

Hallo Leute


Wollte mich wie versprochen nochmal melden.
Ich bin erst zum Wochenende dazu gekommen wirklich an meinem kleinen
Projekt zu Arbeiten.

Mit der gefundenen lösung für die Serielle klappt es wunderbar nachdem
ich sie für mich etwas abgeändert habe.
Das Programm ist in seinen wesentlichen Funktionen fertig und jetzt
fehlen noch Details wie Presets,eine kleine Hilfe und kosmetische
Geschichten wie Form,Farbe usw.




Nochmal danke an Alle für die Ideen/Vorschläge und speziell an Ratber
für den Tip mit Purebasic.


Mark Hilbich

von Ratber (Gast)


Lesenswert?

Yo,keine Ursache

von Rolf Magnus (Gast)


Lesenswert?

> Kaum eine elementare Eigenschaft von C++ (Mehrfachvererbung,
> Destruktoren, Operator Overloading, Templates), mit Ausnahme der
> primitiven Datentypen die es in Smalltalk nicht gibt, wurde in die
> erste Java-Version übernomme

Gerade das Fehlen von Destruktoren sorgt dafür, daß bei Java alle
Ressourcen außer Speicher nicht automatisch freigegeben werden können.

von Karl heinz B. (heinzi)


Lesenswert?

Tschulige Rolf, dass ich hier einfach reinplatze.
Ich dachte immer, das es in Java sehr wohl Destruktoren
gibt (ich kann kein Java und hab auch keine Lust dazu).
Das Problem sei viel mehr, dass man durch die Garbage Collection
nie weiss wann denn nun ein Destruktor aufgerufen wird.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

in Java gibt es keine Destruktoren. Der Garbage Collector wird hin und
wieder aufgerufen und löscht dann alle Objekte die vom Wurzelknoten des
Systems aus nicht mehr referenziert werden können (Mark-Sweep
Verfahren). Ein automatisches Aufräumen von Filehandles ist damit nicht
möglich. C# bietet zwar eine Art Destruktor an dessen
Ausführungszeitpunkt aber nicht garantiert werden kann (er wird vom GC
aufgerufen)

Matthias

von Karl heinz B. (heinzi)


Lesenswert?

Merci.

von Bartli (Gast)


Lesenswert?

> C# bietet zwar eine Art Destruktor an dessen
> Ausführungszeitpunkt aber nicht garantiert
> werden kann (er wird vom GC aufgerufen)

Gibt es auch in Java, heisst dor Finalizer.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

Stimmt. Ich hab das eben nochmal nachgeschaut. Wieder was gelernt,
danke.

Was man aber in dem Zusammenhang noch erwähnen sollte ist das die
Ausführung dieser finalize-Methode (sowohl in Java als wahrscheinlich
auch in C#) nicht nur zu einem unbestimmten Zeitpunkt geschehen kann
sondern evtl. sogar ganz unterbleiben kann wenn die Anwendung nämlich
beendet wird bevor der GC läuft. Dieses Konstrukt kann also nicht als
vollwertiger "Ersatz" eines C++ Destruktors gelten.

Matthias

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.