Uebung/JIT

Was haben wir in der Uebung gemacht?

Prolog

M.A.U.S? Match/Attach/Unify/Succeed

Simples Beispiel:

 g(a, b). 
 g(c ,d).

Anfrage: g(c, X), was macht M.A.U.S. damit?

Haskell

Haskell - Was muss man bei der Uebersetzung beachten

Closures fuer zB fluechtende/unterversorgte Fkts, grobes Beispiel per unterversorgtem +

Linker&Loader

Was passiert bei dynamischen shared libs?

Exceptions

Exceptions, wie geht das?

Stack Cutting & Stack Unwinding erklaeren

GC

Referenzzaehler erklaeren (& Nachteile? → Zykl. Muell wird nicht erkannt)

Mark&Sweep erklaeren (& Wurzeln nennen: Register, Stack und globale Var.)

Basisimplementierung ist rekursiv, warum ist das schlecht?

Rekursion bei Speicherknappheit

Kopierende Speicherbereiniger erklaeren (& Nachteile? → Nur halber speicher wird genutzt)

Generationelle Speicherbereiniger erklaeren

Zu gen. Speicherber.: Warum kann es in Haskell keine Referenzen in die junge Generation geben? Immutable Objekte

Programmiersprache D (C++ mit GC), wie bekommst du den GC kaputt? Adressen in Ints casten, in Dateien speichern oder per Netzwerk verschicken ;)

Prozedurale Abstraktion

Viel Code, aber System mit sehr wenig Speicher, was mach ich?

ARM Thumb (Subset des Instruktionssets mit kuerzerer Darstellung 16 anstelle von 32bit)

Instr. komprimieren (& beim Laden entpacken + Umrechnen von unkompr. auf kompr. Addr.)

XText

Was ist Metamodell/Modell?