70 research outputs found
Compiler Generation for Interactive Graphics using Intermediate Code
. This paper describes a compiler generator (cogen) designed for interactive graphics, and presents preliminary results of its application to pixel-level code. The cogen accepts and produces a reflective intermediate code in continuationpassing, closure-passing style. This allows low overhead run-time code generation as well as multi-stage compiler generation. We extend partial evaluation techniques by allowing partially static integers, conservative early equality, and unrestricted lifting. In addition to some standard examples, we examine graphics kernels such as one-dimensional finite filtering and packed pixel access. 1 Introduction Interactive graphics is a growing application domainwhere the demands of latency, bandwidth, and software engineering collide. The state of the art, represented by systems such as QuickDrawGX(R) [44], Photoshop(tm) [42], RenderMan(tm) [52], Explorer(R) [25], and DOOM(tm) [10], is to write in C and assembly language. Programmers use handspecialized rout..
Implementing Bit-addressing with Specialization
General media-processing programs are easily expressed with bitaddressing and variable-sized bit-fields. But the natural implementation of bit-addressing relies on dynamic shift offsets and repeated loads, resulting in slow execution. If the code is specialized to the alignment of the data against word boundaries, the offsets become static and many repeated loads can be removed. We show how introducing modular arithmetic into an automatic compiler generator enables the transformation of a program that uses bit-addressing into a synthesizer of fast specialized programs. In partial-evaluation jargon we say: modular arithmetic is supported by extending the binding time lattice used by the static analysis in a polyvariant compiler generator. The new binding time Cyclic functions like a partially static integer. A software cache combined with a fast, optimistic sharing analysis built into the compilers eliminates repeated loads and stores. The utility of the transformation is demonstrated with a collection of examples and benchmark data. The examples include vector arithmetic, audio synthesis, image processing, and a base-64 codec. (c) (a
Lightweight Languages for Interactive Graphics
Run time code generation (RTCG) and traditional compilation are two ends of the same underlying optimization: factoring computations out of repeated procedure calls. Self-applicable partial evaluation (PE) is a semantics-based program transformation traditionally used for automatic compiler generation (cogen) . Recently, PE has also been applied to RTCG. My approach to RTCG is to implement a composable cogen for a compiler intermediate representation. My thesis is that this approach to optimizing programs can be particularly useful for interactive graphics toolkits. I intend to demonstrate this by implementing a compiler generator tuned for RTCG, and showing how it can be used to build software that is highly abstract and yet still as fast as less general programs
Zipper copy
Mostra a morfologia de uma diatomáceaComponente Curricular::Educação Superior::Ciências Biológicas::Zoologi
Eight holes copy
A imagem mostra a morfologia de uma diatomáceaEducação Superior::Ciências Biológicas::Morfologi
Dual onion center saddle copy
Mostra a morfologia de uma diatomáceaEducação Superior::Ciências Biológicas::Zoologi
Olive pin cushion pink fruff copy
Educação Superior::Ciências Biológicas::ZoologiaO objeto apresenta a morfologia de uma ascídi
Four doublerow fronds
A imagem apresenta a morfologia de um EctoproctaEducação Superior::Ciências Biológicas::Zoologi
- …