Introduktion till forskningsområde Lars Bruce Distributed Systems Laboratory
Översikt presentation Mozart / Oz Projekt Nyckellitteratur Nyckelkonferenser Framstående forskargrupper Stora resultat / Seminary papers Centrala frågeställningar
Oz Ett multiparadigm programmerinsspråk Deklarativt Objekt-orienterat Villkorsprogrammering Trådar med data-flödes synkronisering Dynamisk typning Gemensamt projekt:Universität des Saarlandes, Université catholique de Louvain och SICS
Mozart En utvecklingsplatform Mozart Virtual Machine (MVM) Olika subsytem, t.ex. för distribution Utvecklingsmiljö m.m.
Utveckla befintliga kompilatorn Nuvarande kompilatorn utvecklad i Tyskland Dåligt modulerad samt bristfällig dokumentation Projekt inom DSL kräver förändringar i kompilatorn Förbättringar Nya optimeringar Bättre GC
Utveckla en kompilator för.NET.NET – en gemensam plattform for olika pogrammeringsspråk Common Language Runtime (CLR) Intermediary Language (IL) - kod och metadata Common Language Specification (CLS) Gemensamt programbibliotek Microsoft anpassar C++, C#, VB och Jscript Arbete pågår med: CAML, Eiffel, Haskell, Java, ML, Oberon, Pascal, Perl, Python, Scheme, Smalltalk och flera
Oz måste anpassas! Oz#? MVM registermaskin / CLR stackmaskin Oz har multipelt arv Oz är dynamiskt typat CLS tillåter överladdning Hur åstakomma centrala egenskaper hos Oz, som t.ex. unifiering och logiska variabler?
Nyckellitteratur A. V. Aho, R. Sethi and J. D. Ullman. Compilers: Principles, Techniques and Tools – ”Drakboken” Steven S. Muchnick. Advanced Compiler Design & Implementation Hassan Aït-Kaci. Warren’s Abstract Machine: A Tutorial Reconstruction
Nyckelkonferenser PLDI – Confererance on Programming Language Design and Implementation Symposium on Compiler Construction PPDP – International Conference on Principles and Practice of Declerative Programming PLI – Principles, Logics and Implementations of high-level programming languages BABEL – worksshop on multi-language infrastructure and interoperability
Framstående forskargrupper Gregory J. Chaitin et al. - IBM Fred C. Chow and John L. Hennessy – Stanford University Preston Briggs et al. - Rice University Robert E. Tarjan - Princeton University David H. D. Warren – University of Edinburgh Andrew Kennedy, Don Syme m.fl. Microsoft Research Cambridge
Stora resultat/Seminary papers Graph Coloring Chaitin et al. Register allocation via coloring. Computer Languages -81 WAM David H. D. Warren. An abstract Prolog instructions set. Technical report –83 Mozart/Oz Gert Smolka. A Foundation for Higher-order Concurrent Constraint Programming. –94 M. Mehl, R. Scheidhauer and C. Schulte. An Abstract Machine for Oz. –95 m. fl.
Centrala frågeställningar Hur genererar man effektiv kod? Inlining Effektiv registerallokering Effektiva funktionsanrop m.m. Hur kompilerar man Oz för.NET? Anpassningar i språket Run-time stöd