Accidental mutation is a major source of difficult-to-detect errors in object-oriented programs. We have built tools that detect and prevent such errors. The tools include a javac plug-in that enforces the Javari type system, and a type inference tool. The system is fully compatible with existing Java programs. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features—data types; F.3.1 [Logics and Meaning of Programs]: Specifying and
Telmo Luis Correa Jr., Jaime Quinonez, Michael D.