Type Compatibility for Extensible Module Types, Their Reference Parameters, and Their Pointer Types

dc.creatorWinkler,Jürgen F. H.
dc.date1997
dc.date.accessioned2024-02-06T12:48:43Z
dc.date.available2024-02-06T12:48:43Z
dc.descriptionObjects in object-oriented languages have often been treated as a special kind of entity different from other variables or constants. Similarly, their types, which are typically called classes, have often been treated differently from other types. This complicates the understanding of these concepts. The present paper proposes to see the classes as module types leading to a very natural integration of objects and classes into the framework of contemporary programming languages. The main part of the paper contains typing rules for module types for assignment and for value and variable parameters. It is shown that the rules for reference parameters in some existing languages lead to unexpected results and sometimes to undefined behavior. Furthermore, assignment involving dereferenced pointers to modules is studied for the first time in detail. The paper shows that the type compatibility rule for pointer assignment is not sufficient for deref assignment. The last part of the paper contains a comparison of the language definitions and of compilers for Borland Pascal with Objects, C++, Oberon, and Object CHILL.
dc.formattext/html
dc.identifierhttps://doi.org/10.3217/jucs-003-02-0120
dc.identifierhttps://lib.jucs.org/article/27333/
dc.identifier.urihttps://openrepository.mephi.ru/handle/123456789/7114
dc.languageen
dc.publisherJournal of Universal Computer Science
dc.relationinfo:eu-repo/semantics/altIdentifier/eissn/0948-6968
dc.relationinfo:eu-repo/semantics/altIdentifier/pissn/0948-695X
dc.rightsinfo:eu-repo/semantics/openAccess
dc.rightsJ.UCS License
dc.sourceJUCS - Journal of Universal Computer Science 3(2): 120-146
dc.subjectObject-Oriented languages
dc.subjectextensible module types
dc.subjectparameters and parameter passing
dc.subjectderef assignment
dc.subjectBorland Pascal with Objects
dc.subjectC++
dc.subjectOberon
dc.subjectObject CHILL
dc.titleType Compatibility for Extensible Module Types, Their Reference Parameters, and Their Pointer Types
dc.typeResearch Article
Файлы
Коллекции