How to call procedures, or second thoughts on Ackermann's function

  title={How to call procedures, or second thoughts on Ackermann's function},
  author={Brian A. Wichmann},
  journal={Software: Practice and Experience},
  • B. Wichmann
  • Published 1 June 1977
  • Computer Science
  • Software: Practice and Experience
Various problems have been encountered in using Ackermann's function to measure the efficiency of procedure calls in System Implementation Languages. Although measurements have been made of some 60 systems, the ones presented here are included only when comparisons are possible. For conventional machine design, it is possible to draw some conclusions on desirable instruction set features. A surprising result from the analysis is that implementation quality is far more important than the… 
Ackermann's function in Ada
This paper largely summarises the main papers concerned with the use of Ackermann's functio n as a performance measure, but interprets the significance of the results in an Ada context.
Modern Compiler Design
"Modern Compiler Design" makes the topic of compiler design more accessible by focusing on principles and techniques of wide application. By carefully distinguishing between the essential (material
A portable virtual machine for Ada
The design of a virtual machine which is especially suitable as a target machine for compiled Ada programs is described and the main design goals, implementability on mini‐computers and portability, are discussed and the resulting design is described in some detail.
The portable compiling systems of MUSS
Two different abstract models, both suited for multi‐language multi‐machine usage, have been developed and evaluated and the performance of two compilers, each using both models, are presented.
A heap‐based implementation of the programming language Pascal
  • C. Marlin
  • Computer Science
    Softw. Pract. Exp.
  • 1979
The implementation of Pascal known as Pascal ‘P’ was modified so that activation records for blocks (procedures and functions) were no longer allocated on a stack, but were instead allocation on a heap, to assess the efficiency of implementing Pascal procedures and functions in this way.
A practical method for code generation based on exhaustive search
An original method for code generation has been developed in conjunction with the construction of a compiler for the C programming language on the DEC-10 computer, and is table-driven, with most machine-specific information isolated in the tables.
The Impact of Mesa on System Design
The recent experience with Mesa is reported, particularly its use in the development of an operating system, which illustrates techniques for designing interfaces, for using the interface language as a specification language, and for organizing a system to achieve the practical benefits of program modularity without sacrificing strict type-checking.
Final Evaluation of MIPS M/500
This report provides the general and specific results of these analyses, along with the recommendation that the DoD and other government agencies seriously consider this or other RISC architectures as a highly viable and attractive alternative to the more familiar but less efficient CISC architectures.
The far side of recursion
This paper looks at how three lesser known algorithms of recursion can be used in teaching behavioral aspects of recursions: The Josephus Problem, the Hailstone Sequence and Ackermann’s Function.
Ada-Europe guidelines for Ada compiler specification and selection
This report is to list the characteristics of an implementation that should be taken into account in the specification or selection of an Ada compiler.


Ackermann's function: A study in the efficiency of calling procedures
A six line recursive procedure is used to assess the efficiency of the procedure calling mechanism in ALGOL-like languages. The results from some 40 systems varying from ALGOL 68 and PL/I to System
BLISS: a language for systems programming
A language, BLISS, is described. This language is designed so as to be especially suitable for use in writing production software systems for a specific machine (the PDP-10): compilers, operating
Evaluation of instruction set processor architecture by program tracing.
The thesis develops and evaluates methods for evaluation of the architecture of instruction set processors (ISPs) based on analyzing traces of program executions which contain information about every instruction executed.
A pascal compiler for ICL 1900 series computers
The transport of a PASCAL compiler from a CDC 6000 series computer to an ICL 1900 series computer is reported, with some comments on the method used.
Stephens,‘The IMP languageand compiler
  • ComputerJ. 17,
  • 1974
The IMP Language and Compiler
GruneandL. Meertens,‘ALEPH: a languageencouragingprogram hierarchy’,Proc
  • Int. ComputingSymposiumDavos, North-HollandPublishing Co.,Amsterdam,pp.73-79,1974
  • 1974