CoreASM Plug-In Architecture

  • Roozbeh Farahbod
  • Vincenzo Gervasi
  • Uwe Glässer
  • George Ma
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5115)


Abstract State Machines are known for their versatility in modeling of algorithms, architectures, languages, protocols, and virtually all kinds of sequential, parallel, and distributed systems. CoreASM is a novel executable ASM language which emphasizes freedom of experimentation and supports the evolutionary nature of design as a product of creativity. The CoreASM engine, the heart of the CoreASM tool suite, is based on an extensible architecture which supports various extensions through plug-ins. In this paper, we explore the plug-in architecture of the CoreASM engine and demonstrate its potentials by looking into two implemented plug-ins.


Parse Tree Execution Engine Grammar Rule Extension Point Abstract State Machine 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Farahbod, R., Gervasi, V., Glässer, U.: CoreASM: An Extensible ASM Execution Engine. Fundamenta Informaticae, 71–103 (2007)Google Scholar
  2. 2.
    Börger, E., Stärk, R.: Abstract State Machines: A Method for High-Level System Design and Analysis. Springer, Heidelberg (2003)zbMATHGoogle Scholar
  3. 3.
    Fowler, M.: The New Methodology (April 2003),
  4. 4.
    Farahbod, R., Gervasi, V., Glässer, U.: Design and Specification of the CoreASM Execution Engine, Part 1: the Kernel. Technical Report SFU-CMPT-TR-2006-09, Simon Fraser University (May 2006),
  5. 5.
    Farahbod, R., Gervasi, V., Glässer, U.: CoreASM: An extensible ASM execution engine. In: Proc. of the 12th Int’l Workshop on Abstract State Machines (2005)Google Scholar
  6. 6.
    Farahbod, R., Gervasi, V., Glässer, U., Memon, M.: Design exploration and experimental validation of abstract requirements. In: Proceedings of the 12th International Working Conference on Requirements Engineering: Foundation for Software Quality (REFSQ 2006), Luxembourg, Grand-Duchy of Luxembourg, Essener Informatik Beitrage (June 2006)Google Scholar
  7. 7.
    Blass, A., Gurevich, Y.: Abstract State Machines Capture Parallel Algorithms. ACM Transactions on Computation Logic 4(4), 578–651 (2003)CrossRefMathSciNetGoogle Scholar
  8. 8.
    Blass, A., Gurevich, Y.: Background, Reserve, and Gandy Machines. In: Clote, P.G., Schwichtenberg, H. (eds.) CSL 2000. LNCS, vol. 1862, pp. 1–17. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  9. 9.
    Stärk, R., Schmid, J., Börger, E.: Java and the Java Virtual Machine: Definition, Verification, Validation. Springer, Heidelberg (2001)zbMATHGoogle Scholar
  10. 10.
    Börger, E., Fruja, N.G., Gervasi, V., Stärk, R.F.: A High-level Modular Definition of the Semantics of C#. Theoretical Computer Science 336(2/3), 235–284 (2005)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Birsan, D.: On Plug-ins and Extensible Architectures. ACM Queue 3(2), 40–46 (2005)CrossRefGoogle Scholar
  12. 12.
    Mayer, J., Melzer, I., Schweiggert, F.: Lightweight plug-in-based application development. In: Aksit, M., Mezini, M., Unland, R. (eds.) NODe 2002. LNCS, vol. 2591, pp. 87–102. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  13. 13.
    Marquardt, K.: Patterns for plug-ins. In: Proceedings of the Fourth European Conference on Pattern Languages of Programming and Computing, EuroPLoP 1999 (1999)Google Scholar
  14. 14.
    Völter, M.: Pluggable Components — A Pattern for Interactive System Configuration. In: Proceedings of the Fourth European Conference on Pattern Languages of Programming and Computing (EuroPLoP 1999) (1999)Google Scholar
  15. 15.
    Chatley, R., Eisenbach, S., Magee, J.: Modelling a Framework for Plugins. In: Proceedings of Specification and verification of component-based systems (September 2003)Google Scholar
  16. 16.
    Memon, M.A.: Specification language design concepts: Aggregation and extensibility in coreasm. Master’s thesis, Simon Fraser University, Burnaby, Canada (April 2006)Google Scholar
  17. 17.
    Gamma, E., et al.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)Google Scholar
  18. 18.
    Standish, T.A.: Extensibility in programming language design. SIGPLAN Not. 10(7), 18–21 (1975)CrossRefGoogle Scholar
  19. 19.
    Formal Methods laboratory of University of Milan: Asmeta (2006), (Last visited June 2008)
  20. 20.
    Anlauff, M.: XASM – An Extensible, Component-Based Abstract State Machines Language. In: Gurevich, Y., Kutter, P., Odersky, M., Thiele, L. (eds.) ASM 2000. LNCS, vol. 1912, pp. 69–90. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  21. 21.
    Microsoft FSE Group: The Abstract State Machine Language (2003), (Last visited June 2008)
  22. 22.
    Schmidt, D.C.: Model-Driven Engineering. IEEE Computer 39 (February 2006)Google Scholar
  23. 23.
    Microsoft Corp.: Microsoft .NET Framework (Last visited December 2006),
  24. 24.
    Farahbod, R., Gervasi, V.: JASMine: Accessing Java Code from CoreASM. In: Abrial, J.-R., Glässer, U. (eds.) Börger Festschrift. LNCS, vol. 5115, pp. 170–186. Springer, Heidelberg (2009)Google Scholar
  25. 25.
    Batory, D., Sarvela, J., Rauschmayer, A.: Scaling stepwise refinement (2003)Google Scholar
  26. 26.
    Apel, S., Lengauer, C., Batory, D., Möller, B., Kästner, C.: An algebra for feature-oriented software development. Number MIP-0706. University of Passau (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Roozbeh Farahbod
    • 1
  • Vincenzo Gervasi
    • 2
  • Uwe Glässer
    • 1
  • George Ma
    • 1
  1. 1.Computing ScienceSimon Fraser UniversityBurnabyCanada
  2. 2.Dipartimento di InformaticaUniversità di PisaItaly

Personalised recommendations