{"title":"Raffinement de classes dans les langages à objets statiquement typés","authors":"Jean Privat, Roland Ducournau","doi":"10.3166/objet.11.1-2.17-32","DOIUrl":null,"url":null,"abstract":"Classes and specialisation bring simultaneously structure and flexibility to object oriented programs. However, many propositions for model extension (aspects, modules, etc.) prove that these qualities are often considered insufficient. This article proposes two binded notions of class refinement and modules, the former improves flexibility whereas the latter improves structure. Modules contain a coherent set of class definitions and can modify classes defined in modules they depend. This proposition focuses on statically typed languages where modules can be separately compiled. It is based on a module metamodel analogue to the class one and problems with multiple specialisation and refinement are managed like those in multiple inheritance.","PeriodicalId":201701,"journal":{"name":"Obj. Logiciel Base données Réseaux","volume":"9 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2005-06-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Obj. Logiciel Base données Réseaux","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.3166/objet.11.1-2.17-32","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 5
Abstract
Classes and specialisation bring simultaneously structure and flexibility to object oriented programs. However, many propositions for model extension (aspects, modules, etc.) prove that these qualities are often considered insufficient. This article proposes two binded notions of class refinement and modules, the former improves flexibility whereas the latter improves structure. Modules contain a coherent set of class definitions and can modify classes defined in modules they depend. This proposition focuses on statically typed languages where modules can be separately compiled. It is based on a module metamodel analogue to the class one and problems with multiple specialisation and refinement are managed like those in multiple inheritance.