2010 · 116 citations · 23 references
ComputingComputer EngineeringComputer ScienceCompilersProgramming LanguagesSoftware EngineeringCompiler Back EndsCompiler ConstructionControl-flow AnalysisData-flow AnalysisInterpreter DesignJust-in-time CompilationCode Path AnalysisDynamic CompilationExecution TracingInterpretersJust-in-time Compilation For Dynamic LanguagesMachine Code GenerationMachine Code OptimizationRuntime Tracing
Tracing just-in-time compilers (TJITs) determine frequently executed traces (hot paths and loops) in running programs and focus their optimization effort by emitting optimized machine code specialized to these traces. Prior work has established this strategy to be especially beneficial for dynamic languages such as JavaScript, where the TJIT interfaces with the interpreter and produces machine code from the JavaScript trace.
23
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 3K citations · Full text
Vasanth Bala, Evelyn Duesterwald, Sanjeev Banerjia · ACM SIGPLAN Notices · 2011 · 739 citations
Vasanth Bala, Evelyn Duesterwald, Sanjeev Banerjia · 2000 · 533 citations
An Infrastructure for Adaptive Dynamic Optimization
2003 · 445 citations
Trace-based just-in-time type specialization for dynamic languages
Andreas Gal, Brendan Eich, Mike Shaver et al. · 2009 · 341 citations