Jonas Barklund

Learn More
Programs operating on inductively deened data structures, such as lists, are naturally deened by recur-sive programs, while programs operating onìndexable' data structures, such as arrays, are naturally deened by iterative programs. It has recently been shown how many recursive programs can be transformed or compiled to iterative programs operating on(More)
D We present an application of metaprogramming in logic that, unlike most metaprogramming applications, is not primarily concerned with controlling the execution of logic programs. Metalevel computation is used to define theories from schemata that were either given explicitly or obtained by abstraction from other theories. Our main application is a(More)
We are developing a multilevel metalogic programming language that we call Alloy. It is based on rst-order predicate calculus extended with metalogical constructs. An Alloy program consists of a collection of theories, all in the same language, and a representation relation over these theories. The whole language is self-representable, including names for(More)
A metaprogram is a program where data denotes another (object) program. The relation between the metalevel data and the object program is speciied through encodings. In this paper we discuss the expressi-vity of various forms of encodings (both ground and non-ground) that have appeared in literature. This is done in a context where enco-dings are expressed(More)