Luca Negrini
Luca Negrini
### Memory model To add support for pointers, we first have to reshape the memory model. Instead of having only the heap, the memory is now partitioned in heap and...
**Description** Depending on the language, the scoping mechanism when a call is encountered might be different. The `LanguageFeatures` class should contain a `ScopingStrategy` that allows to customize how the analysis...
**Description** Sometimes, to explicitly invoke a method from a superclass (e.g., `super.foo()`), the receiver of the call can be set to `(Superclass) this`, that is, the current object casted to...
**Description** As an extension and finalization of #120, we should: - swap the evaluation of sub-expressions with the outer-most one in `NaryExpression` and `NaryStatement` - provide a proper backward `interproceduralAnalysis`...
**Description** There should be an out-of-the-box support for variadic functions. This can likely be implemented as an additional flag in the `Parameter` class, and having matching/assigning strategy take care of...
**Description** Having type inference rules directly on symbolic operators makes it difficult to track what logic is being applied and requires redefinition of the operator to customize typing rules depending...
**Description** Dynamic languages can modify the program structure at runtime, adding or removing fields or changing function definitions. LiSA should support this.
**Description** The analysis now follows a fixed 3-step workflow: `syntactic checks -> program fixpoint -> semantic checks`. We should allow custom workflows to enable scenarios like `program fixpoint -> simplify...
**Description** Modularize how the execution state of an `InferenceSystem` is transferred on return statements.
**Description** Implement [SARL](https://link.springer.com/chapter/10.1007/978-3-030-63618-0_1) for annotation generation, and the library modeling language from PyLiSA ([lexer](https://github.com/UniVE-SSV/pylisa/blob/25d102d14e9009c54e1cc8becc1aa3a99bf2e8e5/pylisa/src/main/antlr/LibraryDefinitionLexer.g4), [parser](https://github.com/UniVE-SSV/pylisa/blob/25d102d14e9009c54e1cc8becc1aa3a99bf2e8e5/pylisa/src/main/antlr/LibraryDefinitionParser.g4)).