오픈QASM
OpenQASMOpen Quantum Assembly Language(OpenQASM; Openkasm으로[1] 발음됨)는 양자 명령의 중간 표현입니다.이 언어는 2017년 [1]7월 발행된 논문에서 처음 설명되었으며, 참조 소스 코드 구현은 IBM Quantum Information Software Kit(Qiskit)의 일부로 IBM Quantum Experience 클라우드 양자 컴퓨팅 [2]플랫폼과 함께 사용할 수 있도록 공개되었습니다.이 언어는 Verilog와 같은 기존 하드웨어 기술 언어와 유사한 특성을 가지고 있습니다.
OpenQASM은 선언에서와 같이 소스 파일의 선두에 있는 버전을 숫자로 정의합니다.
오픈 3;
OpenQ 수준ASM의 최초 공개 실장은 OpenQ입니다.ASM 2.0이 사양의 버전 3.0이 최신 버전이며 OpenQ에서 볼 수 있습니다.GitHub의 ASM 저장소.
예
다음은 OpenQ의 예입니다.공식 라이브러리의 ASM 소스 코드.프로그램이 2개의 [3]4비트 숫자를 추가합니다.
/* * 양자 리플 반송 가산기 * 쿠카로 외, quant-ph/0410184 */ 오픈 3; 포함하다 stdgates.inc; 게이트 다수 a, b, c { cx c, b; cx c, a; ccx a, b, c; } 게이트 풀리다 a, b, c { ccx a, b, c; cx c, a; cx a, b; } 큐비트[1] 신; 큐비트[4] a; 큐비트[4] b; 큐비트[1] 외치다; 조금[5] 응답하다; 설치하다[4] a_in = 1; // a = 0001 설치하다[4] b_in = 15; // b = 1111 // 큐비트 초기화 리셋 신; 리셋 a; 리셋 b; 리셋 외치다; // 입력 상태 설정 위해서 i 에 [0: 3] { 한다면(부울(a_in[i])) x a[i]; 한다면(부울(b_in[i])) x b[i]; } // a를 b에 추가하여 결과를 b에 저장합니다. 다수 신[0], b[0], a[0]; 위해서 i 에 [0: 2] { 다수 a[i], b[i + 1], a[i + 1]; } cx a[3], 외치다[0]; 위해서 i 에 [2: -1: 0] { 풀리다 a[i],b[i+1],a[i+1]; } 풀리다 신[0], b[0], a[0]; 재다 b[0:3] -> 응답하다[0:3]; 재다 외치다[0] -> 응답하다[4];
레퍼런스
- ^ a b Cross, Andrew W.; Bishop, Lev S.; Smolin, John A.; Gambetta, Jay M. (2017). "Open Quantum Assembly Language". arXiv:1707.03429 [quant-ph].
- ^ qiskit-openqasm: OpenQASM specification, International Business Machines, 2017-07-04, retrieved 2017-07-06
- ^ "openqasm/adder.qasm at master · openqasm/openqasm · GitHub". GitHub. 29 January 2022.
외부 링크
- GitHub에서의 OpenQASM