跳转到主要内容

Python内部特定语言的构建块。

项目描述

blqs:特定语言构建块

Blqs 是一个用于构建(内部)特定语言的框架,这些语言可以用 Python 编写。它受到了 TensorFlow 的 autograph 库的启发,并由 2021 年前后量子编程框架(如 Cirq 和 Qiskit)中的先进技术所驱动。

简而言之,blqs 允许您定义特定语言,并提供使用这些语言中的原生 Python 功能(如 ifwhilefor)的访问权限。这为 Python 补充了一个缺失的功能,尽管它确实支持运算符重载,但不允许重载这些内置构造。

示例

import blqs
H, M, CX = blqs.Op('H'), blqs.Op('M'), blqs.Op('CX')

@blqs.build
def hello_blqs():
    a = blqs.Register('a')
    H(0)
    M(0, 'a')
    if a:
        CX(0, 1)
    else:
        CX(1, 0)

然后,如果我们调用此方法,我们将生成一个包含这两个语句的 blqs.Program,例如 H(0),但也包括 ifelse 语句。

program = hello_blqs()
for s in program:
    print(type(s))
> prints
> <class 'blqs.instruction.Instruction'>
> <class 'blqs.instruction.Instruction'>
> <class 'blqs.conditional.If'>

其中最后一个语句包含包含 CX 语句的块。

安装

要安装 blqs,可以简单地使用 pip 安装相应的包

pip install blqs

查看 requirements.txt 以获取 blqs 将拉取的依赖项。

文档

开始的好地方是阅读 blqs 简介。之后,blqs 中的思想和抽象在 概念指南 中进行描述。有关捕获原生 Python 代码的支持,请参阅文档中的 协议部分。通过 Jupyter Notebook 快速了解,请参阅 hello blqs

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解有关 安装包 的更多信息。

源分布

blqs-0.1.0.tar.gz (26.8 kB 查看哈希值)

上传时间

构建分布

blqs-0.1.0-py3-none-any.whl (49.8 kB 查看哈希值)

上传时间 Python 3

支持者