2014
LAPD: Language-Agnostic Program Database
Publication
Publication
Meta-programming environments and language workbenches provide support for analysis, creation and usage of a multitude of languages. Internal artifacts of these environments are based on source code information and include items such as parse trees and error messages. If these artifacts or parts of them are to be reused it can prove
useful to store them persistently. By having this information in persistent storage the computational steps in order to produce the information can be omitted, improving performance of retrieving wanted information. Program databases can be used to accomplish the goals of persistent storage but are generally suited for a specific language.
We propose a language-agnostic program database, LAPD, for providing persistent storage support in meta-programming environments. LAPD is based on the type system of the meta-programming environment Rascal, ensuring its language-agnosticism. The graph database Neo4j is used as a backend for an LAPD implementation. We found that LAPD performs well in querying scenarios, but that it suers in large write and read
operations. We conclude that language-agnostic program databases are a viable option in scenarios where persistent storage, but most of all querying of information about projects made in many dierent programming languages is required, where languagespecific databases are not readily available. The LAPD implementation shows that such a language-agnostic program database can be based on and integrated with the type
system of a meta-programming language such as Rascal.
Additional Metadata | |
---|---|
, , | |
T. van der Storm (Tijs) | |
Organisation | Software Analysis and Transformation |
Kwakernaak, W. (2014, January). LAPD: Language-Agnostic Program Database. |