Scripting languages are ubiquitous in modern software engineering and are often used as the sole language for application development. However, some applications, specifically scientific and multimedia applications, often have small sections of code that require a higher level of performance than the host language can deliver. In many cases, the algorithm being optimized is simple and has a clear mapping to hardware resources. But, without introducing an intermediate language, developers generally have no direct methods to implement an optimized solution.In this paper, we present the synthetic programming environment, a run-time system for synthesizing and executing high-performance instruction sequences directly from scripting languages. Our implementation, available for download, is implemented in Python for PowerPC processors and gives Python developers direct access to system resources for performance critical code. We discuss strategies for creating and managing synthetic programs and provide two real-world examples, an interactive particle system and a chemical fingerprint comparison tool.
[1]
Paul H. J. Kelly,et al.
Runtime Code Generation in C++ as a Foundation for Domain-Specific Optimisation
,
2003,
Domain-Specific Program Generation.
[2]
P Willett,et al.
Grouping of coefficients for the calculation of inter-molecular similarity and dissimilarity using 2D fragment bit-strings.
,
2002,
Combinatorial chemistry & high throughput screening.
[3]
Todd L. Veldhuizen,et al.
Expression templates
,
1996
.
[4]
Dawson R. Engler,et al.
C and tcc: a language and compiler for dynamic code generation
,
1999,
TOPL.
[5]
Markus Mock,et al.
DyC: an expressive annotation-directed dynamic compiler for C
,
2000,
Theor. Comput. Sci..
[6]
John Aycock,et al.
A brief history of just-in-time
,
2003,
CSUR.
[7]
Nachum Dershowitz,et al.
Synthetic Programming
,
1985,
Artificial Intelligence.