A functional language for describing reversible logic

20 Citations (Scopus)

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.
Original languageEnglish
Title of host publicationProceedings of the 2012 Forum on Specification and Design Languages
EditorsAdam Morawiec, Jinnie Hinderscheit
Number of pages8
PublisherIEEE
Publication date2012
Pages135-142
ISBN (Print)978-1-4673-1240-0
ISBN (Electronic)978-2-9530504-5-5
Publication statusPublished - 2012
Event2012 Forum on specification & Design Languages - Vienna, Austria
Duration: 18 Sept 201220 Sept 2012

Conference

Conference2012 Forum on specification & Design Languages
Country/TerritoryAustria
CityVienna
Period18/09/201220/09/2012

Fingerprint

Dive into the research topics of 'A functional language for describing reversible logic'. Together they form a unique fingerprint.

Cite this