Title :
A functional language for describing reversible logic
Author :
Thomsen, Michael Kirkedal
Author_Institution :
Dept. of Comput. Sci., Univ. of Copenhagen, Copenhagen, Denmark
Abstract :
Reversible logic is a computational model where all gates are logically reversible and combined in circuits such that no values are lost or duplicated. This paper presents a novel functional language that is designed to describe only reversible logic circuits. The language includes high-level constructs such as conditionals and a let-in statement that can be used to locally change wires that are otherwise considered to be constant. Termination of recursion is restricted by size-change termination; it must be guaranteed that all recursive calls will be to a strictly smaller circuit size. Reversibility of descriptions is guaranteed with a type system based on linear types. The language is applied to three examples of reversible computations (ALU, linear cosine transformation, and binary adder). The paper also outlines a design flow that ensures garbage-free translation to reversible logic circuits. The flow relies on a reversible combinator language as an intermediate language.
Keywords :
adders; functional languages; logic circuits; logic design; ALU; binary adder; computational model; conditionals; design flow; functional language; garbage-free translation; high-level constructs; intermediate language; let-in statement; linear cosine transformation; recursion termination; recursive calls; reversible combinator language; reversible computations; reversible logic circuits; size-change termination; Logic circuits; Logic gates; Switches; Wires;
Conference_Titel :
Specification and Design Languages (FDL), 2012 Forum on
Print_ISBN :
978-1-4673-1240-0