[![Unitary Fund](https://img.shields.io/badge/Supported%20By-UNITARY%20FUND-brightgreen.svg?style=for-the-badge)](http://unitary.fund)
# H-hat
$\hat{H}$ (H-hat) is a high abstraction quantum programming language.
*Disclaimer*: This is a work still in early stages and may be seeing as such. So errors, inconsistencies, tons of experimentation, modifications and trials will happen.
---
**Note**: Documentation is in progress and can be found [here](https://docs.hhat-lang.org).
------
Contents
------
* [Summary](#summary)
* [Objectives](#objectives)
* [Features](#features)
* [Installation](#installation)
* [Executing Code](#executing-code)
* [Progress](#progress)
* [Got an error?](#got-an-error)
* [License](#license)
* [Credits](#credits)
--------
Summary
--------
* A (high level) quantum algorithms builder
* Handling output quantum data with contextualized meaning
* Quantum and classical variables are arrays of data
* No qubit approach: it will be handled by the language as operations (quantum) on indexes; The interpreter/compiler will be responsible to transpile it to low level QASM instructions
* Convert high level languages commands and procedures into low level quantum instructions for quantum languages such as openQASM, cQASM, NetQASM, Q1ASM to be executed on their respective hardware/simulator
* Debugging results and quantum processes through post-measurement analysis (probably)
-----------
Objectives
-----------
* Provide an intermediate picture between classical high-level and QASM (or [QIR](https://www.qir-alliance.org/))-like programming languages
* Make use of basic and complex quantum instructions and procedures in a qubit-free environment
* Bring light to measurement results and their analysis
* Be simples enough to be used by software developers with little knowledge on quantum computing
* Prepare the path for quantum devices with hundreds or thousands of qubits
* Integrate with common programming languages through function calls
* Integrate with quantum hardware and compilers
* Debugging through (partial) quantum analysis of measurement results for results and inner processes comparing them to simulated ones (using fisher information, linear entropy, entanglement measurements, etc)
--------
Features
--------
* simple syntax
* array-like programming approach
* quantum functions for quantum data
* quantum commands and quantum data are referred with `@` before the word, i.e. `@init`, `@sync`, `@q1`
* measurements automatically made after executing quantum variable content through interaction with classical functions and classical data
* measurement result contextualized according to the data type it is interacting with
------
Installation
------
* Install **Python 3.10+**.
* Set up a virtual environment, such as [anaconda](https://www.anaconda.com/products/individual) or [venv](https://docs.python.org/3/library/venv.html).
* Install the package, via [PYPI](https://pypi.org/) (instructions [below](#pypi-installation)) or in [development mode](#development-mode).
### Setting up a virtual environment
In case you don't know how to set up a virtual environment, see the examples below (choose only one):
#### Using conda
* Install [anaconda](https://www.anaconda.com/products/individual).
* Create an environment for `h-hat` and activate it: `conda activate <name_of_the_env>`
#### Using venv
* Create a venv: `python3.10 -m venv .venv` (the venv will be located in the folder `.venv` inside the hhat_lang root folder)
* Deactivate any other environment you might have active, i.e. conda: `conda deactivate`, until you have no environment
* Activate our new venv through: `source .venv/bin/activate`
### PYPI installation
After setting up your virtual environment, simply use:
```shell
python3 -m pip install hhat-lang
```
### Development mode
In the root folder, run:
```shell
python3 -m pip install -e .
```
-----
Executing Code
-----
After proceeding on your preferred installation method, it's time to run some code. Just type `hhat` in the terminal followed by the file containing your code (`.hat` extension).
----
Progress
----
You can follow the progress in the [TODOs list](hhat_lang/TODOs-list.md).
------
Got an error?
------
Open an issue!
-------
License
-------
MIT
-------
Credits
-------
Code is being developed by [Doomsk](https://github.com/Doomsk). The author thanks [Kaonan](https://github.com/kaosmicadei), [T1t0](https://github.com/adauto6), [Anneriet](https://github.com/anneriet), [Penguim](https://github.com/danilodsp) and [Lucasczpnk](https://github.com/lucasczpnk) for great discussions and help on developing the first language concepts.
Raw data
{
"_id": null,
"home_page": "https://github.com/hhat-lang/hhat_lang",
"name": "hhat-lang",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10, <4",
"maintainer_email": "",
"keywords": "programming language,quantum",
"author": "Eduardo Maschio (Doomsk)",
"author_email": "eduardo.maschio@hhat-lang.org",
"download_url": "https://files.pythonhosted.org/packages/63/f2/cad17a64209dc5572476a03991c11988653fd1796460f4a76dbee9b8a85d/hhat-lang-0.1.0a8.tar.gz",
"platform": null,
"description": "[![Unitary Fund](https://img.shields.io/badge/Supported%20By-UNITARY%20FUND-brightgreen.svg?style=for-the-badge)](http://unitary.fund)\n# H-hat\n\n$\\hat{H}$ (H-hat) is a high abstraction quantum programming language.\n\n*Disclaimer*: This is a work still in early stages and may be seeing as such. So errors, inconsistencies, tons of experimentation, modifications and trials will happen.\n\n---\n\n**Note**: Documentation is in progress and can be found [here](https://docs.hhat-lang.org).\n\n\n------\nContents\n------\n* [Summary](#summary)\n* [Objectives](#objectives)\n* [Features](#features)\n* [Installation](#installation)\n* [Executing Code](#executing-code)\n* [Progress](#progress)\n* [Got an error?](#got-an-error)\n* [License](#license)\n* [Credits](#credits)\n\n\n--------\nSummary\n--------\n\n* A (high level) quantum algorithms builder\n* Handling output quantum data with contextualized meaning\n* Quantum and classical variables are arrays of data\n* No qubit approach: it will be handled by the language as operations (quantum) on indexes; The interpreter/compiler will be responsible to transpile it to low level QASM instructions\n* Convert high level languages commands and procedures into low level quantum instructions for quantum languages such as openQASM, cQASM, NetQASM, Q1ASM to be executed on their respective hardware/simulator\n* Debugging results and quantum processes through post-measurement analysis (probably)\n\n\n-----------\nObjectives\n-----------\n\n* Provide an intermediate picture between classical high-level and QASM (or [QIR](https://www.qir-alliance.org/))-like programming languages\n* Make use of basic and complex quantum instructions and procedures in a qubit-free environment\n* Bring light to measurement results and their analysis\n* Be simples enough to be used by software developers with little knowledge on quantum computing\n* Prepare the path for quantum devices with hundreds or thousands of qubits\n* Integrate with common programming languages through function calls\n* Integrate with quantum hardware and compilers\n* Debugging through (partial) quantum analysis of measurement results for results and inner processes comparing them to simulated ones (using fisher information, linear entropy, entanglement measurements, etc)\n\n\n--------\nFeatures\n--------\n\n* simple syntax\n* array-like programming approach\n* quantum functions for quantum data\n* quantum commands and quantum data are referred with `@` before the word, i.e. `@init`, `@sync`, `@q1`\n* measurements automatically made after executing quantum variable content through interaction with classical functions and classical data\n* measurement result contextualized according to the data type it is interacting with\n\n\n------\nInstallation\n------\n\n* Install **Python 3.10+**. \n* Set up a virtual environment, such as [anaconda](https://www.anaconda.com/products/individual) or [venv](https://docs.python.org/3/library/venv.html).\n* Install the package, via [PYPI](https://pypi.org/) (instructions [below](#pypi-installation)) or in [development mode](#development-mode).\n\n### Setting up a virtual environment\n\nIn case you don't know how to set up a virtual environment, see the examples below (choose only one):\n\n#### Using conda\n\n* Install [anaconda](https://www.anaconda.com/products/individual).\n* Create an environment for `h-hat` and activate it: `conda activate <name_of_the_env>`\n\n#### Using venv\n\n* Create a venv: `python3.10 -m venv .venv` (the venv will be located in the folder `.venv` inside the hhat_lang root folder)\n* Deactivate any other environment you might have active, i.e. conda: `conda deactivate`, until you have no environment\n* Activate our new venv through: `source .venv/bin/activate`\n\n\n### PYPI installation\n\nAfter setting up your virtual environment, simply use:\n\n```shell\npython3 -m pip install hhat-lang\n```\n\n### Development mode\n\nIn the root folder, run:\n\n```shell\npython3 -m pip install -e .\n```\n\n-----\nExecuting Code\n-----\n\nAfter proceeding on your preferred installation method, it's time to run some code. Just type `hhat` in the terminal followed by the file containing your code (`.hat` extension). \n\n----\nProgress\n----\n\nYou can follow the progress in the [TODOs list](hhat_lang/TODOs-list.md).\n\n\n------\nGot an error?\n------\nOpen an issue!\n\n\n-------\nLicense\n-------\n\nMIT\n\n-------\nCredits\n-------\nCode is being developed by [Doomsk](https://github.com/Doomsk). The author thanks [Kaonan](https://github.com/kaosmicadei), [T1t0](https://github.com/adauto6), [Anneriet](https://github.com/anneriet), [Penguim](https://github.com/danilodsp) and [Lucasczpnk](https://github.com/lucasczpnk) for great discussions and help on developing the first language concepts.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "H-hat: a high level abstraction quantum programming language.",
"version": "0.1.0a8",
"project_urls": {
"Homepage": "https://github.com/hhat-lang/hhat_lang",
"Unitary Fund": "https://unitary.fund/"
},
"split_keywords": [
"programming language",
"quantum"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "63f2cad17a64209dc5572476a03991c11988653fd1796460f4a76dbee9b8a85d",
"md5": "f72883c35256fce590cc7fc2b1e9975d",
"sha256": "b7ed31b85ac07bf680acc367295661ccc82b9532fb470517d03562b7d629301c"
},
"downloads": -1,
"filename": "hhat-lang-0.1.0a8.tar.gz",
"has_sig": false,
"md5_digest": "f72883c35256fce590cc7fc2b1e9975d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10, <4",
"size": 19663,
"upload_time": "2023-11-12T20:38:03",
"upload_time_iso_8601": "2023-11-12T20:38:03.640952Z",
"url": "https://files.pythonhosted.org/packages/63/f2/cad17a64209dc5572476a03991c11988653fd1796460f4a76dbee9b8a85d/hhat-lang-0.1.0a8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-12 20:38:03",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hhat-lang",
"github_project": "hhat_lang",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "Arpeggio",
"specs": [
[
"~=",
"2.0.2"
]
]
},
{
"name": "click",
"specs": [
[
"~=",
"8.1.7"
]
]
}
],
"lcname": "hhat-lang"
}