A Quantum Programming Language -HSK A Quantum Programming Language Presented by Team HSK: Katherine Heller, Krysta Svore, Maryam Kamvar
What is Q-HSK? Q-HSK is a language which we designed to facilitate the implementation and simulation of quantum algorithms on a classical computer
Quantum Computation Problems can be solved exponentially faster than with classical computation Problems include summation, factoring, searching Quantum mechanics is used to solve these problems Current technology is limited Factors the number 15 Decoheres for large number of qubits Qubits and quantum gates are used Qubits take values 0, 1, or superposition of values Gates include Hadamard, Unitary, Fourier
Key Features Familiar C-style syntax Matrix operations via CBLAS Complex and real data types A quantum type qreg A graphical view of quantum algorithms Lucid representation of quantum qubits, registers, and gates Interactive user options (start, stop, pause, change animation rate) Detailed text output to trace algorithm
A Simple Example int main( ){ int a, i; qreg q[5]; i = 0; while (i < 5){ q[i] = 0; i = i + 1; } q = computeHadamard(q); a = measureReg(q); printf(“This is the measure: %d”, a); return 0; H M q
Simulation of Shor’s Algorithm Factors numbers which are divisible by two prime numbers Simulates steps of a quantum computer Demonstrates Hadamard gate Unitary gate Quantum Fourier transform Measurement of quantum registers Quantum registers of type qreg Arrays of type complex Advanced arithmetic operations Illustrates translation process and graphics
Architecture of Q-HSK System lex.yy.c y.tab.c translate.c Program.q Lexical Analyzer Syntax Analyzer Parser Translator Program.cpp g++ Executable Java javac Graphics
Testing Regression testing Integration testing Baby steps Ensure backward compatibility Prevent new bugs in old code Integration testing Connect Q-HSK program, translation, and graphics Provide a robust system Baby steps Test incrementally Test frequently
Everything we need to know we learned in PLT… Communication Detail the design early Explicit definitions of the input/output for each component Incremental Development Create goal points along the way Start small and expand Demo product to potential users for constructive feedback Make system more robust over time
Future Goals Expand graphics to include complete code display and tracing Expand to include a double-click for a detailed description of the operations in a quantum gate Expand error handling Expand to include building of algorithms from the graphical display Build a quantum computer And of course win the Turing Award
Conclusion Q-HSK enables simple programming of quantum algorithms with built-in graphics Q-HSK is a valuable learning tool for both experts and beginners Q-HSK is the perfect tool for quantum simulation and computation USE -HSK!