Skip to content

C†: intermediate quantum programming language

License

Notifications You must be signed in to change notification settings

Doomsk/c_dagger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

C†

Join the chat at https://gitter.im/c_dagger/help

Intermediate quantum programming language repository. We are under development. Please refer to C†'s page for its (more extensive) documentation.

Up to this date, we have been able to provide the syntax and parsing it for most of what we think is enough for testing purposes.

How to test the parser

We advice you to start a new environment to test the language. It is still in development and may be unstable.

After creating a new env, you need to install regex:

pip install regex

You can open Jupyter Notebook or other IDE of your choice and type the following:

import cdag.cdag.gpp.gpp_yacc as g

code = """factorial: sets [*v1] as v1
                     multiplies [$n]_1...v1 as v2
                     uses [v2]"""
g.parse(code)

You can also run one of the test C† files by typing:

import cdag.cdag.gpp.gpp_yacc as g

g.test(1)  # or g.test(3)

How to get involved

Please contact Doomsk on Twitter. Hopefully there will be much better ways to approach this project soon.

Roadmap

Currently there are some open approaches we are working on:

  • Prototyping prototyping]: first attempt to write the bare minimum information for the language, i.e.: a lexer, parser, syntax tree, interpreter. All in Python and all in English for prototyping purposes.
    • Lexer lexer: writing the first lexer to get an idea how the language should look like.
    • Parser lexer: writing the first parser to understand how the syntax should look like.
    • Interpreter prototyping: writing the first interpreter to understand how the code should interact.
    • Compiler language choice fcomp: choose the programming language in which C† should be seriously developed at first (C, C++, Rust?).
  • First Compiler fcomp: write the memory handling, choose the first bult-in actions to develop.
    • Lexer
    • Parser
    • Compiler
    • Data Analyzer: should it be Julia in the end?
  • First Quantum Hardware Implementation fqhi: attempt to implement some code on C† to deal with pulses and other instructions as read and write from and to quantum processors.
    • Hardware interaction: will it be Intel/ARM/FPGA/other hardware to receive data from C†?
    • Native hardware: which hardware will it be most efficient to be implemented on?
    • Instructions channel: which channel to communicate via local, lan and wan?

About

C†: intermediate quantum programming language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published