skip to main content
research-article

CASM: optimized compilation of abstract state machines

Published:12 June 2014Publication History
Skip Abstract Section

Abstract

In this paper we present CASM, a language based on Abstract State Machines (ASM), and its optimizing compiler. ASM is a well-defined (formal) method based on algebraic concepts. A distinct feature of ASM is its combination of parallel and sequential execution semantics. This makes it an excellent choice to formally specify and verify micro-architectures. We present a compilation scheme and an implementation of a runtime system supporting efficient execution of ASM.

After introducing novel analysis techniques we present optimizations allowing us to eliminate many costly operations.

Benchmark results show that our baseline compiler is 2-3 magnitudes faster than other ASM implementations. The optimizations further increase the performance of the compiled programs up to 264%. The achieved performance allows our ASM implementation to be used with industry-size applications.

References

  1. K. Agrawal, J. T. Fineman, and J. Sukha. Nested parallelism in transactional memory. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP'08, pages 163--174, New York, NY, USA, 2008. ACM. ISBN 978--1- 59593--795--7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. V. Aho, M. Lam, R. Sethi, and J. Ullman. Compilers: Principles, Techniques, & Tools. Addison-Wesley, 2007. ISBN 978-0321547989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. M. Anlauff. XASM- An Extensible, Component-Based Abstract State Machines Language. In Y. Gurevich, P. Kutter, M. Odersky, and L. Thiele, editors, Abstract State Machines - Theory and Applications, volume 1912 of Lecture Notes in Computer Science, pages 69--90.Springer Berlin Heidelberg, 2000. ISBN 978--3--540--67959--2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. R. Barik and V. Sarkar. Interprocedural load elimination for dynamic optimization of parallel programs. In Parallel Architectures and Compilation Techniques, 2009. PACT'09. 18th International Conference on, pages 41--52. IEEE, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Barnett, W. Grieskamp, L. Nachmanson, W. Schulte, N. Tillmann, and M. Veanes. Towards a tool environment for model-based testing with AsmL. In Formal Approaches to Software Testing, FATES 2003, volume 2931 of LNCS, pages 264--280. Springer, 2003.Google ScholarGoogle Scholar
  6. J. Bergin and S. Greenfield. Teaching parameter passing by example using thunks in C and C++. SIGCSE Bull., 25(1):10--14, Mar. 1993. ISSN 0097--8418. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. E. Börger and J. Schmid. Composition and submachine concepts for sequential ASMs. In Computer Science Logic (Proceedings of CSL 2000), volume 1862 of LNCS, pages 41--60. Springer-Verlag, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. F. Brandner, N. Horspool, and A. Krall. DSP Instruction Set Simulation. In S. S. Bhattacharyya, E. F. Deprettere, R. Leupers, and J. Takala, editors, Handbook of Signal Processing Systems, pages 945--974. Springer New York, 2013. ISBN 978--1--4614--6858--5.Google ScholarGoogle ScholarCross RefCross Ref
  9. G. D. Castillo. The ASM workbench - A tool environment for computer-aided analysis and validation of abstract state machine models. In Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2001, pages 578--581, London, UK, UK, 2001. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. R. Farahbod, V. Gervasi, and U. Glässer. CoreASM: An extensible ASM execution engine. Fundamenta Informaticae, 77:1--33, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. N. G. Fruja and R. F. Stärk. The hidden computation steps of Turbo Abstract State Machines. In Abstract State Machines -- Advances in Theory and Applications, 10th International Workshop, ASM 2003, pages 244--262. Springer-Verlag, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Y. Gurevich. Evolving algebras 1993: Lipari guide, pages 9--36. Oxford University Press, Inc., New York, NY, USA, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Y. Gurevich and N. Tillmann. Partial updates. Theoretical Computer Science, 336(2):311--342, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Y. Gurevich, B. Rossman, andW. Schulte. Semantic essence of AsmL. Theor. Comput. Sci., 343(3):370--412, Oct. 2005. ISSN 0304--3975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. M. R. Guthaus, J. S. Ringenberg, D. Ernst, T. M. Austin, T. Mudge, and R. B. Brown. Mibench: A free, commercially representative embeddedbenchmark suite. In Proceedings of the Workload Characterization, 2001. WWC-4. 2001 IEEE International Workshop,WWC'01, pages 3--14, Washington, DC, USA, 2001. IEEE Computer Society. ISBN 0--7803--7315--4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. J. K. Huggins and W. Shen. The static and dynamic semantics of C, 2000.Google ScholarGoogle Scholar
  17. R. Lezuo. Scalable Translation Validation. PhD thesis, Vienna University of Technology, 2014.Google ScholarGoogle Scholar
  18. R. Lezuo and A. Krall. Using the CASM language for simulator synthesis and model verification. In Proceedings of the 2013 Workshop on Rapid Simulation and Performance Evaluation: Methods and Tools, RAPIDO'13, pages 6:1--6:8, New York, NY, USA, 2013. ACM. ISBN 978--1--4503--1539--5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. R. Lezuo, G. Barany, and A. Krall. CASM: Implementing an Abstract State Machine based Programming Language. In S. Wagner and H. Lichter, editors, Software Engineering 2013 Workshopband, 26. Februar - 1. März 2013 in Aachen, volume 215 of GI Edition - Lecture Notes in Informatics, pages 75--90, February 2013. ISBN 978--3- 88579--609--1. (6. Arbeitstagung Programmiersprachen (ATPS'13)).Google ScholarGoogle Scholar
  20. T. Mens. A state-of-the-art survey on software merging. Software Engineering, IEEE Transactions on, 28(5):449--462, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Praun, F. Schneider, and T. Gross. Load elimination in the presence of side effects, concurrency and precise exceptions. In L. Rauchwerger, editor, Languages and Compilers for Parallel Computing, volume 2958 of Lecture Notes in Computer Science, pages 390--404. Springer Berlin Heidelberg, 2004. ISBN 978--3--540--21199-0.Google ScholarGoogle Scholar
  22. J. Schmid. Introduction to AsmGofer, 2001. URL http://www.tydo.de/AsmGofer.Google ScholarGoogle Scholar
  23. J. Schmid. Compiling abstract state machines to C++. Journal of Universal Computer Science, 7(11):1068--1087, 2001.Google ScholarGoogle Scholar
  24. J. Teich, P. W. Kutter, and R. Weper. Description and simulation of microprocessor instruction sets using ASMs. In Proceedings of the International Workshop on Abstract State Machines, Theory and Applications, ASM'00, pages 266--286, London, UK, 2000. Springer- Verlag. ISBN 3--540--67959--6. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. CASM: optimized compilation of abstract state machines

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!