lisa
lisa copied to clipboard
📚 a modular easy to use Library for Static Analysis aiming at multi-language analysis
**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)).
**Description** LiSA should implement the chaotic iteration strategies (that relies on the computation of the widening points of a CFG) as described [here](https://link.springer.com/chapter/10.1007/BFb0039704).
**Description** Most programming languages have constructs to define code blocks to catch and handle runtime errors. There is currently no way to define these in cfgs.
**Description** The abstract state should have capabilities to express error tokens/exceptions. An example for this is when the type analysis discovers that there is a possible cast error: fixpoint algorithms...
**Description** A statement could terminate execution immediately (i.e. Java's `System.exit(exitCode)`). We should add a way to support this in the fixpoint iteration.
**Description** LiSA should provide native support for generic types, such as `List`.
**Description** At some point we should move to java 17, with records and pattern matching. We should also modularize the project.
**Description** `LiSAFactory.configurableComponents()` can return a list of concrete implementation of the analysis components that can be configured. This, as well as information about options inside `LiSAConfiguration`, should end up in...
**Description** Option for generating mockups of each compilation unit that can redefine all methods returning top to simulate external instances (i.e. application behaves as a library that can be extended)....