名词链接帖 [占位ing]

A


Abstract Interpretation Wikipedia
see also: Symbolic Execution


Abstract Syntax Tree (AST) Wikipedia


Accumulator-based Architecture Wikipedia
see also: Accumulator Machine


Accumulator Machine
see also: Accumulator-based Architecture


Adaptive Compilation

presentation:

Dynamic Compilation and Adaptive Optimization in Virtual Machines (2006)
Matthew Arnold,Stephen Fink, David Grove, Michael Hind


Ahead-of-time Compilation (AOT Compilation)


Alias Analysis Wikipedia


Automatic Memory Management
see also: Memory Management, Garbage Collection


Automaton Wikipedia


B


Back-edge


Basic Block (BB) Wikipedia


Biased-locking

paper:

Eliminating Synchronization-Related Atomic Operation with Biased Locking and Bulk Rebiasing (2006)
Ken Russell, Dave Detlefs


Bimorphic


Bootstrapping Wikipedia


Bottom Type


Bottom-up Parsing


Bottom-up Rewrite System (BURS) Wikipedia


Branch Target Buffer (BTB) Wikipedia


Bytecode

documentation:

Specification of the GNU Smalltalk virtual machine

The Strongtalk VM bytecode format


C


Card Table
see also: Remember Set, Garbage Collection

paper:

Remembered sets can also play cards (1993)
Antony L. Hosking, Richard L. Hudson


Central Processing Unit (CPU) Wikipedia


Class Hierarchy Analysis (CHA)

article:

Class Hierarchy Graphs, Function Devirtualization, & RTTI (2005-04-01)
Dibyendu Das

paper:

Optimization of Object-Oriented Programs using Static Class Hierarchy Analysis (1995)
Jeffrey Dean, David Grove, Craig Chambers


Code Motion


Common Intermediate Language (CIL) Wikipedia


Common Language Infrastructure (CLI) Wikipedia

documentation:

ECMA-335 Common Language Infrastructure (CLI)

ISO/IEC 23271:2006


Common Language Runtime (CLR)


Compare-and-swap (CAS)
see also: Load-Linked / Store-Conditional

blog:

Unsafe & CompareAndSwap (2010-07-24)
Cliff Click, Jr.


Compilation Wikipedia


Component-Dependency Graph (CDG)


Constant Folding Wikipedia
see also: Constant Propagation


Constant Propagation Wikipedia
see also: Constant Folding


Constrained Execution Region (CER)

documentation:

Constrained Execution Regions


Context-free Grammar (CFG) Wikipedia


Continuation Wikipedia


Continuation-passing Style (CPS) Wikipedia


Contravariance


Control Flow Wikipedia


Control-flow Graph (CFG) Wikipedia


Control-flow Normalization


Copy-on-write (CoW) Wikipedia


Copy Propagation Wikipedia


Coroutine Wikipedia

documentation:

Da Vinci Machine Project Wiki: Coroutines (2010)
Lukas Stadler


Covariance


D


Deferred Reference Counting (DRC)
see also: Reference Counting


Directed Acyclic Graph (DAG) Wikipedia


Dominator Wikipedia


Dominator Tree


Duck Typing Wikipedia


Dynamic Language Runtime (DLR) Wikipedia


Dynamic Recompilation (dynarec) Wikipedia

blog post:

Introduction to Dynamic Recompilation


Dynamic Typing


E


Eliminating Array-Bounds Checks on Demand (ABCD)

paper:

ABCD: Eliminating Array-Bounds Checks on Demand (2000)
Rastislav Bodik, Rajiv Gupta, Vivek Sarkar


Ephemeral


Escape Analysis (EA) Wikipedia

presentation:

Fast Bytecodes for Funny Languages (2008)
Cliff Click, Jr.

blog post:

Escape Analysis in PyPy's JIT (2010-09-13)

The JSR292 endgame (2009)
Fredrik Öhrström

paper:

在开放世界中实现逃逸分析 (2008)
史晓华, 吴甘沙, 金茂忠, LUEH Guei-Yuan, 刘超, 王雷

Evaluating the Impact of Thread Escape Analysis on a Memory Consistency Model-aware Compiler (2005)
Chi-Leung Wong, Zehra Sura, Xing Fang, Kyungwoo Lee, Samuel P. Midki, Jaejin Lee, David Padua

Escape Analysis for Java (1999)
Jong-Deok Choi, Manish Gupta, Mauricio Serrano, Vugranam C. Sreedhar, Sam Midkiff


Evaluation Stack
see also: Expression Stack, Operand Stack


Exeception


Execution Engine (EE)


Execution Environment (EE)


Expression Stack
see also: Evaluation Stack, Operand Stack


F


Feedback-directed Optimization (FDO)


Finite Automaton (FA)
see also: Finite-state Machine


Finite-state Machine (FSM) Wikipedia
see also: Finite Automaton


Foreign Function Interface (FFI) Wikipedia


Forth Wikipedia


G


Garbage Collection (GC) Wikipedia

book:

ガベージコレクションのアルゴリズムと実装 (2010)
中村 成洋, 相川 光, 竹内 郁雄
ISBN-10: 4798025623

Garbage Collection: Algorithms for Automatic Dynamic Memory Management (1996)
Richard Jones, Rafael D. Lins
ISBN-10: 0471941484


Generics Wikipedia


Global Value Numbering (GVN) Wikipedia


Grammar


Graph-coloring Register Allocation


H


Handle Wikipedia


Heap Wikipedia


Hidden Class

presentation:

First-Class Hidden Types (2006)
Joe Hallett, Eric Allen, Victor Luchangco, Sukyoung Ryu, Sam Tobin-Hochstadt

paper:

Organizing Programs Without Classes (1991)
David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Hölzle


High-frequency Heap

book:

Shared Source CLI Essentials, page 222


Hotpath VM
see also: Trace-based Compilation


I


Inheritance Wikipedia


Inner Interpreter
see also: Forth


Instruction


Instruction-level Parallelism (ILP) Wikipedia


Instruction Set Wikipedia
see also: Instruction Set Architecture


Instruction Set Architecture (ISA)
see also: Instruction Set


Instrumentation Wikipedia


Interface Method Table (IMT, itable, itbl)
see also: Interface Virtual Table

paper:

Efficient Dispatch of Java Interface Methods (2001)
Bowen Alpern, Anthony Cocchi, David Grove, Derek Lieber

Efficient Implementation of Java Interfaces: Invokeinterface Considered Harmless (2001)
Bowen Alpern, Anthony Cocchi, Stephen Fink, David Grove, Derek Lieber


Interface Virtual Table (IVT, itable, itbl)
see also: Interface Method Table

paper:

SableVM: A Research Framework for the Efficient Execution of Java Bytecode (2001)
Etienne M. Gagnon, Laurie J. Hendren


Intermediate Language (IL)
see also: Intermediate Representation


Intermediate Representation (IR) Wikipedia
see also: Intermediate Language

paper:

Improving Compiler-Runtime Separation with XIR (2010)
Ben L. Titzer, Thomas Würthinger, Doug Simon, Marcelo Cintra


Interpretation Wikipedia


Interprocedural Analysis (IPA) Wikipedia


Intrinsics Wikipedia


J


Jalapeño
see also: Jikes RVM


Java Bytecode
see also: Bytecode

documentation:

The JavaTM Virtual Machine Specification, Second Edition, Chapter 6 The Java Virtual Machine Instruction Set
Tim Lindholm, Frank Yellin

paper:

Java intermediate bytecodes (1995)
James Gosling


Jikes RVM Wikipedia
see also: Jalapeño


Just-in-time Compilation (JIT Compilation) Wikipedia

paper:

Design and Evaluation of Dynamic Optimizations for a Java Just-In-Time Compiler (2007), Toshio Suganuma


K


L


Large-object Heap (LOH)

book:

Shared Source CLI Essentials, page 232-234


Lexer
see also: Scanner, Tokenizer


Linear-scan Register Allocation (LSRA)

paper:

Linear Scan Register Allocation for the Java HotSpot™ Client Compiler (2004)
Christian Wimmer


Linking


Load-Linked / Store-Conditional (LL/SC) Wikipedia


Load-store Architecture


Local Value Numbering (LVN)


Loop


Loop-header


Loop-invariant Code Motion (LICM) Wikipedia


Loop Nest Optimization (LNO) Wikipedia


Low-frequency Heap

book:

Shared Source CLI Essentials, page 222


M


Managed Runtime Environment (MRE, MRTE)

workshop:

3rd Workshop on Managed Runtime Environments, MRE'05 (2005)


Megamorphic


Memory Barrier (membar) Wikipedia
see also: Memory Fence


Memory Fence
see also: Memory Barrier


Memory Management Wikipedia

website:

The Memory Management Reference


Memory Management Unit (MMU) Wikipedia


Memory Model


Metacircular Evaluator (metacircular interpreter, metacircular virtual machine) Wikipedia
用高级语言实现时,有两种思路:
1、用高级语言的受限子集来编写,将其翻译为较低级语言后再编译生成最终的目标代码
(例:Squeak (Smalltalk -> Slang), Squawk (Java -> Java), PyPy (Python -> RPython))
2、直接用高级语言自身来编写整个运行时环境,依赖compiler intrinsics来提供语言扩展以实现底层操作
(例:Jikes RVM (Java), MRP (Java), Klein (Smalltalk), Maxine (Java))


Metacircular Research Platform (MRP)
see also: Jikes RVM


Metaobject Protocol (MOP) Wikipedia

book:

The Art of the Metaobject Protocol (1991)
Gregor Kiczales, Jim des Rivieres, Daniel G. Bobrow
ISBN-10: 0262610744


Method Handle


Method Inlining

paper:

An Empirical Study of Method Inlining for a Java Just-In-Time Compiler (2002)
Toshio Suganuma, Toshiaki Yasue, Toshio Nakatani


Monomorphic Inline Cache (MIC)


Multiple Inheritance Wikipedia


N


Nominal Typing Wikipedia


Non-local Control Flow


Non-Uniform Memory Architecture (NUMA, Non-Uniform Memory Access) Wikipedia


O


Object Churn

presentation:
Jolt: Removing Object Churn


Object Fusing
see also: Object Layout

paper:

Automatic Feedback-Directed Object Fusing (2010)
Christian Wimmer, Hanspeter Mössenböck


Object Layout

book:

Rubyソースコード完全解説, 第2章 オブジェクト (2002)
青木 峰郎, まつもと ゆきひろ
ISBN-10: 4844317210

paper:

Vertical Object Layout and Compression for Fixed Heaps (2007)
Ben L. Titzer, Jens Palsberg

Custom Object Layout for Garbage-Collected Languages (2006)
Gene Novark, Trevor Strohman, Emery D. Berger


Object-oriented Programming (OOP)


On-stack Replacement (OSR)

technical article:

The Java HotSpot Performance Engine: On-Stack Replacement Example (2000)
Sun Microsystems

paper:

Efficient and General On-Stack Replacement for Aggressive Program Specialization (2006)
Sunil Soman, Chandra Krintz


Opcode


Operand Stack
see also: Expression Stack, Evaluation Stack


Operating System


Operator


Operator-precedence Parsing Wikipedia


Ordinary Object Pointer (Object Oriented Pointer, OOP)
see also: Tagged Pointer

documentation:

Compressed oops in the Hotspot JVM
John Rose

VM Types used to map Smalltalk objects into C++ objects


P


Packrat Parsing


Parser


  · Error Recovery

  paper:
 
  Natural and Flexible Error Recovery for Generated Parsers (2009)
  Maartje de Jonge, Emma Nilsson-Nyman, Lennart C. L. Kats, Eelco Visser


Parse Tree


Parsing Expression Grammar (PEG) Wikipedia

paper:

Parsing Expression Grammars: A Recognition-Based Syntactic Foundation (2004)
Bryan Ford


Phi (Φ)
see also: Single Static Assignment Form


Pinning Wikipedia


Profiling Wikipedia


Pointer


Point-to Analysis (pointer analysis) Wikipedia

presentation:

SSA Form w.r.t. Pointer Analysis Precision
Markus Schordan

Pointer Analysis in the Presence of Dynamic Class Loading (2004)
Martin Hirzel, Amer Diwan, Michael Hind


Polymorphic Inline Cache (PIC) Wikipedia

paper:

Optimizing Dynamically-Typed Object-Oriented Programming Languages with Polymorphic Inline Caches (1991)
Urs Hölzle, Craig Chambers, and David Ungar


Polymorphism


Preprocessing Wikipedia


PyPy Wikipedia

blog:

PyPy Status Blog

Q


R


Random Number Generation (RNG) Wikipedia


Read Barrier


Read-eval-print loop (REPL) Wikipedia


Reference Counting Wikipedia


Region-based Compilation (RBC)

paper:

A region-based compilation technique for dynamic compilers (2006)
Toshio Suganuma, Toshiaki Yasue Toshio, Nakatani


A Region-Based Compilation Technique for a Java Just-In-Time Compiler (2003)
Toshio Suganuma, Toshiaki Yasue Toshio, Nakatani


Register Allocation Wikipedia


Register-based Architecture
see also: Stack-based Architecture

paper:

Virtual Machine Showdown: Stack Versus Registers (2005)
Yunhe Shi, David Gregg, Andrew Beatty, M. Anton Ertl


Regular Expression

book:

Mastering Regular Expressions, 3rd Edition (2006)
Jeffrey E.F. Friedl
ISBN-10: 0596528124


Regular Grammar


Reification


Remember Set
see also: Garbage Collection

paper:
Combining Card Marking with Remembered Sets: How to Save Scanning Time (1998)
Alain Azagury, Elliot K. Kolodner, Erez Petrank, Zvi Yehudai


Reverse Polish Notation (RPN) Wikipedia


Roll-forward


Root Set
see also: Garbage Collection


Root Set Enumeration
see also: Root Set, Garbage Collection

paper:

Finding References in Java™ Stacks (1997)
Ole Agesen, David Detlefs


S


Safepoint
see also: Garbage Collection

documentation:

HotSpot Glossary of Terms

blog post:

GC safe-point (or safepoint) and safe-region (2008-01-26)
Xiao-Feng Li

paper:

Optimization of Java Virtual Machine with Safe-Point Garbage Collection (2006)
Sergey V. Rogov, Viacheslav A. Kirillin, Victor V. Sidelnikov

GC Points in a Threaded Environment (1998)
Ole Agesen


Sampling


Snapshot-at-the-beginning (SATB)

glossary: SATB


Scanner
see also: Lexer, Tokenizer


SECD Machine Wikipedia

paper:

The tail-recursive SECD machine (1999)
John D. Ramsdell

The Mechanical Evaluation of Expressions (1964)
Peter J. Landin


Self-modifying Code Wikipedia


Semaphor


Shadow Stack

paper:

Accurate Garbage Collection in an Uncooperative Environment (2002)
Fergus Henderson


Shared Source Common Language Infrastructure (SSCLI, Shared Source CLI) Wikipedia

book:

SSCLI 2.0 Essentials (2009)
Joel Pobar, Ted Neward, David Stutz, Geoff Shilling

Distributed Virtual Machines: Inside the Rotor CLI (2004)
Gary Nutt
ISBN-10: 0321159837

Shared Source CLI Essentials (2001)
David Stutz, Ted Neward, Geoff Shilling
ISBN-10: 059600351X


Single Inheritance


Single Instruction, Multiple Data (SIMD) Wikipedia


Spinlock


Squawk Wikipedia


Stack Banging

blog post:

Stacks with split personalities (2010-08-26)
Doug Simon


Stack-based Architecture
see also: Stack Machine, Register-based Architecture

paper:

Virtual Machine Showdown: Stack Versus Registers (2005)
Yunhe Shi, David Gregg, Andrew Beatty, M. Anton Ertl


Stack Frame


Stack Machine
see also: Stack-based Architecture


Stack Overflow Wikipedia


Stack Walker


State Machine


Static Single Assignment Form (SSA Form) Wikipedia

seminar:

Static Single-Assignment Form Seminar (2009)

presentation:

In and Out of SSA: A Denotational Specification
Sebastian Pop

SSA Form in the Java HotSpot Client Compiler (2010)
Christian Wimmer

paper:

Constructing SSA the Easy Way (2009)
Michael Bebenita

Java Bytecode Verification via Static Single Assignment Form (2008)
Andreas Gal, Michael Franz, Christian W. Probst

Design of the Java HotSpot™ Client Compiler for Java 6 (2006)
Thomas Kotzmann, Christian Wimmer, Hanspeter Mössenböck, Thomas Rodriguez, Kenneth Russell, David Cox


Static Typing


Strength reduction Wikipedia


Strongly Connected Component (SCC) Wikipedia
see also: Graph Theory


Structural Typing Wikipedia


Subtype Checking

paper:

Fast Subtype Checking in the HotSpot JVM (2002)
Cliff Click, John Rose

Dynamic Type Checking in Jalapeño (2001)
Bowen Alpern, Anthony Cocchi, David Grove


Subtyping


Symbolic Execution Wikipedia
see also: Abstract Interpretation


T


Tagged Pointer Wikipedia


Tail Call Wikipedia


Tail Call Optimization (TCO) Wikipedia

paper:

Tail Call Optimization in the Java HotSpot(TM) VM (2009)
Arnold Schwaighofer


Thread


Threaded Code Wikipedia

website:

Threaded Code, M. Anton Ertl

paper:

Threaded Code Variations and Optimizations (Extended Version) (2002)
M. Anton Ertl


Thread-local Allocation Buffer (TLAB)

blog post:

The Real Thing (2006-08-15)
Jon Masamitsu / Ross K.


Thunk Wikipedia


Tokenizer
see also: Lexer, Scanner


Top-down Parsing


Top-of-stack Caching (TOS caching, stack caching, TOSCA)

paper:

Stack Caching for Interpreters (1995)
M. Anton Ertl


Trace-based Compilation

video:

Inside SPUR - A Trace-Based JIT Compiler for CIL (2010)

paper:

Trace Based Compilation in Interpreter-less Execution Environments (2010)
Michael Bebenita, Mason Chang, Karthik Manivannan, Gregor Wagner, Marcelo Cintra, Bernd Mathiske, Andreas Gal, Christian Wimmer, Michael Franz

SPUR - A Trace-Based JIT Compiler for CIL (2010)
Michael Bebenita, Florian Brandner, Manuel Fahndrich, Francesco Logozzo, Wolfram Schulte, Nikolai Tillmann, Herman Venter

Trace-based Just-in-Time Type Specialization for Dynamic Languages (2009)
Andreas Gal, Brendan Eich, Mike Shaver, David Anderson, David Mandelin, Mohammad R. Haghighat, Blake Kaplan, Graydon Hoare, Boris Zbarsky, Jason Orendorff, Jesse Ruderman, Edwin Smith, Rick Reitmaier, Michael Bebenita+, Mason Chang, Michael Franz

Tracing the Meta-Level: PyPy's Tracing JIT Compiler (2009)
Carl Friedrich Bolz, Antonio Cuni

HotpathVM: An Effective JIT Compiler for Resource-constrained Devices (2006)
Andreas Gal, Christian W. Probst, Michael Franz


Trace-tree Wikipedia

paper:

Incremental Dynamic Code Generation with Trace Trees (2006)
Andreas Gal, Michael Franz


Trampoline


Translation Lookaside Buffer (TLB) Wikipedia


Type Checking

paper:

Dynamic Type Checking in Jalapeño (2001)
Bowen Alpern, Anthony Cocchi, David Grove


Type Feedback

paper:

Type Feedback for Bytecode Interpreters (2007)
Michael Haupt, Robert Hirschfeld, Marcus Denker


Type Inference


Type System


U


Unification


V


Virtual Execution Engine (VEE)


Virtual Machine (VM) Wikipedia

book:

Oracle JRockit: The Definitive Guide (2010)
Marcus Hirt, Marcus Lagergren
ISBN-10: 1847198066

Virtual Machines: Versatile Platforms for Systems and Processes (2005)
Jim Smith, Ravi Nair
ISBN-10: 1558609105

Virtual Machines (2005)
Iain D. Craig
ISBN-10: 1852339691

Virtual Machine Design and Implementation C/C++ (2002)
Bill Blunden
ISBN-10: 1556229038


Virtual Memory (VM) Wikipedia


Virtual Method Dispatch (virtual function dispatch)

paper:

The Direct Cost of Virtual Function Calls in C++ (1996)
Karel Driesen, Urs Hölzle


Virtual Method Table (VMT, vtable, vtbl, virtual function table, VFT, vftable, vftbl) Wikipedia


W


Write Barrier

paper:

A Comparative Performance Evaluation of Write Barrier Implementations (1992)
Antony Hosking Eliot, Antony L. Hosking, J. Eliot, B. Moss, Darko Stefanović


X


Y


Z
共 3 条回复