Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QASM -> Yao IR #1

Open
2 of 5 tasks
Roger-luo opened this issue Jun 24, 2019 · 3 comments
Open
2 of 5 tasks

QASM -> Yao IR #1

Roger-luo opened this issue Jun 24, 2019 · 3 comments
Assignees

Comments

@Roger-luo
Copy link
Member

Roger-luo commented Jun 24, 2019

  • QASM AST design
  • move QASM parser from RBNF
  • Yao IR codegen

  • Test IBM openqasm examples
  • Test IBM Q (manually?)
@GiggleLiu
Copy link
Member

GiggleLiu commented Jun 25, 2019

About Yao IR, we should probably first define basic blocks to remove "redundant" information in representation, then any circuit can be flatten to these basic blocks. e.g. we can first flatten a block to basic blocks like

  • RepeatedBlock -> KronBlock
  • KronBlock -> PutBlock

Basic block types should include

  • PutBlock
  • ChainBlock (a function in QASM)
  • Concentrator (a subroutine defined on a subset of a register)
  • all primitive gates
  • ControlBlock

This will make it much easier for compiling, any comments?

@Roger-luo
Copy link
Member Author

yes, that's what I think as well. And I think in most cases we only need PutBlock since Kron can be composition of PutBlock, since QASM is mainly just putting gates at given position, this would be straight forward.

@thautwarm
Copy link
Member

Done except for barrier, reset and measure. Waiting for Liu to provide correspoinding Yao APIs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants