Domain-specific languages
Simit: A Language for Physical Simulation
A programming language that lets a simulation be written simultaneously as a hypergraph of local update functions and as global vectors, matrices, and tensors.
The problem
Physical simulations are naturally described locally, at the level of vertices and edges, but run efficiently as global linear algebra — and reconciling those two views by hand is difficult.
The idea
Give the programmer both views of the same data at once, and compile the local description down to efficient global sparse linear algebra on CPUs and GPUs.
How it fits the group's work
Simit is an early expression of the group’s recurring theme: decoupling how a computation is described from how its data is represented and executed. The hypergraph-and-tensor duality it introduced for simulation foreshadows the later, more general work on languages over collections of data and compilers that are polymorphic over data structures.