On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Concrete syntax for data objects in functional languages
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
Proofs and types
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
Higher order logic and hardware verification
Higher order logic and hardware verification
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Dynamic typing as staged type inference
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lava: hardware design in Haskell
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Formal verification of iterative algorithms in microprocessors
Proceedings of the 37th Annual Design Automation Conference
High-speed, analyzable simulators
Computer-Aided reasoning
Synthesis of Digital Design from Recursive Equations
Synthesis of Digital Design from Recursive Equations
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Tagless staged interpreters for typed languages
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Practical Formal Verification in Microprocessor Design
IEEE Design & Test
Symbolic Simulation: An ACL2 Approach
FMCAD '98 Proceedings of the Second International Conference on Formal Methods in Computer-Aided Design
TYPES '00 Selected papers from the International Workshop on Types for Proofs and Programs
Leading-edge and future design challenges - is the classical EDA ready?
Proceedings of the 40th annual Design Automation Conference
Formal Verification of the Pentium 4 Multiplier
HLDVT '01 Proceedings of the Sixth IEEE International High-Level Design Validation and Test Workshop (HLDVT'01)
Microprocessor Specification in Hawk
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Multistage programming: its theory and applications
Multistage programming: its theory and applications
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Accomplishments and research challenges in meta-programming
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
Electronic Notes in Theoretical Computer Science (ENTCS)
Extensible pattern matching via a lightweight language extension
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Formal verification of hardware support for advanced encryption standard
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
A MuDDy Experience---ML Bindings to a BDD Library
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Tool Building Requirements for an API to First-Order Solvers
Electronic Notes in Theoretical Computer Science (ENTCS)
Low-level programming in Hume: an exploration of the HW-Hume level
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
Slotted-circus: a UTP-family of reactive theories
IFM'07 Proceedings of the 6th international conference on Integrated formal methods
A novel formalization of symbolic trajectory evaluation semantics in Isabelle/HOL
Theoretical Computer Science
A calculus for hardware description*
Journal of Functional Programming
vlogsl: a strategy language for simulation-based verification of hardware
HVC'10 Proceedings of the 6th international conference on Hardware and software: verification and testing
Design, implementation, and verification of an adaptable processor in lava HDL
ARC'11 Proceedings of the 7th international conference on Reconfigurable computing: architectures, tools and applications
A monadic approach to automated reasoning for Bluespec SystemVerilog
Innovations in Systems and Software Engineering
Processor design using a functional hardware description language
Microprocessors & Microsystems
Hardware design with generalized arrows
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
The formalization of syntax-based mathematical algorithms using quotation and evaluation
CICM'13 Proceedings of the 2013 international conference on Intelligent Computer Mathematics
Synchronous digital circuits as functional programs
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
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.