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

Milestones for minimal complete DSL #1

Open
25 of 30 tasks
zanellia opened this issue Oct 23, 2018 · 0 comments
Open
25 of 30 tasks

Milestones for minimal complete DSL #1

zanellia opened this issue Oct 23, 2018 · 0 comments

Comments

@zanellia
Copy link
Owner

zanellia commented Oct 23, 2018

High-priority

  • Support for basic types: int, double, pmat and pvec
    • declaration of variables of supported types
    • specification of function arguments of supported types
    • simple operations ('+', '-', '*', '/') on int and double types
  • Support for high-level basic linear algebra operations on pmat variables
    • C = A + B
    • C = A - B
    • C = A * B
    • C = A\B
  • Support for subscripting of pmat variables
    • get value (val = A[i,j])
    • set value (A[i,j] = val)
  • Support for functions calls
  • Support for structures
    • structure declaration
    • structure access
  • Support of arrays of all supported types
    • array of pmat declaration through Python Lists
    • array of other supported types declaration through Python Lists
    • array of structures declaration through Python Lists
    • accessing and setting arrays of pmats
  • Support for function definitions (no mem escape)
  • Extend AST parser to keep track of heap usage
  • AST-based verification of user code
  • Unit testing

Low-priority/long-term

  • Support for simple classes
  • Support for CasADi functions

Improvements

  • Remove dims from type hints in declarations (keep only in function signature)
  • Add linear algebra routines with explicit return
  • Add support for slicing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant