Semesterwoche 7 Flashcards
Was ist der Aufrufstack?
- Speicherplatz für lokale Variablen (und Zwischenergebnisse von Ausdrücken); wird stapelartig durch das Laufzeitsystem verwaltet
- Speichert zur Laufzeit Informationen über die gerade aktiven Methoden in Stackframes
- Bei Methodenaufruf werden die Rücksprungadresse und die lokalen Variablen in einem neuen Stackframe auf dem Stack gespeichert
- Bei Terminierung, wird der zugehörige Stackframe vom Stack geräumt
Wann ist eine Methode direkt/indirekt rekursiv
direkt, wenn sie sich selbst im Rumpf aufruft
indirekt, wenn sie eine Methode aufruft, welche direkt rekursiv ist
Was ist der Heap?
peicherplatz für dynamisch erzeugte Objekte (mit ihren Exemplarvariablen). Wird explizit vom Entwickler (z.B. new in Java) angefordert.
Die Speicherfreigabe erfolgt explizit (z.B. in C++) oder durch den Garbage Collector (z.B. in Java).
Was ist der Garbage Collector?
Sammelt nicht mehr benutzte Objekte, löscht Objekte auf denen keine Referenz mehr besteht
Welcher Fehler wird produziert, wenn der Heap überlastet ist?
OutOfMemoryError
Welcher Fehler wird produziert, wenn der Aufrufstack überlastet ist?
StackOverflowError
Wie werden Programme durch einen Compiler verarbeitet?
- lexikalische Analyse (Tokenliste durch Scanner)
- Syntaxanalyse (Parser erzeugt aus Tokenfolge einen Syntaxbaum)
- Dieser wird analysiert und ggf. dekoriert
- Daraus erzeugt der Codegenerator das ausführbare Maschinenprogramm (bzw. Zielprogramm) und optimiert ggf
Wie werden Strings auf Element einer Menge definiert durch reinen regulären Ausdruck überprüft?
String.matches(regex-ausdruck);
Wie wird eine Auswahl an Elementen in regex ermöglicht?
durch eckige Klammern
“[a-zA-Z]”
Wie gibt man in regex an, dass ein Ausdruck beliebig oft wiederholt werden kann (auch gar nicht)?
*
“[a-z]*”
Wie gibt man in regex an, dass ein Ausdruck beliebig oft wiederholt werden kann (mind. einmal)?
+
“[a-z]+”
Wie gibt man in regex an, dass ein Ausdruck entweder einmal oder gar nicht genutzt werden kann?
?
“[a-z]?”
Wofür steht ein einzelner Punkt in regex?
Für ein beliebiges Zeichen
Welche relevanten Zeichenklassen gibt es in regex?
Welche Quantifizierer in regex gibt es?