{"title":"协议扩展:构建大型可扩展软件系统的一种技术","authors":"M. Franz","doi":"10.3929/ethz-a-006650217","DOIUrl":null,"url":null,"abstract":"A technique is described by which dynamically_loadable modules may add methods to existing classes at run_time. This leads to increased flexibility for structuring large extensible software_systems. Through the use of a doubly_indirect dispatch scheme, efficient method activation can be provided without the need to enumerate the set of methods applicable to a particular class at compile time. As a consequence, separately_compiled client modules are not invalidated when methods are added to an imported class. This reduces the number of recompilations and increases development efficiency. The new mechanism has been incorporated into a variant of the Oberon System. The paper proposes a set of syntactic extensions to the Oberon language and discusses implementation options.","PeriodicalId":167132,"journal":{"name":"Softw. Concepts Tools","volume":"64 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1900-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":"{\"title\":\"Protocol Extension: A Technique for Structuring Large Extensible Software-Systems\",\"authors\":\"M. Franz\",\"doi\":\"10.3929/ethz-a-006650217\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"A technique is described by which dynamically_loadable modules may add methods to existing classes at run_time. This leads to increased flexibility for structuring large extensible software_systems. Through the use of a doubly_indirect dispatch scheme, efficient method activation can be provided without the need to enumerate the set of methods applicable to a particular class at compile time. As a consequence, separately_compiled client modules are not invalidated when methods are added to an imported class. This reduces the number of recompilations and increases development efficiency. The new mechanism has been incorporated into a variant of the Oberon System. The paper proposes a set of syntactic extensions to the Oberon language and discusses implementation options.\",\"PeriodicalId\":167132,\"journal\":{\"name\":\"Softw. Concepts Tools\",\"volume\":\"64 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1900-01-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"5\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Softw. Concepts Tools\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.3929/ethz-a-006650217\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Softw. Concepts Tools","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.3929/ethz-a-006650217","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Protocol Extension: A Technique for Structuring Large Extensible Software-Systems
A technique is described by which dynamically_loadable modules may add methods to existing classes at run_time. This leads to increased flexibility for structuring large extensible software_systems. Through the use of a doubly_indirect dispatch scheme, efficient method activation can be provided without the need to enumerate the set of methods applicable to a particular class at compile time. As a consequence, separately_compiled client modules are not invalidated when methods are added to an imported class. This reduces the number of recompilations and increases development efficiency. The new mechanism has been incorporated into a variant of the Oberon System. The paper proposes a set of syntactic extensions to the Oberon language and discusses implementation options.