通过基于 JSON 的中间表示将 Q#子集编译为 QASM 3.0 的 TypeScript 方法-计算机科学-编译工具链-编程语言.pdfVIP

通过基于 JSON 的中间表示将 Q#子集编译为 QASM 3.0 的 TypeScript 方法-计算机科学-编译工具链-编程语言.pdf

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

通过基于JSON的中间表示将Q#子集编译为

QASM3.0的TypeScript方法

MarcusEdwards

ElectricalandComputerEngineering,

本UniversityofBritishColumbia,Vancouver,BC,CA

译2025年7月20日

2

v摘要

7

0我们实现了一个从Q#到QASM3.0的编译工具链,包括一个功能

4

3齐全的词法分析器和解析器实现,以及一个支持Q#子集特性的编译

2.器。词法分析器、解析器和编译器被证明可以与各种输入的Q#程序一

6起工作,并且实现了与其他现有的Q#编译工具进行了比较。与微软官

0

5方Q#编译工具链的实现不同,我们的实现是用TypeScript编写,以

2便将功能移植到网络环境。

:

v

i

x

r1介绍

a

Microsoft的Q#[SGT18]提供了一个强大的类型系统,用于在典型

的量子指令集架构之上进行高层次的抽象,包括经典和量子操作。特别地,

Q#包含一个强类型系统、上下文表达式、可调用对象、迭代器、条件分

支、循环、字面量、闭包、类似于Rust(即使用和借用声明)中提供的量

子内存管理工具、命名空间、注释以及一些特定于量子计算技术的功能,如

共轭操作和操作修饰符(例如受控和伴随)。我们实现了一个完整的Q#语

言语法解析器,将其转换为自定义的抽象语法树(AST)数据结构,这一设

计灵感部分来源于现有的npm库,包括Qasm-ts[KE24]、Blackbird-ts和

Qmasm-ts[Edw23]。在这些四种语言中,Q#代表了最复杂的语法解析要求,

1

因此需要一个更复杂的解析器实现。我们还实现了将Q#的一部分语言特

性编译为QASM3.0语法[CJAA22]。我们的实现是面向对象的,并基于

TypeScript,这已被证明是一个合理的“中间地带”选项,在类似应用中比

Python更高效,尽管不如Rust那么高效,Rust只能在更严格的环境中执

行[KE24]。编译工具链的部分可以独立使用,我们将在接下来的部分详细介

绍它们的实现细节。

2词法分析器实现

工具链始于词法分析器。词法分析器的任务是将输入的Q#代码翻译成

一系列有意义的记号。这些记号代表了与Q#语法中原子元素相对应的一组

有意义的字符集合。其中包括例如按位运算符!!!,等操作符,在

一起考虑时是有意义的,但如果作为三个元素序列,则解释起来毫无必要地

复杂化。然而,词法分析器并不负责生成我们感兴趣的所有的惯用抽象。因

此,由按位运算符组成的表达式将被转换成一系列如‘Token.BitwiseAnd’和

‘Token.BitwiseNot’的按位运算符记号,而不是像‘Expression’这样的抽象,

该抽象本身会有自己的元素和超过一层的抽象深度。任何深度大于一的抽象

都留给了解析器来处理,解析器的任务是根据词法分析器首先生成的记号生

成这些更高级别的抽象。

您可能关注的文档

文档评论(0)

zikele + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档