Programmiergrundlage für C++

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Programmiergrundlage für C++

Beitrag 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.
Liebe Grüße
JumpinJack
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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.
The Lord of Programming
Mitglied
Beiträge: 344
Registriert: 25.05.2003 13:49
Wohnort: Illingen(Württ)
Kontaktdaten:

Re: Programmiergrundlage für C++

Beitrag 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)
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Re: Programmiergrundlage für C++

Beitrag 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.
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag 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?!
Liebe Grüße
JumpinJack
Jensemann
Ehemaliges Teammitglied
Beiträge: 2549
Registriert: 25.02.2002 01:00

Beitrag 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.
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag 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++. ;)
Liebe Grüße
JumpinJack
Benutzeravatar
Reality
Mitglied
Beiträge: 409
Registriert: 22.04.2003 01:02

Beitrag 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.
Benutzeravatar
JumpinJack
Mitglied
Beiträge: 953
Registriert: 27.05.2002 10:37
Wohnort: Ariendorf
Kontaktdaten:

Beitrag 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?
Liebe Grüße
JumpinJack
Benutzeravatar
Reality
Mitglied
Beiträge: 409
Registriert: 22.04.2003 01:02

Beitrag 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
Antworten

Zurück zu „Coding & Technik“