Abstract
In ALGOL-like programming languages with procedures there are several properties of programs concerning procedures that may be used to improve resp. optimise the performance of the runtime system. In these considerations problems very soon arise, because in general one has to discuss programs with an arbitrary nesting of procedure declarations. This paper shows that an arbitrary ALGOL 60-program can be transformed into an ALGOL 60-program which has a maximal procedure nesting 2, and both programs define the same input-output function. In order to prove this property a new notion for equivalence of ALGOL-like programs with procedures is introduced.
Zusammenfassung
In ALGOL-ähnlichen Programmiersprachen mit Prozeduren gibt es im Zusammenhang mit diesen Prozeduren eine Reihe von Programmeigenschaften, die zu einer Verbesserung des Laufzeitsystems benutzt werden können. Bei solchen Überlegungen treten jedoch häufig Probleme auf, da man Programme mit beliebigen Prozedurschachtelungen betrachten muß. Es wird nun gezeigt, daß sich beliebige ALGOL-60-Programme in funktional äquivalente Programme mit einer maximalen Prozedurschachtelungstiefe 2 transformieren lassen. Als Hilfsmittel wird hierzu ein neuer Äquivalenzbegriff für ALGOL-ähnliche Programme mit Prozeduren eingeführt.
Access this article
We’re sorry, something doesn't seem to be working properly.
Please try refreshing the page. If that doesn't work, please contact support so we can address the problem.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Literatur
Langmaack, H.: On correct procedure parameter transmission in higher programming languages. Acta Informatica2, 110–142 (1973).
Langmaack, H.: On procedures as open subroutines I. Acta Informatica2, 311–333 (1973).
Langmaack, H.: On procedures as open subroutines II. Acta Informatica3, 227–241 (1974).
Simon, F.: Zur Charakterisierung von LISP als ALGOL-ähnliche Programmiersprache mit einem strikt nach dem Kellerprinzip arbeitenden Laufzeitsystem. Dissertation, Christian-Albrechts-Universität Kiel, 1978.
Simon, F.: Cons-freies Programmieren in LISP unter deletion-Strategie, in: Informatik-Fachberichte 1 (Schneider, H. J., Nagl, M., Hrsg.), S. 111–123. Berlin-Heidelberg-New York: Springer 1976.
Simon, F., Trademann, P.: Eine Beziehung zwischen cons-freiem LISP und Stackautomaten. Elektronische Informationsverarbeitung und Kybernetik EIK 14 (1978).
Kaufholz, G., Lippe, W. M.: A note on a paper of H. Langmaack about correct procedure parameter transmission. Bericht Nr. A 74/06 des Fachbereichs Angewandte Mathematik und Informatik der Universität des Saarlandes, Saarbrücken, 1974.
Lippe, W. M.: Zur Entscheidbarkeit von Programmeigenschaften durch Programmtransformationen. Bericht Nr. 7607, Institut für Informatik und Praktische Mathematik der Christian-Albrechts-Universität Kiel, 1976.
Lippe, W. M.: Über die Entscheidbarkeit der formalen Erreichbarkeit von Prozeduren bei monadischen Programmen, in: Informatik-Fachberichte 1 (Schneider, H. J., Hrsg.), S. 124–134. Berlin-Heidelberg-New York: Springer 1976.
Lippe, W. M., Simon, F.: Untersuchungen zur Beziehung zwischen ALGOL 60 und ALGOL 60-P-G. Bericht Nr. 7707, Institut für Informatik und Praktische Mathematik der Christian-Albrechts-Universität Kiel, 1977.
Damm, W., Fehr, E., Indermark, K.: Higher type recursion and self-application as control structures. Proc. of the IFIP Working Conference on Formal Description of Programming Concepts (1977).
Greibach, S.: Theory of program structures: schemes, semantics and verification. (Lecture Notes in Computer Science, Vol. 36.) Berlin-Heidelberg-New York: Springer 1976.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Lippe, W.M., Simon, F. Zur Elimination von Prozedurschachtelungen. Computing 23, 119–138 (1979). https://doi.org/10.1007/BF02252093
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF02252093