Rosetta
Raskell
Interpreter Libraries
The InterpreterLib
utilities support development of composable interpreters.
InterpreterLib
makes the semantic algebra explicit in the interpreter
rather than using polymorphism for selection. InterpreterLib
structures interpreters around a Functor and
Algebra written for each AST construct. AST
elements are defined non-recursively and composed using a
Sum type. The actual language is formed by taking
the fixed point of the language sum. To interpret an AST
element, a catamorphism is applied explicitly specifying an
appropriate semantic algebra defining the interpretation.
The LangUtils
library predates IntepreterLib and provides a collection of
functions and type classes that implement semantic algebras
in the style of Hutton and Duponcheel. Development has
ceased, but we keep LangUtils
available as an introduction to modular, monadic
interpreters.
Model Composition
Component Retrieval
Embedded Systems Modeling
Embedded systems has become a focus for our Rosetta
modeling activities. We are currently looking specifically at
the modeling of
cross-cutting concerns in embedded systems using static
and dynamic analysis techniques.
We have recently begun a project with our embedded systems
group looking at developing a secure infrastructure for
embedded systems. We take a systems-level view integrating
security enforcement from language-level analysis techniques
through a secure virtual machine to runt-time analysis in
hardware. This is a new effort with much promise for future
activity.
Network Systems Modeling
Test Vector Generation
Dance Representation