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

Cairo ASM language and interpreter #2561

Closed
lukaszcz opened this issue Dec 10, 2023 · 0 comments · Fixed by #2572
Closed

Cairo ASM language and interpreter #2561

lukaszcz opened this issue Dec 10, 2023 · 0 comments · Fixed by #2572
Assignees
Labels
Milestone

Comments

@lukaszcz
Copy link
Collaborator

  • Define Haskell data structures representing Cairo Assembly instructions. Cairo ASM instruction format is specified in Section 4 of https://eprint.iacr.org/2021/1063.pdf. Sections 3-8 describe the Cairo architecture and possible representation of common programming constructions. Instead of implementing the Cairo ASM instructions from Section 4 in full generality, we should select a subset of named instructions from Section 5 sufficient for the compilation of JuvixReg.
  • Implement parsing and pretty printing of our restricted Cairo ASM language.
  • Implement Cairo ASM interpreter.
  • Write tests for the interpreter.
@lukaszcz lukaszcz added the cairo label Dec 10, 2023
@lukaszcz lukaszcz added this to the 0.6.0 milestone Dec 10, 2023
@lukaszcz lukaszcz self-assigned this Jan 2, 2024
paulcadman pushed a commit that referenced this issue Jan 12, 2024
* Closes #2561 
* Defines an extended subset of Cairo Assembly, following Section 5 of
[1].
* Adds the commands `juvix dev casm read file.casm` and `juvix dev casm
run file.casm` to print and run `*.casm` files.
* The tests cover CASM semantics. Some are "manual translations" of
corresponding JuvixAsm tests according to the JuvixAsm -> CASM
compilation concept.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant