# Laufzeit und Übersetzungszeit



## Bernd1983 (21. Apr 2006)

hallo ich lese immer wieder von Laufzeit und Übersetzungszeit

lt wikipedia ist ja die Laufzeit:
Der Begriff Laufzeit beschreibt in der Informatik im Wesentlichen die Zeitspanne, während der ein Programm von einem Rechner ausgeführt wird. 


ich habe in Algorithmen und Datenstrukturen gelernt: Der Vorteil von Referenzdatentypen ist das man zur Laufzeit beliebig viel Speicher reservieren kann.

Das ist doch ein erheblicher Unterschied.???

Übersetzungszeit dürfte die Zeit sein: wenn ich zb in meine ide eingebe, dann ist das eigentlich schon die Übersetzungszeit

??????



mfg

bernd


----------



## personenkult (21. Apr 2006)

Übersetzungszeit ist die Zeit, die ein z.B. Compiler brauch den Sourcecode zu übersetzen. Laufzeit ist die Zeit, in dem dein Programm läuft. Deshalb heißt es ja auch so schön "Laufzeitfehler".


----------



## Bernd1983 (21. Apr 2006)

also jetzt betreffend programmieren. würde das bedeuten die Laufzeit ist die Zeit wo ich mein Programm schreibe. zb in eclipse bis zum compilieren?


----------



## Leroy42 (21. Apr 2006)

Entwicklungszeit := Zeit die du in Eclipse verbringst. (Edit: und von mir aus auch in der Badewanne)
Compilezeit := Zeit während der Eclipse übersetzt.
Laufzeit := Zeit während der dein Programm läuft.

Ist doch wirklich nicht schwer zu verstehen  :shock:


----------



## Illuvatar (21. Apr 2006)

Nein, das ist "Übersetzungszeit". Laufzeit ist, wenn du es ausführst, also wenn dein Programm läuft 

Mit Eclipse ist das vielleicht nicht so klar. Wenn du zB per Notepad programmierst, kommt ja ein zusätzlicher Schritt hinzu:

 - Programmieren
 - javac Name.java --> Übersetzt Name.java + Erzeugt Name.class --> Übersetzungszeit
 - java Name --> Was dann passiert, passiert "zur Laufzeit"

Edt: Zweit0r


----------



## Bernd1983 (21. Apr 2006)

ja ok. so versteh ich das schon.


nur wie ich anfangs erwähnte, soll ja der Vorteil von Referenzdatentypen sein, dass man zur Laufzeit neuen Speicherplatz reservieren soll.?? aus Algorithmen Vorlesung

meint man da mit Laufzeit was anderes??


----------



## A.T. (21. Apr 2006)

Irgendwie scheint mir das was du da sagst aus dem Zusammenhang gerissen zu sein!
Also Als Referenzdatentypen bezeichnet man ganz allgemein Objekte z.B. vom Typ String, Array, List oder sonst was. Das sind halt Datentypen denen man während der Laufzeit mehrere Sachen zuweisen kann und die dynamisch Wachsen.
Deine Variable im Code enthält praktisch nur die Adresse des Speicherortes und du kannst zum Beispiel einem String erst 5 Zeichen lang machen und diesen dann um weitere 3 erweitern. Was du mit einem int, double oder char nicht machen kannst. Die haben eine Feste länge und mehr geht nicht rein.
Damit kannst du unter andem in eine Liste immer weitere Listenelemente stecken. So gesehen beliebig viele wird nur vom Speicher des Rechners beschrenkt.

Hoffe konnte dir helfen?! Vermutte aber das ich dien Problem nicht ganz verstehe...
Gruß
A.T.


----------



## Bernd1983 (21. Apr 2006)

ok glaub habs geschnallt.

während dem mein Programm läuft - zur Laufzeit - können Datenstrukturen dynamisch wachsen. was bei Elementardatentypen nicht möglich ist da sie statisch sind.


thx


----------



## aeonfluxx (6. Mrz 2007)

Hallo,

ich werfe mal eine andere Frage ein, was zur Überschrift passt. Undzwar verstehe ich nicht ganz wann in Java der Typ eines Ausdrucks berechnet wird?

Wenn ich z.B. folgenden Code habe.

Class B extends A { ...}

und die Variablen

A a;
B b;

a = (A)b; // Cast nötig wg. verkleinernder Konvertierung ?
b = a;

Kann man sagen, dass der Typ von a = (A)b zur Compilezeit geschieht wg. verkleinernder Konvertierung und b=a zur Laufzeit?

Oder ist es gaaanz anders?

Danke euch sehr!

Aeon


----------



## Wildcard (6. Mrz 2007)

Richtig wäre:

```
a = b;
b = (B)a;
```


----------



## aeonfluxx (6. Mrz 2007)

Danke Wildcard!

Hab jetzt auch was im Web gefunden: http://www.student.cs.uwaterloo.ca/~cs133/Resources/Java/Debugging/compile.shtml#7

Kann man aber anhand des Cast-Strangs sagen wann es evtl. einen Fehler gibt? Also Compilezeit oder Laufzeit?


----------



## Wildcard (6. Mrz 2007)

Ein Casting schlägt zu Laufzeit fehl (es sei den du versuchst in einen generell nicht kompatiblen Typ zu casten, dann merkt das schon der Compiler).


----------

