Seite 1 von 2

Programmiergrundlage für C++

Verfasst: 07.02.2004 22:50
von JumpinJack
Hallo Leute.

Also ich bin momentan auf der Arbeit ein wenig am rum programmieren. Dieses mache ich mit einer softwarespzifischen Programmiersprache welche meine geschriebenen Anweisungen später interpretiert und ausführt. Das ist in etwa vergleichbar mit exel und dessen Makros.

Nun habe ich ein wenig rumphilosophiert und mir überlegt wie das mit einer richtigen Programmiersprache ist. Wenn ich in C++ programmiere auf welche ebene läuft das Programm. Greift es auf Windowsroutinen zurück, also interpretiert windows die befehle oder schreibe ich die Anweisungen für die CPU.

Ok hört sich jetzt blöde an, wahrschienlich richtig Anfängermässig, aber nun gut. Ich hoffe ihr versteht meine Frage. Wäre klasse wenn da einer ne Antwort hätte.

Verfasst: 07.02.2004 22:59
von Jensemann
Hi,

sowohl als auch:

c++ wird kompiliert, dies wird also bytecode für deine CPU, bei nem windows compiler ist das format des kompilats allerdings windows spezifisch, genau wie es bei nem linux compiler linux spezifisch is (normalerweise ELF).

Der programm loader deines betriebssystems liest dieses format und führt es aus.

Re: Programmiergrundlage für C++

Verfasst: 08.02.2004 22:45
von The Lord of Programming
JumpinJack hat geschrieben:Greift es auf Windowsroutinen zurück, also interpretiert windows die befehle oder schreibe ich die Anweisungen für die CPU.
Das stimmt schon mal nicht, weil man mit C++ auch für Linux programmieren kann ;)
(Vielleicht hab ich auch deine Frage nicht verstanden)

Re: Programmiergrundlage für C++

Verfasst: 08.02.2004 22:56
von Jensemann
The Lord of Programming hat geschrieben:
JumpinJack hat geschrieben:Greift es auf Windowsroutinen zurück, also interpretiert windows die befehle oder schreibe ich die Anweisungen für die CPU.
Das stimmt schon mal nicht, weil man mit C++ auch für Linux programmieren kann ;)
(Vielleicht hab ich auch deine Frage nicht verstanden)
in aller regel wird es schon windows routinen verwenden, nämlich diese, die die libstdc++ oder wie auch immer sie auf windows heissen wird ihm bereitstellt, zumindest der anfänger wird wohl eher selten für alles seine eigenen unabhängigen funtionen oder klassen schreiben.

Verfasst: 09.02.2004 12:01
von JumpinJack
Hallo zusammen. Danke für die antworten. Und sorry das ich mich so spät melde. Ich muste die erste Antwort ein wenig "sacken" lassen.

Nur der Verständnishalber:

Programmiere ich in C++ den befehl cd (change directory) neu oder benutze ich diesen von Windows? Ok ist jetzt ein wenig einfach ausgedrückt aber so in etwa meine ich es. ;) :D

Aber so wie ich dich Jensemann verstehe wird in c++ mit den mitteln von Windows oder Linux geschafft. Wobei halt der jeweilige compiler (ob linux oder windows) das in die entsprechenden Betriebsystembefehle umsetzt. Richtich?!

Verfasst: 09.02.2004 15:19
von Jensemann
JumpinJack hat geschrieben:Hallo zusammen. Danke für die antworten. Und sorry das ich mich so spät melde. Ich muste die erste Antwort ein wenig "sacken" lassen.
jo, das issn hartes thema.
JumpinJack hat geschrieben: Programmiere ich in C++ den befehl cd (change directory) neu oder benutze ich diesen von Windows? Ok ist jetzt ein wenig einfach ausgedrückt aber so in etwa meine ich es. ;) :D
das issn sehr schlechtes beispiel, weil cd normalerweise teil deiner shell is, daher nehmen wir als beispiel mal den befehl "dir".

Du würdest mit den funktionen deiner libstdc++ (s.o.) dir nachprogrammieren, d.h. du holst dir ne dateiliste, anschliessend würdest mit stat() die datei eigenschafften prüfen, du könntest natürlich auch per exec* bzw. system dir aufrufen, aber das will man normalerweise nicht. Die frage ist hier etwas blöde formuliert, also letztendlich kannst du es neuprogrammieren, musst du aber nich.
JumpinJack hat geschrieben: Aber so wie ich dich Jensemann verstehe wird in c++ mit den mitteln von Windows oder Linux geschafft. Wobei halt der jeweilige compiler (ob linux oder windows) das in die entsprechenden Betriebsystembefehle umsetzt. Richtich?!
Nee, das is sehr hart und sprengt den rahmes des forums, daher lege ich dir wirklich google nahe, ich will es trotzdem mal versuchen.

Wenn du eine datei mit word erstellst, isses ein spezielles dateiformat, eben das von word, ebenso sind die formate ausführbarer dateien unterschiedlich, unter Linux wird das s.g. ELF format verwendet, unter windows ein anderes. Dieses format ist erstmal betriebsystem abhängig, es sagt dem system, welche libs es laden muß (DLLs), es sagt dem system anschliessend welchen code es ausführen muß (maschinen code, also die lustigen 0 und 1), dieser maschinencode ist nicht nur OS ahängig, sondern auch CPU abhängig, man denke an gänzlich andere systeme wie PC vs. PPC (Apple) oder auch nur an spezielle befehlssätze der x86 CPUs, z.B. 3dnow oder SSE(2).

Das sind aber alles unterschiede die dein compiler für dich unsichtbar macht. das echte "Problem" sind libs (DLLs), diese stellen dir (wie es bei php die include files tuen) funktionen oder klassen zur verfügung, die libstdc++ ist eine oft verwendete, sie stellt dir die üblichen systems routinen C++ verdaulich zur verfügung.

Nun gibt es hier unterschiedliche standards für diese standard libs, wie eben Posix oder eben das was windows für seinen standard hällt, einfach ausgedrückt, ne funktion heisst auf windows anders als auf linux oder auf nem mac, das kann dein compiler natürlich nicht selbst ausbügeln.

Ich kann abschliessend nur sagen, fang mit C++ an, dann wird dir das alles klar, das zu erklären scheint so schwer zu sein, wie eingefleischten windowsern mount zu erklären.

Verfasst: 16.02.2004 17:02
von JumpinJack
Hi Jensemann.

Naja ich denke ich habs verstanden. Hatte am WE auch noch ne Unterhaltung mit einem Entwickler. Das hat auch gefruchtet. :D

Mit C++ werd ich besser mal nicht anfangen. Ich hab ja noch nicht mal das php-Buch durch. Also erst php dann c++. ;)

Verfasst: 16.02.2004 17:08
von Reality
JumpinJack hat geschrieben:Hi Jensemann.

Naja ich denke ich habs verstanden. Hatte am WE auch noch ne Unterhaltung mit einem Entwickler. Das hat auch gefruchtet. :D

Mit C++ werd ich besser mal nicht anfangen. Ich hab ja noch nicht mal das php-Buch durch. Also erst php dann c++. ;)
Jo, dann wird auch der Einstieg in C++ super einfach.

Liebe Grüße
Reality

PS: JAVA ist auch nicht schlecht.

Verfasst: 16.02.2004 20:58
von JumpinJack
Meinst du wirklich das es einfach wird?!? Liegen die sprachen denn so nah beieinander?! Ich meine immerhin ist php ne Scriptsprache und damit doch was ganz anderes oder nicht?

Verfasst: 17.02.2004 01:04
von Reality
Nein, Skript- und Programmiersprachen sind sich ähnlich, zumindest was die "Grund-Syntax" angeht. Auch der Aufbau bzw. die Logik ist sich ähnlich.
Der Erfinder von php hat sich übrigens an C orientiert.
JAVA (das lerne ich in der Schule und privat) ist ähnlich wie C++, C++ ist ähnlich wie C. Allgemein sind sich alle Sprachen ähnlich. :P
Kannst du eine Sprache, kannst du alle (zumindest ist es bei den Hochsprachen so).

Liebe Grüße
Reality