递归程序设计

IF 2.1 2区 数学 Q1 MATHEMATICS, APPLIED
E. Dijkstra
{"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":"1 1","pages":""},"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\":\"1 1\",\"pages\":\"\"},\"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}
引用次数: 46

摘要

,因此,可用内存空间的使用相当不经济。此外——这是一个更严重的反对意见——在同一子例程的一个或多个先前激活尚未结束时调用子例程是不可能的,而不会失去稍后正确完成它们的可能性。我们打算描述一个程序结构的原则,使这两种反对意见不再成立。首先,我们寻求一种消除第二个限制的方法,因为这实质上限制了程序的可接受结构;因此叫做“递归编程”。对于子程序的内部工作空间来说,更有效地使用内存是次要的结果,这并非没有意义。该解决方案可以应用于完全一般的条件下,例如,在由ALGOL 60编译器交付的目标程序的结构中。事实上,所提出的方法在目前的普通计算机上往往相当耗时,这可能给未来设计的方向提供了一个提示。递归程序设计
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Recursive Programming
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
Numerische Mathematik 数学-应用数学
CiteScore
4.10
自引率
4.80%
发文量
72
审稿时长
6-12 weeks
期刊介绍: 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
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信