{"title":"潘多拉魔盒","authors":"R. Middelkoop, C. Huizing, R. Kuiper, E. Luit","doi":"10.29007/l7kx","DOIUrl":null,"url":null,"abstract":"Irrespective of the many different implementation paradigms, it is important that client level specifications allow to balance freedom from implementation bias and properly restricting the possible implementations to the ones that the client desires. Algebraic specification of the black-box behavior of a system provides just this, if a careful choice of what comprises desired output is made. We propose a new notion, canonicity, to achieve this. We take as client specification an algebraic one, in terms of operators from the client’s problem domain. Such a specification generally has multiple algebras as semantics. Rather than designating a specific one, e.g., the initial one, as implementation, we stay at the level of abstraction of the client specification: input and output are in terms of combinations of operators from the algebra. We use that each algebra determines which combinations of specified operators are equal to others as a first criterion that input/output combinations have to satisfy to qualify as an implementation. Then we argue that for a client only certain combinations of, in a sense, basic operators are acceptable to occur as output. We then investigate a notion of canonicity to make this precise. We thus provide a novel syntax and semantics for client specifications. The semantics matches the client’s view of the implementation as a black box. The paper is structured as follows. We concentrate on looking at algebraic specifications from the perspective of the client and the specifier. In Sect. 2.1, we give a brief overview of firstorder logic, on which algebraic specifications are based. In Sect. 2.2, we discuss and formalize algebraic specifications. We introduce a syntax and semantics of algebraic specifications that regards the implementation as a black box, and that is independent of the implementation language. After this, we briefly consider the step towards OO implementations, in Sect. 3. Sect. 4 contains some thoughts about the consequences of the approach and about future work. We first discuss the meta-level notation that is used.","PeriodicalId":422904,"journal":{"name":"HOWARD-60","volume":"63 4","pages":"258-270"},"PeriodicalIF":0.0000,"publicationDate":"2024-04-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"Pandora's Box\",\"authors\":\"R. Middelkoop, C. Huizing, R. Kuiper, E. Luit\",\"doi\":\"10.29007/l7kx\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Irrespective of the many different implementation paradigms, it is important that client level specifications allow to balance freedom from implementation bias and properly restricting the possible implementations to the ones that the client desires. Algebraic specification of the black-box behavior of a system provides just this, if a careful choice of what comprises desired output is made. We propose a new notion, canonicity, to achieve this. We take as client specification an algebraic one, in terms of operators from the client’s problem domain. Such a specification generally has multiple algebras as semantics. Rather than designating a specific one, e.g., the initial one, as implementation, we stay at the level of abstraction of the client specification: input and output are in terms of combinations of operators from the algebra. We use that each algebra determines which combinations of specified operators are equal to others as a first criterion that input/output combinations have to satisfy to qualify as an implementation. Then we argue that for a client only certain combinations of, in a sense, basic operators are acceptable to occur as output. We then investigate a notion of canonicity to make this precise. We thus provide a novel syntax and semantics for client specifications. The semantics matches the client’s view of the implementation as a black box. The paper is structured as follows. We concentrate on looking at algebraic specifications from the perspective of the client and the specifier. In Sect. 2.1, we give a brief overview of firstorder logic, on which algebraic specifications are based. In Sect. 2.2, we discuss and formalize algebraic specifications. We introduce a syntax and semantics of algebraic specifications that regards the implementation as a black box, and that is independent of the implementation language. After this, we briefly consider the step towards OO implementations, in Sect. 3. Sect. 4 contains some thoughts about the consequences of the approach and about future work. We first discuss the meta-level notation that is used.\",\"PeriodicalId\":422904,\"journal\":{\"name\":\"HOWARD-60\",\"volume\":\"63 4\",\"pages\":\"258-270\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2024-04-22\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"HOWARD-60\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.29007/l7kx\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"HOWARD-60","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.29007/l7kx","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Irrespective of the many different implementation paradigms, it is important that client level specifications allow to balance freedom from implementation bias and properly restricting the possible implementations to the ones that the client desires. Algebraic specification of the black-box behavior of a system provides just this, if a careful choice of what comprises desired output is made. We propose a new notion, canonicity, to achieve this. We take as client specification an algebraic one, in terms of operators from the client’s problem domain. Such a specification generally has multiple algebras as semantics. Rather than designating a specific one, e.g., the initial one, as implementation, we stay at the level of abstraction of the client specification: input and output are in terms of combinations of operators from the algebra. We use that each algebra determines which combinations of specified operators are equal to others as a first criterion that input/output combinations have to satisfy to qualify as an implementation. Then we argue that for a client only certain combinations of, in a sense, basic operators are acceptable to occur as output. We then investigate a notion of canonicity to make this precise. We thus provide a novel syntax and semantics for client specifications. The semantics matches the client’s view of the implementation as a black box. The paper is structured as follows. We concentrate on looking at algebraic specifications from the perspective of the client and the specifier. In Sect. 2.1, we give a brief overview of firstorder logic, on which algebraic specifications are based. In Sect. 2.2, we discuss and formalize algebraic specifications. We introduce a syntax and semantics of algebraic specifications that regards the implementation as a black box, and that is independent of the implementation language. After this, we briefly consider the step towards OO implementations, in Sect. 3. Sect. 4 contains some thoughts about the consequences of the approach and about future work. We first discuss the meta-level notation that is used.