CIRCAL and the representation of communication, concurrency, and time
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Semantics of digital circuits
An introduction to the theory of lists
Proceedings of the NATO Advanced Study Institute on Logic of programming and calculi of discrete design
Models and logic of MOS circuits
Proceedings of the NATO Advanced Study Institute on Logic of programming and calculi of discrete design
Why functional programming matters
The Computer Journal - Special issue on Lazy functional programming
How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
Theoretical Computer Science
Semantics of programming languages: structures and techniques
Semantics of programming languages: structures and techniques
POLLUX: a LUSTRE based hardware design environment
Proceedings of the international workshop on Algorithms and parallel VLSI architectures II
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Historical introduction to “concrete domains” by G. Kahn and G. D. Plotkin
Theoretical Computer Science - A collection of contributions in honour of Corrado Bo¨hm on the occasion of his 70th birthday
Formal methods in circuit design
Formal methods in circuit design
Gordon's computer: a hardware verification case study in OBJ3
Formal Methods in System Design
Infinite objects in type theory
TYPES '93 Proceedings of the international workshop on Types for proofs and programs
The mythical man-month (anniversary ed.)
The mythical man-month (anniversary ed.)
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Building domain-specific embedded languages
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
Modeling hierarchical combinational circuits
ICCAD '93 Proceedings of the 1993 IEEE/ACM international conference on Computer-aided design
Analysis of cyclic combinational circuits
ICCAD '93 Proceedings of the 1993 IEEE/ACM international conference on Computer-aided design
ACM Computing Surveys (CSUR)
Type checking higher-order polymorphic multi-methods
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal Methods in System Design
Lava: hardware design in Haskell
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
On embedding a microarchitectural design language within Haskell
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Implicit parameters: dynamic scoping with static types
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Model checking
Reasoning About Analog-Level Implementationsof Digital Systems
Formal Methods in System Design
Science of Computer Programming - Special issue on mathematics of program construction
Deriving Target Code as a Representation of Continuation Semantics
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
The next 700 programming languages
Communications of the ACM
Specification and development of interactive systems: focus on streams, interfaces, and refinement
Specification and development of interactive systems: focus on streams, interfaces, and refinement
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Communication and Concurrency
Theory of Program Structures: Schemes, Semantics, Verification
Theory of Program Structures: Schemes, Semantics, Verification
Synthesis of Digital Design from Recursive Equations
Synthesis of Digital Design from Recursive Equations
Introduction to Mathematical Theory of Computation
Introduction to Mathematical Theory of Computation
Theoretical Foundations of VLSI Design
Theoretical Foundations of VLSI Design
Introduction to VLSI Systems
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
IEEE Transactions on Computers
Compositional Semantics of Non-Deterministic Synchronous Languages
ESOP '96 Proceedings of the 6th European Symposium on Programming Languages and Systems
Parametric Overloading in Polymorphic Programming Languages
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Type Classes with Functional Dependencies
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
From Transistors to Computer Architecture: Teaching Functional Circuit Specification in Hydra
FPLE '95 Proceedings of the First International Symposium on Functional Programming Languages in Education
Experience with Embedding Hardware Description Languages in HOL
Proceedings of the IFIP TC10/WG 10.2 International Conference on Theorem Provers in Circuit Design: Theory, Practice and Experience
Synchronous Observers and the Verification of Reactive Systems
AMAST '93 Proceedings of the Third International Conference on Methodology and Software Technology: Algebraic Methodology and Software Technology
Combining Stream-Based and State-Based Verification Techniques
FMCAD '00 Proceedings of the Third International Conference on Formal Methods in Computer-Aided Design
Circuits as Streams in Coq: Verification of a Sequential Multiplier
TYPES '95 Selected papers from the International Workshop on Types for Proofs and Programs
View from the Fringe of the Fringe
CHARME '01 Proceedings of the 11th IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods
Generating Netlists from Executable Circuit Specifications
Proceedings of the 1992 Glasgow Workshop on Functional Programming
Designing Arithmetic Circuits by Refinement in Ruby
Proceedings of the Second International Conference on Mathematics of Program Construction
Recursive Function Definition over Coinductive Types
TPHOLs '99 Proceedings of the 12th International Conference on Theorem Proving in Higher Order Logics
DDD-FM9001: Derivation of a Verified Microprocessor
CHARME '93 Proceedings of the IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods
The synthesis of cyclic combinational circuits
Proceedings of the 40th annual Design Automation Conference
Constructive Analysis of Cyclic Circuits
EDTC '96 Proceedings of the 1996 European conference on Design and Test
The Semantic Challenge of Verilog HDL
LICS '95 Proceedings of the 10th Annual IEEE Symposium on Logic in Computer Science
muFP, a language for VLSI design
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
Stream Processing Hardware from Functional Language Specifications
HICSS '03 Proceedings of the 36th Annual Hawaii International Conference on System Sciences (HICSS'03) - Track 9 - Volume 9
Microprocessor Specification in Hawk
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Algebraic specification and verification of processor microarchitectures
Algebraic specification and verification of processor microarchitectures
Designing Reconfigurable Systems in Lava
VLSID '04 Proceedings of the 17th International Conference on VLSI Design
Type-based termination of recursive definitions
Mathematical Structures in Computer Science
Towards a higher-order synchronous data-flow language
Proceedings of the 4th ACM international conference on Embedded software
A methodology for generating verified combinatorial circuits
Proceedings of the 4th ACM international conference on Embedded software
Derivation of a logarithmic time carry lookahead addition circuit
Journal of Functional Programming
Active libraries and universal languages
Active libraries and universal languages
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lava and JBits: From HDL to Bitstream in Seconds
FCCM '01 Proceedings of the the 9th Annual IEEE Symposium on Field-Programmable Custom Computing Machines
High-level views on low-level representations
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
The Implementation of Functional Programming Languages (Prentice-Hall International Series in Computer Science)
Fast and loose reasoning is morally correct
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A reflective functional language for hardware design and theorem proving
Journal of Functional Programming
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
Geometry of synthesis: a structured approach to VLSI design
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Practical type inference for arbitrary-rank types
Journal of Functional Programming
Containers: constructing strictly positive types
Theoretical Computer Science - Applied semantics: Selected topics
Applicative programming with effects
Journal of Functional Programming
Statecharts in the making: a personal account
Communications of the ACM - Being Human in the Digital Age
The worker/wrapper transformation
Journal of Functional Programming
Data Refinement: Model-Oriented Proof Methods and their Comparison
Data Refinement: Model-Oriented Proof Methods and their Comparison
Compiling Esterel
Using Structural Recursion for Corecursion
Types for Proofs and Programs
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Type-safe observable sharing in Haskell
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages
Journal of Functional Programming
Synchronous Dataflow Pattern Matching
Electronic Notes in Theoretical Computer Science (ENTCS)
Expressible sharing for functional circuit description
Higher-Order and Symbolic Computation
Compiling for reconfigurable computing: A survey
ACM Computing Surveys (CSUR)
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Regular, shape-polymorphic, parallel arrays in Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Accelerating Haskell array codes with multicore GPUs
Proceedings of the sixth workshop on Declarative aspects of multicore programming
The RLOC is dead - long live the RLOC
Proceedings of the 19th ACM/SIGDA international symposium on Field programmable gate arrays
A calculus for hardware description*
Journal of Functional Programming
Functional and dynamic programming in the design of parallel prefix networks
Journal of Functional Programming
Synthesizable high level hardware descriptions
New Generation Computing
Abstraction in hardware system design
Communications of the ACM
Deriving an efficient FPGA implementation of a low density parity check forward error corrector
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Geometry of synthesis iv: compiling affine recursion into static hardware
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Proving the unique fixed-point principle correct: an adventure with category theory
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
The design and implementation of feldspar an embedded language for digital signal processing
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
Hume box calculus: robust system development through software transformation
Higher-Order and Symbolic Computation
Wired: wire-aware circuit design
CHARME'05 Proceedings of the 13 IFIP WG 10.5 international conference on Correct Hardware Design and Verification Methods
Coquet: a coq library for verifying hardware
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Argos: an automaton-based synchronous language
Computer Languages
An industrially effective environment for formal hardware verification
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Transforming Cyclic Circuits Into Acyclic Equivalents
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Constructive Boolean circuits and the exactness of timed ternary simulation
Formal Methods in System Design
The reduceron reconfigured and re-evaluated
Journal of Functional Programming
Hardware design with generalized arrows
IFL'11 Proceedings of the 23rd international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
Functional programming techniques have been used to describe synchronous digital circuits since the early 1980s. Here we survey the systems and formal underpinnings that constitute this tradition. We situate these techniques with respect to other formal methods for hardware design and discuss the work yet to be done.