{"title":"数据抽象工具的一些理想属性","authors":"J. Horning","doi":"10.1145/800237.807119","DOIUrl":null,"url":null,"abstract":"It is currently popular to say that programming languages need “data abstraction facilities,” and to assert that the provision of such facilities would provide conceptual and practical advantages in the domain of data structures akin to the advantages provided by procedures in the domain of computational structures. This note explores some of the implications of this metaphor, without attempting to make it precise. I shall use the term <underline>capsule</underline> to refer to the data analog of <underline>procedure</underline>. [Those who are familiar with the SIMULA <underline>class</underline>, the CLU <underline>cluster</underline>, or the ALPHARD <underline>form</underline>, may use any of these as an approximation to <underline>capsule</underline>; I use a neutral term to avoid implying the details of any particular language.]\n First, what are the advantages provided by procedures (subroutines, functions, macros)? I can think of at least eight (highly interrelated) categories: 1) avoidance of repetition, 2) modular program structure, 3) a basis for structured programming, 4) conceptual units for understanding and reasoning about programs, 5) clearly defined interfaces that may be precisely specified, 6) units of maintenance and improvement, 7) a language extension mechanism, and 8) units for separate compilation. Let us consider each of these in turn.","PeriodicalId":407603,"journal":{"name":"Conference on Data: Abstraction, Definition and Structure","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1976-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"17","resultStr":"{\"title\":\"Some desirable properties of data abstraction facilities\",\"authors\":\"J. Horning\",\"doi\":\"10.1145/800237.807119\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"It is currently popular to say that programming languages need “data abstraction facilities,” and to assert that the provision of such facilities would provide conceptual and practical advantages in the domain of data structures akin to the advantages provided by procedures in the domain of computational structures. This note explores some of the implications of this metaphor, without attempting to make it precise. I shall use the term <underline>capsule</underline> to refer to the data analog of <underline>procedure</underline>. [Those who are familiar with the SIMULA <underline>class</underline>, the CLU <underline>cluster</underline>, or the ALPHARD <underline>form</underline>, may use any of these as an approximation to <underline>capsule</underline>; I use a neutral term to avoid implying the details of any particular language.]\\n First, what are the advantages provided by procedures (subroutines, functions, macros)? I can think of at least eight (highly interrelated) categories: 1) avoidance of repetition, 2) modular program structure, 3) a basis for structured programming, 4) conceptual units for understanding and reasoning about programs, 5) clearly defined interfaces that may be precisely specified, 6) units of maintenance and improvement, 7) a language extension mechanism, and 8) units for separate compilation. Let us consider each of these in turn.\",\"PeriodicalId\":407603,\"journal\":{\"name\":\"Conference on Data: Abstraction, Definition and Structure\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1976-03-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"17\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Conference on Data: Abstraction, Definition and Structure\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/800237.807119\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Conference on Data: Abstraction, Definition and Structure","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/800237.807119","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Some desirable properties of data abstraction facilities
It is currently popular to say that programming languages need “data abstraction facilities,” and to assert that the provision of such facilities would provide conceptual and practical advantages in the domain of data structures akin to the advantages provided by procedures in the domain of computational structures. This note explores some of the implications of this metaphor, without attempting to make it precise. I shall use the term capsule to refer to the data analog of procedure. [Those who are familiar with the SIMULA class, the CLU cluster, or the ALPHARD form, may use any of these as an approximation to capsule; I use a neutral term to avoid implying the details of any particular language.]
First, what are the advantages provided by procedures (subroutines, functions, macros)? I can think of at least eight (highly interrelated) categories: 1) avoidance of repetition, 2) modular program structure, 3) a basis for structured programming, 4) conceptual units for understanding and reasoning about programs, 5) clearly defined interfaces that may be precisely specified, 6) units of maintenance and improvement, 7) a language extension mechanism, and 8) units for separate compilation. Let us consider each of these in turn.