A reflective functional language for hardware design and theorem proving

  • Authors:
  • Jim Grundy;Tom Melham;John O'leary

  • Affiliations:
  • Intel Corporation, Strategic CAD Labs Mail Stop JF4-211, 2111 NE 25th Ave, Hillsboro, OR 97124-5961, USA (e-mail: Jim.D.Grundy@intel.com);Oxford University, Computing Laboratory Wolfson Building, Parks Rd, Oxford, OX1 3QD, UK (e-mail: Tom.Melham@comlab.ox.ac.uk);Intel Corporation, Strategic CAD Labs Mail Stop JF4-211, 2111 NE 25th Ave, Hillsboro, OR 97124-5961, USA (e-mail: John.W.O'Leary@intel.com)

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper introduces reFLect, a functional programming language with reflection features intended for applications in hardware design and verification. The reFLect language is strongly typed and similar to ML, but has quotation and antiquotation constructs. These may be used to construct and decompose expressions in the reFLect language itself. The paper motivates and presents the syntax and type system of this language, which brings together a new combination of pattern-matching and reflection features targeted specifically at our application domain. It also gives an operational semantics based on a novel use of contexts as expression constructors, and it presents a scheme for compiling reFLect programs using the same context mechanism.