오픈QASM

OpenQASM

Open 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에서 볼 수 있습니다.GitHubASM 저장소.

다음은 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]; 

레퍼런스

  1. ^ a b Cross, Andrew W.; Bishop, Lev S.; Smolin, John A.; Gambetta, Jay M. (2017). "Open Quantum Assembly Language". arXiv:1707.03429 [quant-ph].
  2. ^ qiskit-openqasm: OpenQASM specification, International Business Machines, 2017-07-04, retrieved 2017-07-06
  3. ^ "openqasm/adder.qasm at master · openqasm/openqasm · GitHub". GitHub. 29 January 2022.

외부 링크