Publication | Open Access
JavaCOP
44
Citations
31
References
2010
Year
Program CheckingEngineeringProgram AnalysisVerificationFormal MethodsSoftware EngineeringStatic CheckingComputer ScienceType SystemCompilersType SystemsStatic Program AnalysisSoftware AnalysisFormal VerificationProgramming Languages
Pluggable types enable users to enforce multiple type systems in one programming language. We have developed a suite of tools, called the JavaCOP framework, that allows developers to create pluggable type systems for Java. JavaCOP provides a simple declarative language in which program constraints are defined over a program's abstract syntax tree. The JavaCOP compiler automatically enforces these constraints on programs during compilation. The JavaCOP framework also includes a dataflow analysis API in order to support type systems which depend on flow-sensitive information. Finally, JavaCOP includes a novel test framework which helps users gain confidence in the correctness of their pluggable type systems. We demonstrate the framework by discussing a number of pluggable type systems which have been implemented in JavaCOP in order to detect errors and enforce strong invariants in programs. These type systems range from general-purpose checkers, such as a type system for nonnull references, to domain-specific ones, such as a checker for conformance to a library's usage rules.
| Year | Citations | |
|---|---|---|
Page 1
Page 1