翻訳と辞書
Words near each other
・ Byte
・ Byte (dinghy)
・ Byte (disambiguation)
・ Byte (magazine)
・ Byte (retailer)
・ Byte addressing
・ Byte Bandit
・ Byte Code Engineering Library
・ Byte Information Exchange
・ Byte order mark
・ Byte orientation
・ Byte pair encoding
・ Byte Records
・ Byte serving
・ Byte-oriented protocol
Bytecode
・ Byteflight
・ Bytemark
・ Bytes (album)
・ Bytes for All v. Federation of Pakistan
・ BytesForAll
・ Byth
・ Bythaelurus
・ Bythaelurus lutarius
・ Bytham Castle
・ Bytham River
・ Bytharia
・ Byther Smith
・ Bythinella
・ Bythinella austriaca


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Bytecode : ウィキペディア英語版
Bytecode

Bytecode, also known as p-code (portable code), is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (normally numeric addresses) which encode the result of parsing and semantic analysis of things like type, scope, and nesting depths of program objects. They therefore allow much better performance than direct interpretation of source code.
The name bytecode stems from instruction sets which have one-byte opcodes followed by optional parameters. Intermediate representations such as bytecode may be output by programming language implementations to ease interpretation, or it may be used to reduce hardware and operating system dependence by allowing the same code to run on different platforms. Bytecode may often be either directly executed on a virtual machine (i.e. interpreter), or it may be further compiled into machine code for better performance.
Since bytecode instructions are processed by software, they may be arbitrarily complex, but are nonetheless often akin to traditional hardware instructions; virtual stack machines are the most common, but virtual register machines have also been built.〔(The Implementation of Lua 5.0 ) involves a register-based virtual machine.〕〔 is register based〕 Different parts may often be stored in separate files, similar to object modules, but dynamically loaded during execution.
==Execution==
A bytecode program may be executed by parsing and ''directly'' executing the instructions, one at a time. This kind of ''bytecode interpreter'' is very portable. Some systems, called dynamic translators, or "just-in-time" (JIT) compilers, translate bytecode into machine language as necessary at runtime: this makes the virtual machine hardware-specific, but doesn't lose the portability of the bytecode itself. For example, Java and Smalltalk code is typically stored in bytecoded format, which is typically then JIT compiled to translate the bytecode to machine code before execution. This introduces a delay before a program is run, when bytecode is compiled to native machine code, but improves execution speed considerably compared to direct interpretation of the source code—normally by several magnitudes.
Because of its performance advantage, today many language implementations execute a program in two phases, first compiling the source code into bytecode, and then passing the bytecode to the virtual machine. There are bytecode based virtual machines of this sort for Java, Python, PHP,〔Although PHP opcodes are generated each time the program is launched, and are always interpreted and not Just-In-Time compiledTcl, and Forth (however, Forth is not ordinarily compiled via bytecodes in this way, and its virtual machine is more generic instead). The implementation of Perl and Ruby 1.8 instead work by walking an abstract syntax tree representation derived from the source code.
More recently, the authors of V8〔(【引用サイトリンク】url=https://developers.google.com/v8/design#mach_code )〕 and Dart have challenged the notion that intermediate bytecode is a necessity for fast and efficient VM implementation. Both of these language implementations currently do direct JIT compilation from source code to machine code without any bytecode intermediary.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Bytecode」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.