Matches in SemOpenAlex for { <https://semopenalex.org/work/W1989013569> ?p ?o ?g. }
- W1989013569 endingPage "48" @default.
- W1989013569 startingPage "1" @default.
- W1989013569 abstract "Object-oriented programming represents an original implementation issue due to its philosophy of making the program behavior depend on the dynamic type of objects. This is expressed by the late binding mechanism, aka message sending . The underlying principle is that the address of the actually called procedure is not statically determined at compile-time, but depends on the dynamic type of a distinguished parameter known as the receiver . A similar issue arises with attributes, because their position in the object layout may also depend on the object's dynamic type. Furthermore, subtyping introduces another original feature (i.e., runtime subtype checks). All three mechanisms need specific implementations and data structures. In static typing, late binding is generally implemented with so-called virtual function tables . These tables reduce method calls to pointers to functions via a small fixed number of extra indirections. It follows that object-oriented programming yields some overhead, as compared to the usual procedural languages. The different techniques and their resulting overhead depend on several parameters. First, inheritance and subtyping may be single or multiple, and even a mixing is possible, as in Java and ˙NET which present single inheritance for classes and multiple subtyping for interfaces. Multiple inheritance is a well-known complication. Second, the production of executable programs may involve various schemes, from global compilation, which implies the closed-world assumption (CWA), as the whole program is known at compile time, to separate compilation and dynamic loading, where each program unit is compiled and loaded independently of any usage, hence under the open-world assumption (OWA). Global compilation is well-known to facilitate optimization. This article reviews the various implementation techniques available in static typing and in the three cases of single inheritance, multiple inheritance, and multiple subtyping. This language-independent survey focuses on separate compilation and dynamic loading, as they represent the most commonly used and the most demanding framework. However, many works have been undertaken in the global compilation framework, mostly for dynamically typed languages, but also applied to the EIFFEL language. Hence, we also examine global techniques and how they can improve implementation efficiency. Finally, mixed frameworks that combine open and closed world assumptions are considered. For instance, just-in-time (JIT) compilers work under provisional CWA, at the expense of possible recompilations. In contrast, we present an experimental compiler-linker, where separate compilation implies the OWA, whereas the whole program is finally linked under the CWA." @default.
- W1989013569 created "2016-06-24" @default.
- W1989013569 creator A5088581585 @default.
- W1989013569 date "2011-04-01" @default.
- W1989013569 modified "2023-09-25" @default.
- W1989013569 title "Implementing statically typed object-oriented programming languages" @default.
- W1989013569 cites W1580085928 @default.
- W1989013569 cites W1774577175 @default.
- W1989013569 cites W1884981359 @default.
- W1989013569 cites W1966217640 @default.
- W1989013569 cites W1967540342 @default.
- W1989013569 cites W1978818681 @default.
- W1989013569 cites W2013106667 @default.
- W1989013569 cites W2017892234 @default.
- W1989013569 cites W2033787981 @default.
- W1989013569 cites W2034993345 @default.
- W1989013569 cites W2043420335 @default.
- W1989013569 cites W2044439539 @default.
- W1989013569 cites W2051049045 @default.
- W1989013569 cites W2053635731 @default.
- W1989013569 cites W2060789440 @default.
- W1989013569 cites W2065592757 @default.
- W1989013569 cites W2084103658 @default.
- W1989013569 cites W2084325555 @default.
- W1989013569 cites W2086957250 @default.
- W1989013569 cites W2095390121 @default.
- W1989013569 cites W2096002409 @default.
- W1989013569 cites W2117426803 @default.
- W1989013569 cites W2122723127 @default.
- W1989013569 cites W2128328132 @default.
- W1989013569 cites W2133546079 @default.
- W1989013569 cites W2136316331 @default.
- W1989013569 cites W2140249393 @default.
- W1989013569 cites W2143588523 @default.
- W1989013569 cites W2319701312 @default.
- W1989013569 cites W239634878 @default.
- W1989013569 cites W2913888506 @default.
- W1989013569 cites W2914015934 @default.
- W1989013569 cites W2999050649 @default.
- W1989013569 cites W3003908847 @default.
- W1989013569 cites W3004826101 @default.
- W1989013569 cites W3005193075 @default.
- W1989013569 cites W3005566493 @default.
- W1989013569 cites W3006398337 @default.
- W1989013569 cites W3010963900 @default.
- W1989013569 cites W3013299301 @default.
- W1989013569 cites W3013656904 @default.
- W1989013569 cites W3014022646 @default.
- W1989013569 cites W3018368990 @default.
- W1989013569 cites W3018965999 @default.
- W1989013569 cites W3049141838 @default.
- W1989013569 cites W3089616457 @default.
- W1989013569 cites W3134923596 @default.
- W1989013569 cites W3142323636 @default.
- W1989013569 cites W3161485880 @default.
- W1989013569 cites W3161523470 @default.
- W1989013569 cites W4206263495 @default.
- W1989013569 cites W4230011822 @default.
- W1989013569 cites W4236525476 @default.
- W1989013569 cites W4238080077 @default.
- W1989013569 cites W4244044692 @default.
- W1989013569 cites W4244142905 @default.
- W1989013569 cites W4250066315 @default.
- W1989013569 cites W4250810222 @default.
- W1989013569 cites W4251476268 @default.
- W1989013569 cites W4253701986 @default.
- W1989013569 cites W4255083153 @default.
- W1989013569 doi "https://doi.org/10.1145/1922649.1922655" @default.
- W1989013569 hasPublicationYear "2011" @default.
- W1989013569 type Work @default.
- W1989013569 sameAs 1989013569 @default.
- W1989013569 citedByCount "16" @default.
- W1989013569 countsByYear W19890135692012 @default.
- W1989013569 countsByYear W19890135692013 @default.
- W1989013569 countsByYear W19890135692015 @default.
- W1989013569 crossrefType "journal-article" @default.
- W1989013569 hasAuthorship W1989013569A5088581585 @default.
- W1989013569 hasBestOaLocation W19890135692 @default.
- W1989013569 hasConcept C104317684 @default.
- W1989013569 hasConcept C154945302 @default.
- W1989013569 hasConcept C160145156 @default.
- W1989013569 hasConcept C169590947 @default.
- W1989013569 hasConcept C185592680 @default.
- W1989013569 hasConcept C199360897 @default.
- W1989013569 hasConcept C200568363 @default.
- W1989013569 hasConcept C200833197 @default.
- W1989013569 hasConcept C2780902518 @default.
- W1989013569 hasConcept C2781238097 @default.
- W1989013569 hasConcept C41008148 @default.
- W1989013569 hasConcept C44779574 @default.
- W1989013569 hasConcept C55493867 @default.
- W1989013569 hasConcept C73752529 @default.
- W1989013569 hasConcept C80444323 @default.
- W1989013569 hasConceptScore W1989013569C104317684 @default.
- W1989013569 hasConceptScore W1989013569C154945302 @default.
- W1989013569 hasConceptScore W1989013569C160145156 @default.
- W1989013569 hasConceptScore W1989013569C169590947 @default.
- W1989013569 hasConceptScore W1989013569C185592680 @default.