UW-DCG Application Page
This is a very preliminary list (assembled by Joel) of the kind of
applications that we hope will later showcase our system.
Potential applications
- Interpreters
- The dynamic constant is the interpreted program.
- Emacs Lisp bytecode
- Ghostscript
- Smalltalk
- 8086 code interpreter
- Numerical Code
-
- Sparse Matrix
- Dynamic constants: matrix structure, values
- Simulators
-
- Dinero
- Dynamic constants: cache size, properties
- Power Grid Simulator
- Dynamic constants: grid structure
- Computer Simulation
- Dynamic constants: architecture, program, instrumentation
- debugging
- Dynamic constants: program, breakpoints
- Incremental Computation
- Write a general incremental routine to recompute a function based
on an arbitrary set of changed input parameters. Use dynamic
compilation to generate specialized incremental routines to recompute
the function when a specific set of input parameters has changed.
- Local Illumination in 3D Graphics
- Do a better version of what Brian Guenter of Microsoft's local
illumination application. This incrementally computes new solutions to
the lighting model when a single parameter of the model changes. He
currently generates, offline, incremental functions corresponding to
each of the possible model parameters. We could do it on the fly.
- Decompression
-
- MPEG
- Dynamic constants: screen size, dithering parameters
- Table based
- Dynamic constants: string table
- Graphics Rendering
- 3D rendering
- Dynamic constants
- scene description (polygons, lighting, point of view)
- number of sides per polygon
- type of scene element: polygon, sphere, cubic
-
- 2D rendering (X-Windows, Ghostscript)
- Dynamic constants:
- window boundaries
- block size
- permissions
- graphics context (color draw with, etc.)
- SPIN
- Specialized system calls
- Inlining of spindles/event handlers
- Removing unecessary checks
-
- Don't bother with locks if no one else has access.
- Standard benchmarks
- SPEC
- Method dispatch
- Dynamic constants: method table, selector
- printf()
- Dynamic constants: format string
- infinite precision math
- Dynamic constant: how big the numbers really are
- inspector/executor programming style
- Dynamic constant: problem structure
- Encryption/Decryption
- Dynamic constant: key