• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Programmiersprachen kompilieren/interpredieren

A

andi01

Guest
Hallo,

wir müssen ein paar Fragen für die Schule beantworten.

Warum können HTML/XML, JAVA, C#, VB.NET nicht compiliert oder interprediert werden?

Java und C# müssen doch kompiliert werden oder?

Viele Grüße

Andi
 
Werbung:
Es heißt interpretiert.

Eine gute Anlaufstelle für solcherlei Fragen ist Wikipedia. Dort findest du beispielsweise die Angabe, dass HTML eine Auszeichnungssprache ist, also in dem Sinne keine Programmiersprache, die Logikprogrammierung gestattet.

Was etwa Java angeht, siehe zweiter Absatz hier:

- Java (Programmiersprache)

Bei C# sollte das ähnlich sein.

Ich würde es so ausdrücken: Java und C# werden in Bytecode kompiliert, der von der JVM beziehungsweise der .NET VM interpretiert (= in Anweisungen umgeformt, die das jeweilige Zielsystem versteht) wird. So arbeitet aber generell praktisch jede „Interpretersprache“ (um nicht zu sagen, jede Programmiersprache), was die Sachlage etwas unübersichtlich macht.

Während bei Java etwa der erzeugte Bytecode (unter Umständen?) in .class-Dateien abgelegt wird, wird er bei PHP in der Regel bei jedem Aufruf neu generiert. (Es gibt allerdings auch für PHP Bytecode-/Opcode-Caches.)

Java, C# oder auch PHP verlassen sich dabei allerdings auf eine Virtual Machine, die den Bytecode interpretiert, während etwa C nativ für eine Prozessorarchitektur kompiliert wird (spart den VM-Schritt).
 
so grob versteh ich die Sache schon,

aber ich versteh nicht, warum der Lehrer wissen will, warum man Java und C# nicht kompilieren/interpretieren kann.

hoffe du verstehst was ich meine.
 
Werbung:
Ja. Darauf habe ich auch geantwortet. ;)

Der angesprochene zweite Absatz des verlinkten Wikipedia-Eintrags zu Java:

Mit Java werden meist keine herkömmlichen Programme in Maschinensprache erzeugt, sondern Bytecode, der dann in einer speziellen Laufzeitumgebung ausgeführt wird. Der wesentliche Bestandteil dieses Java Runtime Environments ist die Java Virtual Machine, die die Programme ausführt, indem sie den Bytecode interpretiert und bei Bedarf kompiliert (Just-in-time-Kompilierung, häufig mit Hotspot-Optimierung).

Dort taucht sowohl interpretiert als auch kompiliert auf. Mehr kann ich dazu auch nicht sagen.

PS: Willkommen im Forum.
 
Man kann auch HTML kompilieren CHM (Dateiformat) und Java interpretieren (wird zumindest bei einem Subset der Sprache bei Java Server Pages gemacht). Bei Java Server Pages wird dann der Code erst zur Laufzeit in ByteCode umgewandelt (ähnlich wie VB.NET oder C# in ASPX-Dateien). VB.NET und C# wird aber auch oft kompiliert und man erstellt normale Windows-Anwendungen. Bei VB.NET und C# geht man auch oft eine Mischform ein, einen Teil der Anwendung legt man in kompilierten Assemblies ab, einen Teil lässt man in Script-Dateien.

Mir scheint, entweder hat dein Lehrer keine Ahnung, oder die Frage war anders formuliert, als du sie hier wiedergegeben hast.
 
Die Frage vom Arbeitsblatt lautet: :)

Nennen Sie die Sprachen, die der untenstehenden Tabelle (Compiler und Interpreter) nicht zugeordnet werden können, und begründen Sie, weshalb eine eindeutige Zuordnung problematisch ist!

Die Sprachen die nicht zugeordnet werden können sind HTML/XML, JAVA, C# und VB.NET.

Ich kann zwar erklären, dass z.b. HTML nicht kompiliert oder interpretiert wird, weil es eine Auszeichnungssprache ist, die der Webbrowser wiedergibt und weil es ja kein Programm ist, nicht rechnen muss usw.

Aber warum wäre dies problematisch wenn man sie kompiliert oder interpretiert?
 
Werbung:
Ich denke, das problematisch bezieht sich nicht auf das Kompilieren, sondern das Zuordnen. Wie mein letzter Eintrag ja zeigt, werden einige Sprachen sowohl als Scriptsprache verwendet, können aber auch in ausführbare Programme kompiliert werden. Also kann man sie nicht eindeutig zuordnen und daher ist die Zuordnung problematisch. Sie sind sozusagen weder Fisch noch Fleisch :-), zumindest im Web-Umfeld. Betrachtet man reine Client-Anwendungen, dann werden VB.NET, C# oder Java immer kompiliert.
 
Ja schon… Da ist eben die grundsätzliche Frage, ob man Sprachen mit Virtual Machine zu „Compiler“ zählen will. Ich vermute, das Arbeitsblatt tut das nicht und versteht unter „Compiler“ eine Programmiersprache, die in Maschinencode/Assembler übersetzt wird. Das werden Java, C# und VB.NET gewöhnlich nicht.
 
Zurück
Oben