P215 - Software Engineering 2013 Workshopband (inkl. Doktorandensymposium)
Auflistung P215 - Software Engineering 2013 Workshopband (inkl. Doktorandensymposium) nach Autor:in "Barany, Gergö"
1 - 2 von 2
Treffer pro Seite
Sortieroptionen
- KonferenzbeitragCASM: Implementing an Abstract State Machine based Programming Language(Software Engineering 2013 - Workshopband, 2013) Lezuo, Roland; Barany, Gergö; Krall, AndreasIn this paper we present CASM, a general purpose programming language based on abstract state machines (ASMs). We describe the implementation of an interpreter and a compiler for the language. The demand for efficient execution forced us to modify the definition of ASM and we discuss the impact of those changes. A novel feature for ASM based languages is symbolic execution, which we briefly describe. CASM is used for instruction set simulator generation and for semantic description in a compiler verification project. We report on the experience of using the language in those two projects. Finally we position ASM based programming languages as an elegant combination of imperative and functional programming paradigms which may liberate us from the von Neumann style as demanded by John Backus.
- KonferenzbeitragStatic and dynamic method unboxing for python(Software Engineering 2013 - Workshopband, 2013) Barany, GergöThe Python programming language supports object-oriented programming using a simple and elegant model that treats member variables, methods, and various metadata as instances of a single kind of `attribute'. While this allows a simple implementation of an interpreter that supports advanced metaprogramming features, it can inhibit the performance of certain very common special cases. This paper deals with the optimization of code that loads and then calls object methods. We modify Python's compiler to emit special bytecode sequences for load/call pairs on object attributes to avoid unnecessary allocation of method objects. This can result in considerable speedups, but may cause slowdowns at call sites that refer to builtin functions or other special attributes rather than methods. We therefore extend this static compile-time approach by a dynamic runtime quickening scheme that falls back to the generic load/call sequence at such call sites. The experimental evaluation of dynamic unboxing shows speedups of up to 8 % and rare slowdowns caused by as yet unresolved excessive instruction cache misses. A comparison with a common manual optimization of method calls in Python programs shows that our automatic method is not as powerful but more widely applicable.