Lars Bak (Informatiker)
Lars Bak (* um 1965) auch Lars Bak Petersen[1] ist ein dänischer Informatiker, der auf die Entwicklung virtueller Maschinen spezialisiert ist. Er ist bei Google angestellt und hat die JavaScript-Engine V8 entwickelt. Bak hat im Zusammenhang mit virtuellen Maschinen eine Reihe von Patenten angemeldet.
Leben
Der Beginn bei Mjølner
Bak inskribierte 1982 Informatik an der Universität Aarhus und schloss das Studium 1988 mit dem Master of Science ab.[1][2] Er arbeitete seit 1986 am Nordic research project Mjølner mit und gründete 1988 nach Abschluss des Studiums zusammen mit seinem Professor Ole Lehrmann Madsen ein Spin-off namens Mjølner Informatics.[3] Bei Mjølner arbeitete er an der Implementierung der Programmiersprache BETA. Die BETA-VM war seine erste virtuelle Maschine.[4][5]
Zeit im Silicon Valley
1991 wechselte er zur Self-Gruppe von Sun Microsystems nach San José. Dort traf er unter anderem auf Urs Hölzle, der mit der Entwicklung neuer Compiler- und VM-Techniken beschäftigt war. Bak arbeitete dort vor allem mit der Entwicklung der Self-VM.[6]
1994 verließen Bak, Gilad Bracha, Steffen Grarup, Robert Griesemer, David Griswold und Urs Hölzle Sun und gründeten Longview Technologies in Palo Alto, welches auch unter dem Namen Animorphic Systems auftrat. Dort sollte vor allem die Programmiersprache Strongtalk entwickelt werden. Dort gelang Urs Hölzle die Entwicklung eines Type-Feedback-Compilers und 1995 wurde aufgrund der stürmischen Entwicklung von Suns neuer Programmiersprache Java die Entwicklung der HotSpot-VM gestartet.
1997 kaufte Sun[7] Longview Technologies[8] für rund 23 Millionen US-Dollar[9][10] und Bak wurde leitender Ingenieur der Hotspot-VM bei Sun. Zum Zeitpunkt der Übernahme war HotSpot rund doppelt so schnell wie damals am Markt befindliche JVMs.[11] HotSpot-VM ist heute noch die wichtigste Java Virtual Machine und wird nun von Oracle vertrieben.
Zurück in Aarhus
2000 kehrte Bak aus familiären Gründen nach Dänemark zurück, war aber weiterhin bei Sun angestellt. 2001 begann er die Arbeit mit Monty, einer Java-VM für Mobiltelefone, die später in CLDC HotSpot Virtual Machine umbenannt wurde.[3][12][13]
2002 gründete Bak mit Kaspar V. Lund eine Firma namens OOVM, um dort eine gleichnamige VM für Embedded Systems zu entwickeln. OOVM ist dabei eine Smalltalk-Implementierung, die ohne ein darunter liegendes Betriebssystem auskommt und es erlaubt, darauf laufende Programme im laufenden Betrieb zu verändern.[14][15]
2004 kaufte das Schweizer Unternehmen Esmertec[16] OOVM und Bak wurde Angestellter von Esmertec.
2006 plante Google einen eigenen Webbrowser Chrome. Hierfür wurde eine schnelle JavaScript-VM benötigt. Nachdem der nunmehrige Google-Vizepräsident für Technik Urs Hölzle Bak das Angebot machte, nach seinen Wünschen ein Team in Aarhus zusammenzustellen zu dürfen, begann er zusammen mit Kasper Lund mit der Entwicklung von V8.[17] Schon nach wenigen Monaten waren erste Versionen deutlich schneller als die damals eingesetzten JavaScript-Engines von Internet Explorer, Firefox und Safari. Inzwischen laufen alle wichtigen JavaScript-Engines mindestens um den Faktor 100 schneller als dies noch 2008 der Fall war.[18]
2010 begann Bak zusammen mit Gilad Bracha und Kaspar Lund die Programmiersprache Dart zu entwickeln. Dart wurde 2011 auf der Konferenz Goto in Aarhus präsentiert und erreichte am 14. November 2013 die erste stabile Version.[19]
Für 2018 wurde Bak der Dahl-Nygaard-Preis zugesprochen.
Trivia
Während seiner Schulzeit interessierte sich Lars Bak kaum für Computer; erst an der Universität begann er sich intensiv damit zu beschäftigen.[12]
In den Jahren im Silicon Valley hat er rund 20 kg zugenommen. Zurück in Dänemark schaffte er es mit Hilfe einer Atkins-Diät und viel Sport diese überflüssigen Kilos dauerhaft loszuwerden. In den Google-Büros in Aarhus wird die „keine Zucker“-Regel von den Angestellten mitgetragen.[12]
Bak begann die Arbeit an V8 zuerst in einem zu einem Büro umfunktionierten Wirtschaftsgebäude seines Bauernhofes. Als das Team größer wurde, verlegte er die Entwicklung in ein Google-Bürogebäude auf dem Campus der Universität Aarhus.[12]
Patente
- Patent US6415381: Mixed execution stack and exception handling. Angemeldet am 6. Oktober 1997, veröffentlicht am 2. Juli 2002, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Robert Griesemer, Urs Hölzle.
- Patent US20060294528: Process and apparatus for sharing inline caches. Angemeldet am 13. Dezember 2000, veröffentlicht am 28. Dezember 2006, Anmelder: Lund Kasper V, Lars Bak, Andersen Jakob R, Steffen Grarup, Beat Heeb, Erfinder: Kasper Lund, Lars Bak, Jakob Andersen, Steffen Grarup, Beat Heeb.
- Patent US5970249: Method and apparatus for performing byte-code optimization during pauses. Angemeldet am 6. Oktober 1997, veröffentlicht am 19. Oktober 1999, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Urs Holzle.
- Patent WO2006111208: Process and system for real-time relocation of objects during garbage collection. Angemeldet am 22. April 2005, veröffentlicht am 26. Oktober 2006, Anmelder: Esmertec Ag, Steffen Grarup, Lars Bak, Kasper Lund, Jakob Andersen, Erfinder: Steffen Grarup, Lars Bak, Kasper Lund, Jakob Andersen.
- Patent US20040244009: Inline database for receiver types in object-oriented systems. Angemeldet am 6. Oktober 1997, veröffentlicht am 2. Dezember 2004, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Urs Holzle.
- Patent US6240547: Method and apparatus for dynamically deoptimizing compiled activations. Angemeldet am 6. Oktober 1997, veröffentlicht am 29. Mai 2001, Anmelder: Sun Microsystems, Inc., Erfinder: Urs Hölzle, Lars Bak.
- Patent US6513156: Interpreting functions utilizing a hybrid of virtual and native machine instructions. Angemeldet am 30. Juni 1997, veröffentlicht am 28. Januar 2003, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Robert Griesemer.
- Patent WO2006111209: Process and system for sharing program fragments. Angemeldet am 22. April 2005, veröffentlicht am 26. Oktober 2006, Anmelder: Andersen Jakob R, Lars Bak, Lund Kasper V, Steffen Grarup, Erfinder: Jakob Andersen, Lars Bak, Kasper Lund, Steffen Grarup.
- Patent US8392881: Supporting efficient access to object properties in a dynamic object-oriented programming language. Angemeldet am 13. Mai 2008, veröffentlicht am 5. März 2013, Anmelder: Google Inc., Erfinder: Kasper Verdich Lund, Lars Bak.
- Patent US6510437: Method and apparatus for concurrent thread synchronization. Angemeldet am 4. November 1996, veröffentlicht am 21. Januar 2003, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Timothy G. Lindholm.
- Patent US6714991: Method and apparatus for implementing fast subclass and subtype checks. Angemeldet am 23. März 1998, veröffentlicht am 7. Juni 2006, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Srdjan Mitrovic, Urs Holzle.
- Patent EP0950947: Static binding of dynamically dispatched calls in the presence of dynamic linking and loading. Angemeldet am 24. März 1998, veröffentlicht am 10. September 2003, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Srdjan Mitrovic, Urs Holzle.
- Patent US8578352: Optimizing object oriented programs using limited customization. Angemeldet am 31. März 2011, veröffentlicht am 13. November 2013, Anmelder: Google, Inc., Erfinder: Srdjan Mitrovic, Lars Bak.
- Patent EP0945791: Techniques for reducing the cost of dynamic class initialization checks in compiled code. Angemeldet am 22. März 1999, veröffentlicht am 5. Januar, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Srdjan Mitrovic.
- Patent US7181732: Method and apparatus for facilitating lazy type tagging for compiled activations. Angemeldet am 14. November 2001, veröffentlicht am 20. Februar 2007, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Kasper V. Lund.
- Patent EP1163581: Monitorkonvertierung in einem multi-threaded computer system. Angemeldet am 25. Februar 1999, veröffentlicht am 4. Dezember 2002, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Sheng Liang, Hong Zhang.
- Patent US6134627: Thread synchronization in a computer controlled by an object-based program. Angemeldet am 4. November 1996, veröffentlicht am 17. Oktober, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak.
- Patent US6704927: Static binding of dynamically-dispatched calls in the presence of dynamic linking and loading. Angemeldet am 24. März 1998, veröffentlicht am 9. März 2004, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Srdjan Mitrovic, Urs Hölzle.
- Patent WO2003042822: Method and apparatus for facilitating compact object headers. Angemeldet am 14. November 2001, veröffentlicht am 22. Mai 2003, Anmelder: Sun Microsystems Inc, Erfinder: Lars Bak, Steffan Grarup.
- Patent WO2003042835: Non-intrusive gathering of code usage information to facilitate removing unused compiled code. Angemeldet am 14. November 2001, veröffentlicht am 22. Mai 2003, Anmelder: Sun Microsystems Inc, Erfinder: Lars Bak, Jacob Andersen, Kasper Lund.
- Patent EP1444574: Lazy type tagging in compiled activation frames for garbage collection in mixed-mode systems with interpreter and compiler. Angemeldet am 14. November 2001, veröffentlicht am 11. August 2004, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Kasper Lund.
- Patent WO2003042825: Method and apparatus for dynamically compiling byte codes into native code. Angemeldet am 14. November 2001, veröffentlicht am 22. Mai 2003, Anmelder: Sun Microsystems Inc, Erfinder: Lars Bak.
- Patent US6308185: Methods and apparatus for generational dynamic management of computer memory. Angemeldet am 6. März 1998, veröffentlicht am 28. Oktober 2001, Anmelder: Sun Microsystems, Inc., Erfinder: Steffen Grarup, Lars Bak.
- Patent EP0840215: Method and apparatus for thread synchronization in object-based systems. Angemeldet am 4. November 1996, veröffentlicht am 18. September 2002, Anmelder: Sun Microsystems, Inc., Erfinder: Lars Bak, Timothy G. Lindholm.
- Patent US7592930: Method and apparatus for reducing memory usage by encoding two values in a single field. Angemeldet am 13. Mai 2008, veröffentlicht am 22. September 2009, Anmelder: Google Inc., Erfinder: Mads Sig Ager, Lars Bak, Kasper Verdich Lund.
- Patent US8244775: Using map objects to access object properties in a dynamic object-oriented programming language. Angemeldet am 13. Mai 2008, veröffentlicht am 14. August 2012, Anmelder: Google Inc, Erfinder: Lars Bak, Kasper Verdich Lund.
Literatur
- Lars Bak, Claus Nørgaard, Elmer Sandvad, Jørgen Lindskov Knudsen, Ole Lehrmann Madsen: An Overview of the Mjolner BETA System. Verlag Aarhus Universitet, Datalogisk Afdeling, 1991 (Google Books).
- Claus H. Pedersen, Lars Bak Petersen, Per Fack Sørensen: The Beta Shadow Language: - a Basis for High Level Debugging. In: DAIMI IR,. Band 77. Datalogisk Afdeling, Aarhus Universitet, 1987, ISSN 0106-9969 (Google Books).
- Jørgen Lindskov Knudsen,Ole Lehrmann Madsen, Claus Nørgaard, Lars Bak Petersen, Elmer Sandvad Sørensen: TeachingObjecbOriented Programming Using BETA∗. In: DAIMI PB, Aarhus universitet Datalogisk afdeling. Band 312. Aarhus University, Computer Science Department, 1990, ISSN 0105-8517 (soundeffects.dk).
- Peter Andersen, Lars Bak, Søren Brandt, Jørgen Lindskov Knudsen, Ole Lehrmann Madsen, Kim Jensen Møller, Claus Nørgaard, Elmer Sandvad: The Mjølner BETA system. (PDF)
- Jakob R. Andersen, Lars Bak, Steffen Grarup, Kasper V. Lund: Design, Implementation, and Evaluation of the Resilient Smalltalk Embedded Platform. (PDF; 186 kB) In: Computer Languages, Systems & Structures, Volume 31, Issues 3–4, Oktober–Dezember 2005, S. 127–141.
- Lars Bak, Gilad Bracha, Steffen Grarup, Robert Griesemer, David Griswold, Urs Holzle: Mixins in Strongtalk. (PDF; 272 kB)
- Kenneth Russell, Lars Bak: The HotSpot™ Serviceability Agent: An out-of-process high level debugger for a Java™ virtual machine. JVM ’01 Paper, S. 117–126.
- Ole Agesen, Lars Bak, Craig Chambers, Bay-Wei Chang, Urs Hölzle, John Maloney, Randall B. Smith, David Ungar, Mario Wolczko: The SELF 4.1 Programmer’s Reference Manual. (PDF) Sun Microsystems, 22. Januar 2000
Weblinks
- Scott McCloud: Google Chrome Comic Googlebooks. Als Comic verfasste Beschreibung des Browsers
- High-Performance Object-Oriented Virtual Machines (PDF)
Einzelnachweise
- Masters produced Computer Science – The following list provides an overview of all Master’s produced at the Department of Computer Science (Memento vom 19. März 2014 im Internet Archive)
- Bak Biography
- Mindre, smartere og hurtigere. (Memento vom 16. März 2014 im Internet Archive) In: AUgustus nr. 4 – 2009 (PDF) Dezember 2009
- 008 JSJ V8 and Dart with Lars Bak and Kasper Lund. (Memento vom 15. März 2014 im Internet Archive) WOODY2SHOES, 14. März 2012.
- Lars Bak, Jørgen Lindskov Knudsen, Ole Lehrmann Madsen, Claus Nørgaard, Elmer Sandvad: An overview of the Mjølner BETA System. April 1991.
- Dave Griswold: The History of the Strongtalk Project.
- Keith Hankin: Sun buys Java compiler technology based upon Self!!! 18. Februar 1997.
- Engineers to make significant contributions to Sun’s Javatm Platform (Memento vom 20. April 1999 im Internet Archive), Mountain View 18. Februar 1997.
- CASPER THOMSEN: Schweizere køber århusiansk softwarefirma. In: computerworld.dk. 28. Juli 2004, abgerufen am 1. März 2015 (dänisch).
- Debora Tidwell: FOOL CONFERENCE CALL SYNOPSIS – Sun Microsystems, Inc. In: The Motley Fool. 26. April 1997, archiviert vom Original am 2. April 2015; abgerufen am 1. März 2015.
- Cade Metz: Google ‘Crankshaft’ inspired by Sun Java HotSpot – Bak to ‘adaptive compilation’. 9. Dezember 2010.
- The genius behind Google’s browser. (Memento vom 31. Dezember 2011 im Internet Archive) FT Magazine, 27. März 2009.
- Resilient: Making Embedded Systems Serviceable.
- Kasper V. Lund, Jakob R. Andersen: Revolutionizing Embedded Software. (PDF; 929 kB) Master’s Thesis
- Andrew Orlowski: Forgotten language enables nonstop gadgets – Smalltalk, in a very small machine. 27. Juli 2004.
- Esmertec Acquires OOVM; OOVM – Developer of Disruptive Technology for Embedded Devices with Minimal Memory. am 27. Juli 2004.
- Dan Mygind: Her er historien bag Chromes danske V8-motor. Her kommer historien om den danske udvikling af javascript-engine V8 i googles nye browser, Chrome. computerworld.dk, 3. September 2008.
- Lars Bak: Language Based Virtual Machines … or why speed matters. (Memento vom 23. September 2015 im Internet Archive) (PDF)
- Dart 1.0: A stable SDK for structured web apps 14. November 2013.