Lecture 9: Heterogeneous Metaprogramming in F#

Advances in Programming Languages - Lecture 9 - Heterogeneous Metaprogramming in F#This lecture completes the set on integrating domain-specific languages with general-purpose programming language. Previous lectures looked at the specific case of programs that create SQL queries: this one addresses the general area of metaprogramming where one piece of code manipulates another; and in particular heterogeneous metaprogramming where these are in different languages. This leads up to an example where F# code to run Conway’s Game of Life on a regular CPU can be automatically transformed to run on a graphics processor.

Link: Slides for Lecture 9

Homework

The next topic will be on language-based methods for checking and certifying correct code. In anticipation, you should revise what you know about propositional logic and predicate logic.

Read the following slide sets from Discrete Mathematics and Mathematical Reasoning.

  • Lecture 2: Review of Propositional Logic (Slides)
  • Lecture 3: Predicate Logic (Slides)

You might also find this helpful, on the same topic:

References

The F# Software Foundation The F# Software Foundation
F# is a mature, open source, cross-platform, functional-first programming language which empowers users and organizations to tackle complex computing problems with simple, maintainable and robust code.
Link: http://fsharp.org/
F# at Microsoft Research F# at Microsoft Research
F# is a succinct, expressive, and efficient functional and object-oriented language for Microsoft .NET that helps you write simple code to solve complex problems.
Link: http://research.microsoft.com/fsharp
Leveraging .NET meta-programming components from F#: integrated queries and interoperable heterogeneous execution Don Syme. Leveraging .NET meta-programming components from F#: integrated queries and interoperable heterogeneous execution. In ML ’06: Proceedings of the ACM SIGPLAN 2006 Workshop on ML, pages 43–54. ACM Press, September 2006.
Links: PDF; web page; ACM Digital Library
Latest Developments in General Purpose GPU Programming with F# Latest Developments in General Purpose GPU Programming with F#
Don Syme’s WebLog on F# and Related Topics, 23 April 2014
Link: Blog entry
QuantAlea QuantAlea: A software and solution provider for high performance and GPU computing. Developers of Alea.cuBase, a complete solution to develop CUDA applications on .NET
Links: QuantAlea; Alea.cuBase blog; GPUs for large scale asset management
  Vulpes: a Deep Belief Net written in F#, and using Alea.cuBase to access the GPU Vulpes: F# for deep learning and deep belief nets with GPU computing.
Link: GitHub project page
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s