Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xanaduai/blackbird

Blackbird is a quantum assembly language for continuous-variable quantum computation, that can be used to program Xanadu's quantum photonics hardware and Strawberry Fields simulator.
https://github.com/xanaduai/blackbird

antlr4 parser quantum quantum-algorithms quantum-computing quantum-optics quantum-programming-language

Last synced: 9 days ago
JSON representation

Blackbird is a quantum assembly language for continuous-variable quantum computation, that can be used to program Xanadu's quantum photonics hardware and Strawberry Fields simulator.

Awesome Lists containing this project

README

        

Blackbird Quantum Assembly Language
###################################

.. image:: https://img.shields.io/github/workflow/status/XanaduAI/blackbird/Tests/master?logo=github&style=flat-square
:alt: GitHub Workflow Status (branch)
:target: https://github.com/XanaduAI/blackbird/actions?query=workflow%3ATests

.. image:: https://img.shields.io/codecov/c/github/xanaduai/blackbird/master.svg?style=for-the-badge
:alt: Codecov coverage
:target: https://codecov.io/gh/XanaduAI/blackbird

.. image:: https://img.shields.io/readthedocs/quantum-blackbird.svg?style=for-the-badge
:alt: Read the Docs
:target: https://quantum-blackbird.readthedocs.io

Blackbird is a quantum assembly language for continuous-variable quantum computation, that can be used to program Xanadu's quantum photonics hardware and Strawberry Fields simulator.

Features
--------

The Blackbird repository contains three *separate* packages:

* ``src``: The Blackbird grammar specification in enhanced Brackus-Naur form

* ``blackbird_python``: to develop Blackbird parsers for integration with Python programs

* ``blackbird_cpp``: libraries and header files needed to develop Blackbird
parsers for integration with C++ programs

All of these packages are independent, and can be installed separately without
depending on one-another. *However*, if the grammar is ever modified, there
is a command for updating the autogenerated parts of the Python and C++
parsers.

In addition, this repository contains:

* ``example``: Example Blackbird scripts

* ``apps``: Example Python/C++ applications using the above parsers

Getting started
---------------

Blackbird is a development library, designed to easily integrate Blackbird code
into applications and interfaces.

To get the Blackbird grammar installed and running on your system, begin at the `grammar installation guide `_. Then, familiarize yourself with the Blackbird's `syntax and grammar `_ for specifying photonic quantum circuits. You can even generate Blackbird parsers for any target language supported
by ANTLR, including Java, C#, JavaScript, Go, and Swift.

If you only want to develop an application that makes use of the `Python parser `_ or the `C++ parser `_, you can go directly to those sections and their corresponding installation guides.

How to cite
-----------

If you are doing research using Blackbird, please cite

Nathan Killoran, Josh Izaac, Nicolás Quesada, Ville Bergholm, Matthew Amy, and Christian Weedbrook.
*Strawberry Fields: A Software Platform for Photonic Quantum Computing* 2018. `arXiv:1804.03159 `_

Support
-------

- **Source Code:** https://github.com/XanaduAI/Blackbird
- **Issue Tracker:** https://github.com/XanaduAI/Blackbird/issues

If you are having issues, please let us know by posting the issue on our Github issue tracker.

License
-------

Blackbird is **free** and **open source**, released under the Apache License, Version 2.0.