1. Typestate-oriented programming;Aldrich,2009
2. Adding trace matching with free variables to AspectJ;Allan,2005
3. Verifying correct usage of atomic blocks and typestate;Beckman,2008
4. Modular typestate checking of aliased objects;Bierhoff,2007
5. Practical API protocol checking with access permissions;Bierhoff,2009