Skip to main content
Article thumbnail
Location of Repository

Accurate Step Counting

By Catherine Hope and Graham Hutton


Starting with an evaluator for a language, an abstract machine for the same language can be mechanically derived using successive program transformations. This has relevance to studying both the space and time properties of programs because these can be estimated by counting transitions of the abstract machine and measuring the size of the additional data structures needed, such as environments and stacks. In this article we use this process to derive a function that accurately counts the number of steps required to evaluate expressions in a simple language

Year: 2005
OAI identifier:
Provided by: Nottingham ePrints

Suggested articles


  1. (2004). A functional correspondence between call-by-need evaluators and lazy abstract machines. doi
  2. (2003). A functional correspondence between evaluators and abstract machines.
  3. (2000). A Practical Introduction to Data Structures and Algorithm Analysis. Prentice Hall PTR, Upper Saddle River,
  4. (2003). A rational deconstruction of Landin’s SECD machine. doi
  5. (1999). A Tutorial on the Universality and Expressiveness of Fold. doi
  6. (2004). On evaluation contexts, continuations, and the rest of the computation.
  7. (2000). Quickcheck: a lightweight tool for random testing of haskell programs. doi
  8. (1992). Semantics of Programming Languages: Structures and Techniques. Foundations of Computing. doi

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.