2010
DOI: 10.1007/978-3-642-12251-4_9
|View full text |Cite
|
Sign up to set email alerts
|

Code Generation via Higher-Order Rewrite Systems

Abstract: Abstract. We present the meta-theory behind the code generation facilities of Isabelle/HOL. To bridge the gap between the source (higherorder logic with type classes) and the many possible targets (functional programming languages), we introduce an intermediate language, MiniHaskell. To relate the source and the intermediate language, both are given a semantics in terms of higher-order rewrite systems (HRSs). In a second step, type classes are removed from Mini-Haskell programs by means of a dictionary transla… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
136
0

Year Published

2012
2012
2019
2019

Publication Types

Select...
10

Relationship

1
9

Authors

Journals

citations
Cited by 144 publications
(136 citation statements)
references
References 16 publications
0
136
0
Order By: Relevance
“…Code Extraction Isabelle's code generator [29] extracts Haskell code from an executable fragment of HOL, mapping HOL (co)datatypes to lazy Haskell datatypes and HOL functions to Haskell functions. Seven out of our eight case studies fall into this fragment; the extracted code is part of the archive [14].…”
Section: Related Work and Discussionmentioning
confidence: 99%
“…Code Extraction Isabelle's code generator [29] extracts Haskell code from an executable fragment of HOL, mapping HOL (co)datatypes to lazy Haskell datatypes and HOL functions to Haskell functions. Seven out of our eight case studies fall into this fragment; the extracted code is part of the archive [14].…”
Section: Related Work and Discussionmentioning
confidence: 99%
“…As we want to apply Isabelle's code generator [11] on our certification algorithm, we have to formalize conditional constraints via a deep embedding. Therefore, we had the choice between at least two alternatives how to deal with bound variables: we can use a dedicated approach like Nominal Isabelle [21,22], or we perform renamings, α-equivalence, .…”
Section: Third Problem: Solving Conditional Constraintsmentioning
confidence: 99%
“…In addition, Isabelle/HOL is a framework for certified programming: functional programming (including lazy (co)programming [9]) is supported natively and imperative programming is supported via a monadic extension [10]. Programs can be written and verified in Isabelle/HOL, and efficient code for them (in Haskell, Standard ML, OCaml and Scala) can be produced using a code generator [19]. This certified programming methodology has yielded a wide range of verified software systems, from a Java compiler [32] to an LTL model checker [14] to a conference management system [23].…”
Section: Introductionmentioning
confidence: 99%