Computer science: a modern introduction: 2nd edition
Computer science: a modern introduction: 2nd edition
The application of program verification techniques to hardware verification
25 years of DAC Papers on Twenty-five years of electronic design automation
Programming pearls: little languages
Communications of the ACM
ACM SIGPLAN Notices
AVal: an Extensible Attribute-Oriented Programming Validator for Java
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
The Definitive ANTLR Reference: Building Domain-Specific Languages
The Definitive ANTLR Reference: Building Domain-Specific Languages
Using annotations to check structural properties of classes
FASE'05 Proceedings of the 8th international conference, held as part of the joint European Conference on Theory and Practice of Software conference on Fundamental Approaches to Software Engineering
Hi-index | 0.00 |
This paper describes AnnaBot, one of the first tools to verify correct use of Annotation-based metadata in the Java programming language. These Annotations are a standard Java 5 mechanism used to attach metadata to types, methods, or fields without using an external configuration file. A binary representation of the Annotation becomes part of the compiled ".class" file, for inspection by another component or library at runtime. Java Annotations were introduced into the Java language in 2004 and have become widely used in recent years due to their introduction in the Java Enterprise Edition 5, the Hibernate object-relational mapping API, the Spring Framework, and elsewhere. Despite that, mainstream development tools have not yet produced a widely-used verification tool to confirm correct configuration and placement of annotations external to the particular runtime component. While most of the examples in this paper use the Java Persistence API, AnnaBot is capable of verifying anyannotation-based API for which "claims"--description of annotation usage--are available. These claims can be written in Java or using a proposed Domain-Specific Language, which has been designed and a parser (but not the code generator) have been written.