Lars Bak (computer programmer)

Last updated
Lars Bak
Lars Bak.png
Computer programmer
Born1965 [1]
NationalityDanish
OccupationComputer programmer
Known forJavaScript expert and work on virtual machines

Lars Bak (born 1965) [1] is a Danish computer programmer. He is known as a JavaScript expert and for his work on virtual machines. He previously worked for Google, having contributed to the Chrome browser as the lead developer of the V8 JavaScript engine.

Contents

Professional life

Bak studied at Aarhus University in Denmark, receiving an MS degree in computer science in 1988 after which he became active in designing and implementing object-oriented virtual machines. He has been awarded the 2018 Senior Dahl–Nygaard Prize. [2]

Virtual machines

After participating in the design and implementation of the BETA Mjølner System, in 1991 he joined the Self group at Sun Microsystems Laboratories in Palo Alto, California. During his time there, he developed a programming environment for Self and added several enhancements to the virtual machine.

In 1994, he joined LongView Technologies LLC, where he designed and implemented high performance virtual machines for both Smalltalk and Java. After Sun Microsystems acquired LongView in 1997, Bak became engineering manager and technical lead in the HotSpot team at Sun's Java Software Division where he developed a high-performance Java virtual machine. [3] [4]

In 2002, after returning to Aarhus, Denmark, Bak founded OOVM, a company which developed software for mobile phones. In 2004, he sold it to a Swiss company, Esmertec. [5]

In 2004, Bak joined Google to work on the Chrome browser. He did not return to the United States, preferring to work in Denmark where his daughters were also receiving their education. [1] With a team of 12 engineers, Bak coordinated the development of the V8 JavaScript interpreter for Chrome, named after the V8 engine. [6]

Bak co-developed the Dart programming language presented at the 2011 Goto conference in Aarhus, Denmark. [7]

In 2017, Bak left Google and soon afterward co-founded[ dubious ] a startup with Kasper Lund called Toit, which is building a new programming language called Toit and a platform for Internet of Things systems. [8] [9]

Patents

Bak holds 18 U.S. software patents in the field of virtual machines programming. [10] In 2010, after Oracle bought Sun and with Lars Bak working for Google, Oracle sued Google for infringing on several software patents and amongst them was the "Interpreting Functions Utilizing a Hybrid of Virtual and Native Machine Instructions" patent [11] filed by Lars Bak et al.

Related Research Articles

<span class="mw-page-title-main">JavaScript</span> High-level programming language

JavaScript, often abbreviated as JS, is a programming language and core technology of the Web, alongside HTML and CSS. 99% of websites use JavaScript on the client side for webpage behavior.

<span class="mw-page-title-main">Java applet</span> Small application written in Java

Java applets were small applications written in the Java programming language, or another programming language that compiles to Java bytecode, and delivered to users in the form of Java bytecode. The user launched the Java applet from a web page, and the applet was then executed within a Java virtual machine (JVM) in a process separate from the web browser itself. A Java applet could appear in a frame of the web page, a new application window, a program from Sun called appletviewer, or a stand-alone tool for testing applets.

<span class="mw-page-title-main">Java (programming language)</span> Object-oriented programming language

Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible. It is a general-purpose programming language intended to let programmers write once, run anywhere (WORA), meaning that compiled Java code can run on all platforms that support Java without the need to recompile. Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture. The syntax of Java is similar to C and C++, but has fewer low-level facilities than either of them. The Java runtime provides dynamic capabilities that are typically not available in traditional compiled languages.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

A computing platform, digital platform, or software platform is an environment in which software is executed. It may be the hardware or the operating system (OS), a web browser and associated application programming interfaces, or other underlying software, as long as the program code is executed using the services provided by the platform. Computing platforms have different abstraction levels, including a computer architecture, an OS, or runtime libraries. A computing platform is the stage on which computer programs can run.

Rhino is a JavaScript engine written fully in Java and managed by the Mozilla Foundation as open source software. It is separate from the SpiderMonkey engine, which is also developed by Mozilla, but written in C++ and used in Mozilla Firefox.

<span class="mw-page-title-main">Dan Ingalls</span> American computer scientist

Daniel Henry Holmes Ingalls Jr. is a pioneer of object-oriented computer programming and the principal architect, designer and implementer of five generations of Smalltalk environments. He designed the bytecoded virtual machine that made Smalltalk practical in 1976. He also invented bit blit, the general-purpose graphical operation that underlies most bitmap computer graphics systems today, and pop-up menus. He designed the generalizations of BitBlt to arbitrary color depth, with built-in scaling, rotation, and anti-aliasing. He made major contributions to the Squeak version of Smalltalk, including the original concept of a Smalltalk written in itself and made portable and efficient by a Smalltalk-to-C translator.

In computing, Strongtalk is a Smalltalk environment with optional static typing support. Strongtalk can make some compile time checks, and offer stronger type safety guarantees; this is the source of its name. It is non-commercial, though it was originally a commercial project developed by a small startup company named LongView Technologies.

A JavaScript engine is a software component that executes JavaScript code. The first JavaScript engines were mere interpreters, but all relevant modern engines use just-in-time compilation for improved performance.

HotSpot, released as Java HotSpot Performance Engine, is a Java virtual machine for desktop and server computers, developed by Sun Microsystems and now maintained and distributed by Oracle Corporation. It features improved performance via methods such as just-in-time compilation and adaptive optimization. It is the de facto Java Virtual Machine, serving as the reference implementation of the Java programming language.

<span class="mw-page-title-main">Java (software platform)</span> Set of computer software and specifications

Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.

<span class="mw-page-title-main">David Ungar</span> American computer scientist

David Michael Ungar, an American computer scientist, co-created the Self programming language with Randall Smith. The Self development environment's animated user experience was described in the paper Animation: From Cartoons to the User Interface co-written with Bay-Wei Chang, which won a lasting impact award at the ACM Symposium on User Interface Software and Technology 2004.

Turbo is a set of software products and services developed by the Code Systems Corporation for application virtualization, portable application creation, and digital distribution. Code Systems Corporation is an American corporation headquartered in Seattle, Washington, and is best known for its Turbo products that include Browser Sandbox, Turbo Studio, TurboServer, and Turbo.

V8 is a JavaScript and WebAssembly engine developed by Google for its Chrome browser. V8 is free and open-source software that is part of the Chromium project and also used separately in non-browser contexts, notably the Node.js runtime system.

A browser speed test is a computer benchmark that scores the performance of a web browser, by measuring the browser's efficiency in completing a predefined list of tasks. In general the testing software is available online, located on a website, where different algorithms are loaded and performed in the browser client. Typical test tasks are rendering and animation, DOM transformations, string operations, mathematical calculations, sorting algorithms, graphic performance tests and memory instructions. Browser speed tests have been used during browser wars to prove superiority of specific web browsers. The popular Acid3 test is no particular speed test but checks browser conformity to web standards.

Dart is a programming language designed by Lars Bak and Kasper Lund and developed by Google. It can be used to develop web and mobile apps as well as server and desktop applications.

Blink is a browser engine developed as part of the free and open-source Chromium project. Blink is by far the most-used browser engine, due to the market share dominance of Google Chrome and the fact that many other browsers are based on the Chromium code.

<span class="mw-page-title-main">WebAssembly</span> Cross-platform assembly language and bytecode designed for execution in web browsers

WebAssembly defines a portable binary-code format and a corresponding text format for executable programs as well as software interfaces for facilitating interactions between such programs and their host environment.

<span class="mw-page-title-main">Deno (software)</span> Secure JavaScript and TypeScript runtime

Deno is a runtime for JavaScript, TypeScript, and WebAssembly that is based on the V8 JavaScript engine and the Rust programming language. Deno was co-created by Ryan Dahl, who also created Node.js.

References

  1. 1 2 3 Schenker, Jennifer L. (November 12, 2008). "Google's Chrome: The Danish Magic Inside". Businessweek . Archived from the original on October 21, 2012. Retrieved 6 December 2013.
  2. "The AITO Dahl-Nygaard Prize Winners for 2018". Association Internationale pour les Technologies Objets . Retrieved 7 January 2018.
  3. Lars Bak, Biography, from JAOO.dk. Retrieved 29 March 2009.
  4. Guest Lecture by Lars Bak: A NEW APPROACH TO DEVELOPING ROBUST EMBEDDED SOFTWARE. Tampere University of Technology. Retrieved 29 March 2009.
  5. The genius behind Google’s web browser. From FT.com. Retrieved 29 March 2009.
  6. "V8: an open source JavaScript engine". YouTube. Google. Retrieved 15 March 2024.
  7. "Presentations -> Opening Keynote: Dart, a new programming language for structured web programming". Gotocon.com. Retrieved 2013-10-08.
  8. "Aarhus-eksperter fra Chromes Javascript-motor skaber IoT-sprog og virtuel maskine". Version2 (in Danish). 3 July 2018. Retrieved 27 July 2018.
  9. Lund, Kasper (24 Feb 2019). "Leaving Google for a couple of devices". Toit Blog. Retrieved 25 Jun 2021.
  10. Google's Chrome: The Danish Magic Inside. BusinessWeek. Retrieved 29 March 2009.
  11. "Patent US6910205 - Interpreting functions utilizing a hybrid of virtual and native machine instructions". Google Patents. Retrieved 15 April 2020.