FACTOID # 176: The average Irish worker must work twice as long as the average Brit to buy a car.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS   

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > JIT compilation

In computing, just-in-time compilation (JIT), also known as dynamic translation, is a technique for improving the performance of bytecode-compiled programming systems, by translating bytecode into native machine code at runtime. JIT builds upon two earlier ideas in run-time environments: bytecode compilation and dynamic compilation. Originally, the word computing was synonymous with counting and calculating, and a science that deals with the original sense of computing mathematical calculations. ... Dynamic compilation is a process used by interpreting programming languages to gain performance during program execution. ...


In a bytecode-compiled system such as Limbo programming language, Smalltalk, UCSD P-System, Perl, GNU CLISP, or early versions of Java, source code is translated to an intermediate representation known as bytecode. Bytecode is not the machine code for any particular computer, and may be portable among computer architectures. The bytecode is then interpreted, or run on a virtual machine. Limbo is a programming language for writing distributed systems and is the language used to write applications for the Inferno operating system. ... Smalltalk is a dynamically typed object oriented programming language designed at Xerox PARC by Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg, and others during the 1970s. ... In computer programming, a virtual machine executing p-code, the p-Code machine or pseudo-code machine was the target of some early Pascal implementations. ... Perl, also Practical Extraction and Report Language (a backronym, see below) is an interpreted procedural programming language designed by Larry Wall. ... Java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s. ... Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ... Byte-code is a sort of intermediate code that is more abstract than machine code. ... In general terms, a virtual machine in computer science is software that creates an environment between the computer platform and the end user in which the end user can operate software. ...


A dynamic compilation environment is one in which the compiler can be used during execution. For instance, most Common Lisp systems have a compile function which can compile new functions created during the run. While advantageous in interactive debugging, dynamic compilation is less useful in a hands-off deployed system. Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, standardised by ANSI X3. ...


In a JIT environment, bytecode compilation is the first step, reducing source code to a portable and optimizable intermediate representation. The bytecode is deployed onto the target system. When the code is executed, the runtime environment's compiler translates it into native machine code. This can be done on a per-file or per-function basis: functions can be compiled only when they are about to be executed (hence the name "just-in-time").


The goal is to combine many of the advantages of native and bytecode compilation: Much of the "heavy lifting" of parsing the original source code and performing basic optimization is handled at compile time, well prior to deployment -- compilation from bytecode to machine code is much faster than from source. The deployed bytecode is portable, unlike machine code for any given architecture. Compilers from bytecode to machine code are easier to write, because the portable bytecode compiler has already done much of the work.


History

Dynamic translation was pioneered by the commercial Smalltalk implementation currently known as VisualWorks, in the early 1980s. Currently it is also used by most implementations of the Java virtual machine. Smalltalk is a dynamically typed object oriented programming language designed at Xerox PARC by Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg, and others during the 1970s. ... VisualWorks is one of the leading implementations of the Smalltalk programming language. ... The 1980s decade refers to the years from 1980 to 1989, inclusive. ... A Java Virtual Machine or JVM, originally invented by Sun Microsystems [1], is a virtual machine that runs Java byte code. ...


See also

In computer science, code generation is the process by which a compiler converts a syntactically-correct program into a series of instructions that could be executed by a machine. ... In computing, binary translation is the emulation of one instruction set by another through translation of code. ... In computing, Common Language Runtime (CLR) is the name chosen by Microsoft for the virtual machine plus runtime library underlying their . ...

References


  Results from FactBites:
 
Chapter 8 Continued: Performance Features and Tools (2148 words)
JIT compilers are supplied as standalone platform-dependent native libraries.
When a method is called the first time the JIT compiler compiles the method block into native code for this method and stored that in the code block for that method.
The JIT compiler does compile the whole method instead of interpreting it line by line which can also be a performance gain for when running an application with the JIT enabled.
Just-in-time compilation - Wikipedia, the free encyclopedia (494 words)
In computing, just-in-time compilation (JIT), also known as dynamic translation, is a technique for improving the performance of bytecode-compiled programming systems, by translating bytecode into native machine code at runtime.
In a JIT environment, bytecode compilation is the first step, reducing source code to a portable and optimizable intermediate representation.
Compilers from bytecode to machine code are easier to write, because the portable bytecode compiler has already done much of the work.
  More results at FactBites »

 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your location
Your comments
Please enter the 5-letter protection code


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.