| Autor |
Nachricht |
C++CodeThatRunsEverywhere
Unregistrierter
|
C++CodeThatRunsEverywhere Unregistrierter
21:06:14 03.03.2012 Titel: |
Gibt es C++ Compiler die aus C++ Code Java Bytecode erzeugen können? |
Zitieren |
So dass die Binarys plattformunabhängig werden? |
|
|
|
 |
Mechanics
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.01.2012
Beiträge: 1372
|
Mechanics Mitglied
21:13:52 03.03.2012 Titel: |
|
Zitieren |
Das macht keinen Sinn. Also - nein. |
|
|
|
 |
cooky451
Mitglied
Benutzerprofil
Anmeldungsdatum: 16.10.2010
Beiträge: 6873
|
cooky451 Mitglied
21:16:05 03.03.2012 Titel: |
|
Zitieren |
| Mechanics schrieb: | | Das macht keinen Sinn. | Doch. Wenn C++ ein ordentliches GUI Toolkit hätte würde ich C++ in so ziemlich jeder Hinsicht vorziehen, sogar wenn es letztlich nicht schneller wäre.
Speicheroptimierungen kann man dann aber wohl vergessen. |
_________________ Sie sind nicht berechtigt unrechtmäßige Kopien dieses Datenträgers zu erstellen.™
Keksverteilungsbeauftragter
Zuletzt bearbeitet von cooky451 am 21:17:01 03.03.2012, insgesamt 1-mal bearbeitet |
|
 |
C++CodeThatRunsEverywhere
Unregistrierter
|
C++CodeThatRunsEverywhere Unregistrierter
21:22:11 03.03.2012 Titel: |
|
Zitieren |
| Mechanics schrieb: | | Das macht keinen Sinn. Also - nein. |
plattformunabhängige Binarys und nicht nur plattformunabhäniger Code sind IMO durchaus sinnvoll.
Dadurch kann man nur für eine Plattform entwickeln und wenn der Kunde irgendwann mal Lust hat auf eine andere Plattform zu wechseln, läuft seine alte Software trotzdem noch darauf. Er braucht nur eine JVM dafür. |
|
|
|
 |
Zeus
Mitglied
Benutzerprofil
Anmeldungsdatum: 25.09.2003
Beiträge: 2847
|
Zeus Mitglied
22:01:12 03.03.2012 Titel: |
Re: Gibt es C++ Compiler die aus C++ Code Java Bytecode erzeugen können? |
Zitieren |
| C++CodeThatRunsEverywhere schrieb: | | So dass die Binarys plattformunabhängig werden? | Anscheinend gibst kein Bedarf für solche Projekte:
http://nestedvm.ibex.org/ |
|
|
|
 |
Mechanics
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.01.2012
Beiträge: 1372
|
Mechanics Mitglied
22:59:47 03.03.2012 Titel: |
|
Zitieren |
"Macht keinen Sinn" bezog sich weder auf plattformunabhängige Binaries, noch darauf, ob man Java oder C++ vorzieht. C++ ist einfach vom Prinzip her nicht Java und so ein Compiler würde keinen Sinn machen. Er würde wieder 1000 Einschränkungen auferlegen, man müsste sowieso sehr vieles beachten, damit es überhaupt irgendwie funktioniert... Nee, ich seh gar keinen Sinn in so einem Projekt. Wenn du plattformunabhägige Programme willst, musst du halt selber schauen, dass du entsprechend in C++ programmierst, möglich ist es ja. |
|
|
|
 |
bait
Unregistrierter
|
bait Unregistrierter
23:33:29 03.03.2012 Titel: |
|
Zitieren |
|
 |
Mechanics
Mitglied
Benutzerprofil
Anmeldungsdatum: 27.01.2012
Beiträge: 1372
|
Mechanics Mitglied
00:11:32 04.03.2012 Titel: |
|
Zitieren |
|
 |
Horst Hannelore Hansen
Unregistrierter
|
Horst Hannelore Hansen Unregistrierter
00:48:49 04.03.2012 Titel: |
|
Zitieren |
| C++CodeThatRunsEverywhere schrieb: | | Dadurch kann man nur für eine Plattform entwickeln und wenn der Kunde irgendwann mal Lust hat auf eine andere Plattform zu wechseln, läuft seine alte Software trotzdem noch darauf. Er braucht nur eine JVM dafür. | Im anderen Fall benötigt er nur einen Compiler und die Build-Abhängigkeiten. Wenn er sich irgendwelche Binarys andrehen lassen hat, ohne den Source dazu zu haben, hat er aber in der Tat Pech gehabt.
Zu LLVM: in der Tat ermöglicht LLVM/Clang die Ausgabe von LLVM-IR als von der Zielmaschine unabhängige Zwischenrepräsentation. Aus dieser lässt sich dann der entsprechende Maschinencode erzeugen. Dies theoretisch auch mit einem Just-in-Time-Compiler, auch wenn das normalerweise bei der Nutzung von Clang/LLVM als C- oder C++-Compiler eher nicht der Fall ist. |
|
|
|
 |
krümelkacker
Mitglied
Benutzerprofil
Anmeldungsdatum: 10.08.2010
Beiträge: 2232
|
krümelkacker Mitglied
12:16:57 05.03.2012 Titel: |
|
Zitieren |
| Horst Hannelore Hansen schrieb: |
Zu LLVM: in der Tat ermöglicht LLVM/Clang die Ausgabe von LLVM-IR als von der Zielmaschine unabhängige Zwischenrepräsentation. Aus dieser lässt sich dann der entsprechende Maschinencode erzeugen. Dies theoretisch auch mit einem Just-in-Time-Compiler, [...]
|
Naja, ganz unabhängig ist das nicht. Bei Typen wie "int", "long", "double" und "float" in C und auch C++ gibt es ja noch genug Spielraum. Und was das "struct padding"/alignment angeht, gibt's meines Wissens nach auch Unterschiede. Spätestens bei der Übersetzung zum LLVM Byte Code (oder wie auch immer das heißt), müsste man sich doch bei solchen Dingen festlegen. Damit würde man sich Maschinen-technisch doch schon etwas einschränken, nicht? Aber prinzipiell, geht das natürlich. Man könnte einfach dem LP64-Modell folgen und float=32bit(IEEE-754) und double=64bit(IEEE-754) festlegen, so, wie es glaub'ich auch Java gemacht hat. Aber in Java gibt's auch kein sizeof und Zeigerfrickeleien. Da ist man einfach noch ein Stück weiter weg von der Maschine und kann die JVM so bauen, wie man es will, inklusive eines Objekt-Layouts, was einem am besten in den Kram passt ...
Um auf die "C++ auf JVM" Thematik zurück zu kommen: Ich sehe nicht, wie das aufgrund der vielen Einschränkungen der JVM funktionieren soll, ohne das Verhalten des Programms stark anzupassen und auszubremsen. |
Zuletzt bearbeitet von krümelkacker am 12:26:34 05.03.2012, insgesamt 1-mal bearbeitet |
|
 |