Milestones for minimal complete DSL
zanellia opened this issue · 0 comments
zanellia commented
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