{"id":26281928,"url":"https://github.com/aviggiano/qcl","last_synced_at":"2025-05-07T07:33:48.593Z","repository":{"id":150687965,"uuid":"96488205","full_name":"aviggiano/qcl","owner":"aviggiano","description":"Quantum Computation Language port from http://tph.tuwien.ac.at/~oemer/qcl.html","archived":false,"fork":false,"pushed_at":"2018-01-13T18:48:31.000Z","size":2638,"stargazers_count":43,"open_issues_count":2,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-31T07:41:32.560Z","etag":null,"topics":["qcl","quantum","quantum-algorithms","quantum-computing"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aviggiano.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-07-07T01:53:12.000Z","updated_at":"2025-03-08T19:03:39.000Z","dependencies_parsed_at":"2023-04-25T22:02:38.923Z","dependency_job_id":null,"html_url":"https://github.com/aviggiano/qcl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aviggiano%2Fqcl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aviggiano%2Fqcl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aviggiano%2Fqcl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aviggiano%2Fqcl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aviggiano","download_url":"https://codeload.github.com/aviggiano/qcl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252833995,"owners_count":21811290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["qcl","quantum","quantum-algorithms","quantum-computing"],"created_at":"2025-03-14T16:17:38.316Z","updated_at":"2025-05-07T07:33:48.559Z","avatar_url":"https://github.com/aviggiano.png","language":"C++","funding_links":[],"categories":["Abandoned projects"],"sub_categories":[],"readme":"QCL (Quantum Computing Language)\n================================\n\nQCL is one of the first implemented quantum programming languages\n\nIntro\n-----\n\nThis is a github port from the project's [official homepage](http://tph.tuwien.ac.at/~oemer/qcl.html).\nThe idea is to ease the contribution of programmers interested in quantum computing, through guides, documentation,\ntests and the development of the core language itself.\n\nOriginal README by Bernhard Oemer \u003coemer@tph.tuwien.ac.at\u003e\n----------------------------------------------------------\n\nDespite many common concepts with classical computer science, quantum\ncomputing is still widely considered as a special discipline within the\nbroad field of theoretical physics.  One reason for the slow adoption of\nQC by the computer science community is the confusing variety of\nformalisms (Dirac notation, matrices, gates, operators, etc.), none of\nwhich has any similarity with classical programming languages, as well\nas the rather \"physical\" terminology in most of the available\nliterature.\n\nQCL (Quantum Computation Language) tries to fill this gap: QCL is a\nhigh level, architecture independent programming language for quantum\ncomputers, with a syntax derived from classical procedural languages\nlike C or Pascal.  This allows for the complete implementation and\nsimulation of quantum algorithms (including classical components) in one\nconsistent formalism.\n\n\nFeatures:\n---------\n\n -  a classical control language with functions, flow-control,\n    interactive i/o and various classical data types (int, real,\n    complex, boolean, string)\n -  2 quantum operator types: general unitarian (operator) and\n    reversible pseudo-classic gates (qufunct) \n -  inverse execution, allowing for on-the-fly determination of the\n    inverse operator though caching of operator calls\n -  various quantum data types (qubit registers) for compile time\n    information on access modes (qureg, quconst, quvoid, quscratch)\n -  convenient functions to manipulate quantum registers (q[n] -\n    qubit, q[n:m] - substring, q\u0026p - combined register)\n -  Quantum memory management (quheap) allowing for local quantum\n    variables\n -  Transparent integration of Bennet-style scratch space management\n -  Easy adaption to individual sets of elementary operators\n -  graphical output for (X11 and Postscript) (v0.5)\n -  conditional operators and quantum if-statements (v0.5, experimental)\n\nAvailability:\n-------------\n\nQCL has been developed under Linux; version 0.5.1 is tested to compile\nwith the GNU C++ compiler 2.95.3 under SuSE 7.3. It should - however -\ncompile under any Unix system with minor modifications (see the Makefile\nfor details).\n\nThe current version of QCL (sources and i386 Linux binaries) is available from\nmy homepage:\n\n- http://tph.tuwien.ac.at/~oemer/qcl/\n\n\nDocumentation:\n--------------\n\nThe reference documentation for QCL is my master thesis in technical\nphysics \"A Procedural Formalism for Quantum Computing\". It gives a\ncomplete reference to QCL with many examples and also features a brief\nintroduction into Quantum Computing. Some knowledge about Quantum\nPhysics and familiarity with the braket-formalism is required. \n\nA more basic introduction esp. for computing scientists to quantum\ncomputing, quantum algorithms and QCL is included in my CS master thesis\n\"Quantum Programming in QCL\" which also features an introductory chapter\nto quantum physics in general.\n\nBoth documents are available online in Postscript or HTML format:\n\n- http://tph.tuwien.ac.at/~oemer/qcl.html#doc\n\n\nInstallation:\n-------------\n\nBesides the usual C++ development tools, you will need to have flex,\nbison and (optionally) GNU readline installed on your system.\n\nUntar the source package, then cd to the QCL directory, edit the Makefile\nfor your needs and type\n\n```\n  make\n  make install\n```\n\nThis will, by default, install the binary qcl to /usr/local/bin and the QCL\ninclude files to /usr/local/lib/qcl.\n\nFor plotting support, libplotter (the C++ bindings of of GNU libplot) is\nrequired. GNU libplot is part of the the GNU plotutils; see\n\n- http://www.gnu.org/software/plotutils/\n\nSince version 0.4.3, QCL also includes support for the TeXmacs mathematical\ntext editor. Recent TeXmacs distributions (1.0.0.6 or newer) already provide\nthe necessary interfaces, so no additional installation is required. You can\nget the latest TeXmacs sources from\n\n- http://www.texmacs.org/\n\n\nCredits:\n--------\n\nAndrey G. Grozin \u003cA.G.Grozin@inp.nsk.su\u003e\n  - initial TeXmacs support\n  - color XTerm support\n\nMuhammad Hussain Yusuf \u003cmyusuf@btconnect.com\u003e \n  - maintainer of the debian QCL package\n  - testing of QCL on many hardware plattforms\n\nFeedback:\n---------\n\nIf you encounter any bugs or miss any particular feature or just like\nQCL, please let me know. My email address is\n\n- Bernhard Oemer \u003coemer@tph.tuwien.ac.at\u003e\n\nThe QCL interpreter is Open Source(tm) software, so please feel free to write\nyour own ports and extentions. If you send me patches, I will most probably\ninclude them in future versions of QCL and maintain them to the best of my\nabilities. ;-) Since English isn't my native language, I also appreciate\nany orthographic and grammatical corrections.\n\nBernhard Oemer\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faviggiano%2Fqcl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faviggiano%2Fqcl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faviggiano%2Fqcl/lists"}