{"title":"递归程序设计","authors":"E. Dijkstra","doi":"10.1145/3544585.3544601","DOIUrl":null,"url":null,"abstract":"ously, and the available memory space is therefore used rather uneconomically. Furthermore—and this is a more serious objection—it is then impossible to call in a subroutine while one or more previous activations of the same subroutine have not yet come to an end, without losing the possibility of finishing them off properly later on. We intend to describe the principles of a program structure for which these two objections no longer hold. In the first place we sought a means of removing the second restriction, for this essentially restricts the admissable structure of the program; hence the name “Recursive Programming”. More efficient use of the memory as regards the internal working spaces of subroutines is a secondary con sequence not without significance. The solution can be applied under perfectly general conditions, e.g. in the structure of an object program to be delivered by an ALGOL 60 compiler. The fact that the proposed methods tend to be rather time consuming on an average present day computer, may give a hint in which direction future design might go. Recursive Programming","PeriodicalId":49733,"journal":{"name":"Numerische Mathematik","volume":null,"pages":null},"PeriodicalIF":2.1000,"publicationDate":"2022-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"46","resultStr":"{\"title\":\"Recursive Programming\",\"authors\":\"E. Dijkstra\",\"doi\":\"10.1145/3544585.3544601\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"ously, and the available memory space is therefore used rather uneconomically. Furthermore—and this is a more serious objection—it is then impossible to call in a subroutine while one or more previous activations of the same subroutine have not yet come to an end, without losing the possibility of finishing them off properly later on. We intend to describe the principles of a program structure for which these two objections no longer hold. In the first place we sought a means of removing the second restriction, for this essentially restricts the admissable structure of the program; hence the name “Recursive Programming”. More efficient use of the memory as regards the internal working spaces of subroutines is a secondary con sequence not without significance. The solution can be applied under perfectly general conditions, e.g. in the structure of an object program to be delivered by an ALGOL 60 compiler. The fact that the proposed methods tend to be rather time consuming on an average present day computer, may give a hint in which direction future design might go. Recursive Programming\",\"PeriodicalId\":49733,\"journal\":{\"name\":\"Numerische Mathematik\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":2.1000,\"publicationDate\":\"2022-07-12\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"46\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Numerische Mathematik\",\"FirstCategoryId\":\"100\",\"ListUrlMain\":\"https://doi.org/10.1145/3544585.3544601\",\"RegionNum\":2,\"RegionCategory\":\"数学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q1\",\"JCRName\":\"MATHEMATICS, APPLIED\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Numerische Mathematik","FirstCategoryId":"100","ListUrlMain":"https://doi.org/10.1145/3544585.3544601","RegionNum":2,"RegionCategory":"数学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"MATHEMATICS, APPLIED","Score":null,"Total":0}
ously, and the available memory space is therefore used rather uneconomically. Furthermore—and this is a more serious objection—it is then impossible to call in a subroutine while one or more previous activations of the same subroutine have not yet come to an end, without losing the possibility of finishing them off properly later on. We intend to describe the principles of a program structure for which these two objections no longer hold. In the first place we sought a means of removing the second restriction, for this essentially restricts the admissable structure of the program; hence the name “Recursive Programming”. More efficient use of the memory as regards the internal working spaces of subroutines is a secondary con sequence not without significance. The solution can be applied under perfectly general conditions, e.g. in the structure of an object program to be delivered by an ALGOL 60 compiler. The fact that the proposed methods tend to be rather time consuming on an average present day computer, may give a hint in which direction future design might go. Recursive Programming
期刊介绍:
Numerische Mathematik publishes papers of the very highest quality presenting significantly new and important developments in all areas of Numerical Analysis. "Numerical Analysis" is here understood in its most general sense, as that part of Mathematics that covers:
1. The conception and mathematical analysis of efficient numerical schemes actually used on computers (the "core" of Numerical Analysis)
2. Optimization and Control Theory
3. Mathematical Modeling
4. The mathematical aspects of Scientific Computing