Some news on pdb.values and a description [message #480605] |
Mon, 17 August 2009 16:12 |
Eclipse User |
|
|
|
Dear all,
This is to let you know that we have started to use the pdb.values
plugin quite extensively and it seems to be rather stable and well
tested now. It was designed to allow different fact producers and fact
consumers to cooperate and to provide a shared run-time environment for
fact analysis.
Pdb.values is a part of the IMP analysis feature providing:
* A generic API for representing, computing with and (de)serializing
facts about source code
* Arbitrarily nestable symbolic representations based on the concept
of n-ary relations, sets, and algebraic data-types.
* A type system that enforces and uses immutability to prevent
programming errors while leaving a lot of room for generic algorithms
and reuse.
* Currently three implementations of the API (which is designed
using the AbstractFactory design pattern):
- a reference implementation
- a "shared" implementation, which implements maximal sharing to
safe memory
- a "fast" implementation, which is treally fast without using
too much memory
* A fast streamable binary serialization format
* alpha quality (!) bridges to (de)serialize ATerms and XML
Apart from the ATerm and XML connectivity the API is well tested. We
use it as a run-time for the Rascal DSL for source code analysis and
transformation, which is currently under development.
The future for pdb.values:
- more usage/testing as the run-time for Rascal
- some more API for querying relations (probably)
- better integration with IMP via the PDB analysis factory
(scheduling analyses and retrieving analysis results for use in
language specific IDE tools)
- better integration with Eclipse's visualizaton capabilities to
support browsing of complex fact extraction and analysis results. This
is mainly to support debugging IDE features. See the imp.pdb.ui project.
- more implementations of the API that specialize in specific use
cases, and API adapters to existing sources of information such as the
JDT.
Cheers,
Jurgen Vinju (designer and reference implementation)
Arnold Lankamp (shared and fast implementations)
Bob Fuhrer (designer)
|
|
|
Powered by
FUDForum. Page generated in 0.10110 seconds