Download PowerPoint file

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Compiler wikipedia , lookup

Go (programming language) wikipedia , lookup

Falcon (programming language) wikipedia , lookup

History of compiler construction wikipedia , lookup

Functional programming wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Transcript
Functional Image Synthesis
Pan
•
•
•
•
•
An image synthesis “language”
Images are functions
Continuous and infinite
Embedded in a functional host language
Reusable optimizing compiler
Examples
What’s an image?
• Assignment of color to points:
R2  Color
• Infinite, but color may be transparent
• Useful generalization:
R2  a
Expressing functions
• Use l-calculus (Church, Curry, etc):
• Or, non-anonymously:
• Currying isomorphism:
(ab)  g  a  (b  g )
Good for partial application
Spatial transforms
Images
Higher-order functions
Apply filter “about” a point:
Examples
Programming example
Another
Some details
Another
Implementation
• An “embedded language”, but compiled.
• Programs manipulate expression trees.
• Almost transparent, via overloading.
• Automatic full inlining.
• Simplification via smart constructors.
• First-order CSE and loop hoisting.
• Easy to reuse for new “language”.
More examples
Conclusions
• Modular & efficient image synthesis
• DSL design & implementation technique:
– Simple, computable semantics
– Embed in functional host language
– Reusable optimizer & code generator
• To try: sound, 3D, …
• Freely available – try it out:
http://research.microsoft.com/~conal/pan