Fast and Effective Optimization of Statically Typed Object Oriented Languages

fbfeix

Erfahrenes Mitglied
Hallo Leute,

so... hab grad ne Doktorarbeit mit diesem Titel entdeckt. Ich persönlich würde das ganze mit

Schnelle und effektive Optimierung von statisch-typisierten objektorientierten Sprachen

übersetzen. Leider kann ich mir darunter aber überhaupt nichts vorstellen. Was ist den mit statisch-typisierten (objektorientierten) Sprachen gemeint? Und noch ne Frage: Was ist ne Expensive-Optimization?
(Habe ich in meinen Compilereinstellungen gefunden)
 
Statisch typisierte Sprachen sind im Gegensatz zu dynamisch-typisierten Sprachen in der Lage, zu unterscheiden, ob ein Wert einem Objekt zu geordnet werden darf oder nicht. Beispiel:

In C++ hast du eine Variable a vom Typ std::string. Da jetzt eine simple Zahl rein zu schreiben ist nicht so ganz einfach. In PHP aber bspw. ist das überhaupt kein Problem, da in PHP eine Variable jeden beliebigen Wert annehmen kann.



Expensive Optimization geht auf Kosten von anderen Aspekten z.B. Größe der Binary (in den meisten Fällen ist es das).

Wobei ich das immer etwas mit Vorsicht geniese, denn größere Binary bedeutet erstmal mehr Code, und mehr Code kann eigentlich nicht schneller (und damit optimaler) laufen als weniger Code.
 
Ah super. Danke. jetz weiß ich auch was dynamische Sprachen sind :D
Da ich mir grad die Einstellungen für meinen Compiler etwas näher anschaue hätte ich noch ein paar Fragen:
1) Was sind den Debugging-Symbole?
2) Was sind ISO C90 Programme?
3) Was ist ein Frame-Pointer?
 
Debugging Symbole brauchst du, wenn du dein Programm zur Laufzeit mit Hilfe eines Debuggers (bei den meisten IDE's ist einer dabei) auf Fehler hin untersuchen willst. Ein Programm, was man an einen Kunden ausliefert, wird in der Regel keine Debugging-Symbole enthalten, dort ist das nicht notwendig. Während der Entwicklung braucht man es schon.

ISO C90 ist ein Standard, der eingeführt wurde, um den verschiedenen C(++)-Compilern ein einigermaßen identisches Verhalten aufzubinden. Wenn man ISO-Programme schreibt, bedeutet das erstmal, das man den Source-Code hernehmen könnte und auf einem anderen Compiler ohne Anpassungen neu kompilieren kann. Anderer Compiler bedeutet hier erstmal, einen anderen, als den, mit dem der Source-Code ursprünglich entwickelt wurde. Die Praxis sieht aber etwas anders aus ;) Vor allem beim Linken gibt's da doch diverse Unterschiede zwischen bspw. MSVC und MinGW.

Ein Frame-Pointer ist in der Regel ein Register, was beim Eintritt in Funktionen zum Tragen kommt. Ich könnte das jetzt versuchen zu erklären, greife an dieser Stelle aber lieber auf externe Resourcen zurück: http://www.uninformativ.de/?ndo=single&newsid=149
 
Zurück