hhat-lang


Namehhat-lang JSON
Version 0.1.0a8 PyPI version JSON
download
home_pagehttps://github.com/hhat-lang/hhat_lang
SummaryH-hat: a high level abstraction quantum programming language.
upload_time2023-11-12 20:38:03
maintainer
docs_urlNone
authorEduardo Maschio (Doomsk)
requires_python>=3.10, <4
licenseMIT
keywords programming language quantum
VCS
bugtrack_url
requirements Arpeggio click
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![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"
}
        
Elapsed time: 0.16610s