Skip to main content

An Imperative Extension to Alloy

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5977))

Abstract

We extend the Alloy language with the standard imperative constructs; we show the mix of declarative and imperative constructs to be useful in modeling dynamic systems. We present a translation from our extended language to the existing first-order logic of the Alloy Analyzer, allowing for efficient analysis of models.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Jackson, D.: Software Abstractions: logic, language, and analysis. The MIT Press, Cambridge (2006)

    Google Scholar 

  2. Spivey, J.: The Z notation: a reference manual (1992)

    Google Scholar 

  3. Jones, C.: Systematic software development using VDM. Prentice Hall, New York (1990)

    MATH  Google Scholar 

  4. Frias, M., Galeotti, J., Pombo, C., Aguirre, N.: DynAlloy: upgrading alloy with actions. In: Proceedings of 27th International Conference on Software Engineering, 2005. ICSE 2005, pp. 442–450 (2005)

    Google Scholar 

  5. Frias, M., Pombo, C., Galeotti, J., Aguirre, N.: Efficient Analysis of DynAlloy Specifications (2007)

    Google Scholar 

  6. Morgan, C.: Programming from specifications (1990)

    Google Scholar 

  7. Andoni, A., Daniliuc, D., Khurshid, S., Marinov, D.: Evaluating the small scope hypothesis. In: Popl 2002: Proceedings of The 29th ACM Symposium on The Principles of Programming Languages (2002)

    Google Scholar 

  8. Jackson, D., Wing, J.: Lightweight formal methods. In: Saiedian, H. (ed.) Roundtable contribution to: An invitation to formal methods, vol. 29, pp. 16–30. IEEE Computer, Los Alamitos (1996)

    Google Scholar 

  9. Kang, E., Jackson, D.: Formal modeling and analysis of a flash filesystem in Alloy. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.) ABZ 2008. LNCS, vol. 5238, pp. 294–308. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  10. Nelson, G.: A generalization of Dijkstra’s calculus. ACM Transactions on Programming Languages and Systems (TOPLAS) 11(4), 517–561 (1989)

    Article  Google Scholar 

  11. Dijkstra, E.: A discipline of programming. Prentice Hall PTR, Upper Saddle River (1997)

    Google Scholar 

  12. Pierce, B.: Types and programming languages. The MIT Press, Cambridge (2002)

    Google Scholar 

  13. Kuncak, V., Jackson, D.: Relational analysis of algebraic datatypes. ACM SIGSOFT Software Engineering Notes 30(5), 216 (2005)

    Article  Google Scholar 

  14. Morgan, C.: The specification statement. ACM Transactions on Programming Languages and Systems (TOPLAS) 10(3), 403–419 (1988)

    Article  MATH  Google Scholar 

  15. Lampson, B.: 6.826 class notes (2009), http://web.mit.edu/6.826/www/notes/

  16. Abrial, J.: The B-book: assigning programs to meanings. Cambridge Univ. Pr., Cambridge (1996)

    MATH  Google Scholar 

  17. Börger, E., Stärk, R.: Abstract state machines: a method for high-level system design and analysis. Springer, Heidelberg (2003)

    MATH  Google Scholar 

  18. Krishnamurthi, S., Fisler, K., Dougherty, D., Yoo, D.: Alchemy: transmuting base alloy specifications into implementations. In: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering, pp. 158–169. ACM, New York (2008)

    Chapter  Google Scholar 

  19. Giannakopoulos, T., Dougherty, D., Fisler, K., Krishnamurthi, S.: Towards an Operational Semantics for Alloy. In: Proceedings of the 16th International Symposium on Formal Methods (2009) (to appear)

    Google Scholar 

  20. Beyer, D.: Relational programming with CrocoPat. In: Proceedings of the 28th International Conference on Software engineering, pp. 807–810. ACM, New York (2006)

    Google Scholar 

  21. Behnke, R., Berghammer, R., Meyer, E., Schneider, P.: RELVIEW-A system for calculating with relations and relational programming. In: Astesiano, E. (ed.) FASE 1998. LNCS, vol. 1382, pp. 318–321. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Near, J.P., Jackson, D. (2010). An Imperative Extension to Alloy. In: Frappier, M., Glässer, U., Khurshid, S., Laleau, R., Reeves, S. (eds) Abstract State Machines, Alloy, B and Z. ABZ 2010. Lecture Notes in Computer Science, vol 5977. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11811-1_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-11811-1_10

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-11810-4

  • Online ISBN: 978-3-642-11811-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics