Quantum programming language LanQ
Authors | |
---|---|
Year of publication | 2007 |
MU Faculty or unit | |
Citation | |
Description | We define a typed imperative quantum programming language LanQ that allows programmers to implement any algorithm that is based on either one, or a combination of classical or quantum computation. The language syntax is similar to that of C language and forces programmers to structure their programs into smaller pieces of code (methods, blocks) what makes the program better readable and maintainable compared to programs in unstructured languages. It allows programmers to assign a quantum system to several variables in such a way that all quantum principles, namely no-cloning and no-deleting, are obeyed. The language also offers process algebraic features such as creation a new process (this is done by forking a new process from a running one) and interprocess communication. It therefore supports implementation of multiparty protocols. The resources sent over a channel are handled so that they are always owned by at most one process at one time. In the thesis, we formally describe the language syntax, its type system, memory model used and operational semantics. We also prove type soundness property for the noncommunicating part of the language and for the full language provided the programs are guaranteed to use only a well-formed communication.. We show an example run of a random number generator implemented in the language and provide a reference manual to the implementation of LanQ simulator which is publicly available at http://lanq.sf.net/. |
Related projects: |