## Q Lisp

**The QLisp Project Development of a Quantum Computer Programming Language QLisp is a project that creates a formal design and implementation of:**

• A computer language for processing data on machines with non-deterministic (probabilistic) and quantum registers;

• a software simulator that can execute quantum software programs written in the language;

• the design for a hardware (non-quantum) parallel processing system that can emulate the machine with quantum registers; and

• using approximate polynomial models for certain quantum calculations.

The motivations for designing and building a quantum programming language (abbreviated as QLisp) are presented in this summary, together with the aimed results of the project. The new language (QLisp) is an extension of the AI language ‘Common Lisp’, and thus is a fully general computing language for digital (classical) computers. Extensions to Common Lisp to add data-types and operators are permitted by the Lisp specification. Extensions to the macro world that implement quantum physics appear to be permitted by the specifications of the universe itself.

**We are developing and implementing QLisp for these reasons:**

**(1)** If you can program something, then you understand it in a very deep and special way. The best (and in some cases the only) way to find out if your understanding is correct, is to run the program and look at the results. Currently, we do not do this with quantum mechanics, except in very special situations and then with a lot of hand-calculating (and hand-waving).

**(2)** We believe that practical programmable quantum computers are nearly here. We want to study what we can do with them, and how we can do it, without actually waiting for Intel to develop the “Quantum chip”.

**(3)** We want to implement a language that not only has a firm foundation in quantum theory (including a well-specified grammar) but also one that mirrors the way in which physicists and mathematicians think about quantum mechanics.

**(4)** We want to implement a working model, not just a design toy. That is, the model should execute reasonable programs in reasonable time and should support a high-speed simulator. We want results, not just correct form.

**(5)** We want to use delayed (lazy) functional evaluation based on probabilistic calculations. This is the strategy of putting off evaluation as long as possible (until a result from one calculation is actually needed by another). This helps reduce the number of quantum states that the system must calculate. We anticipate that the methods may have application in non-deterministic non-quantum languages as well.

**(6)** We want to use a large grab-bag of other optimization methods to reduce or approximate actual quantum calculations. When the system is then used, for example, to output a QLisp “wiring diagram”, the device will be smaller, which will help design actual and realizable quantum computers.

**(7)** We want to design and build a language that makes it difficult to program “quantum bugs”. Programs that are profoundly quantum-illegal are easy to write in conventional languages for digital computers. The simple assignment of a variable to a fixed state will probably be a quantum-illegal statement, for example. Programs that make copies of quantum entangled objects are certainly quantum-illegal. These types of “qbugs” can easily be caught by a functional language, but are harder to catch in traditional imperative languages.

**WHAT WILL WE ACHIEVE?**

**(1)** We expect significant advances in quantum error-correction protocols and networking of qbits, and the development of quantum information theory.

**(2)** We expect to make significant advances in exploring and understanding the relationship between classical probabilistic non-deterministic systems and quantum systems, including the modeling of certain types of classical systems on the quantum simulator. For example, we want to study the relationship between the gate implementation of quantum mechanical functions (which does not include conditionals) and the functional implementation (which may include conditionals). We know from some deep mathematical results that these two are equivalent, but it is very hard to understand how that can be true. The philosophical impact of this work will be to develop intuitions about the relationship between different branches of imperative-type conditional statements and superposed states of quantum gates. This directly impacts on the nature of reality itself and the possibility (for example) of free will.

**(3)** We expect to make, at least in prototype form, a computer language that will actually be useful to program real quantum computers.

**(4)** We want to make the quantum computing language evaluator (the simulator) available on the internet to other researchers.