Efficient Polymorphic Calls

ยท Springer Science & Business Media
เด‡-เดฌเตเด•เตเด•เต
216
เดชเต‡เดœเตเด•เตพ

เดˆ เด‡-เดฌเตเด•เตเด•เดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต

The implementation of object-oriented languages has been an active topic of research since the 1960s when the first Simula compiler was written. The topic received renewed interest in the early 1980s with the growing popularity of object-oriented programming languages such as c++ and Smalltalk, and got another boost with the advent of Java. Polymorphic calls are at the heart of object-oriented languages, and even the first implementation of Simula-67 contained their classic implementation via virtual function tables. In fact, virtual function tables predate even Simula-for example, Ivan Sutherland's Sketchpad drawing editor employed very similar structures in 1960. Similarly, during the 1970s and 1980s the implementers of Smalltalk systems spent considerable efforts on implementing polymorphic calls for this dynamically typed language where virtual function tables could not be used. Given this long history of research into the implementation of polymorphic calls, and the relatively mature standing it achieved over time, why, one might ask, should there be a new book in this field? The answer is simple. Both software and hardware have changed considerably in recent years, to the point where many assumptions underlying the original work in this field are no longer true. In particular, virtual function tables are no longer sufficient to implement polymorphic calls even for statically typed languages; for example, Java's interface calls cannot be implemented this way. Furthermore, today's processors are deeply pipelined and can execute instructions out-of order, making it difficult to predict the execution time of even simple code sequences.
The implementation of object-oriented languages has been an active topic of research since the 1960s when the first Simula compiler was written. The topic received renewed interest in the early 1980s with the growing popularity of object-oriented programming languages such as c++ and Smalltalk, a...

เด•เต‚เดŸเตเดคเตฝ เด•เดฃเตเดŸเต†เดคเตเดคเต‚

เดˆ เด‡-เดฌเตเด•เตเด•เต เดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•

เดจเดฟเด™เตเด™เดณเตเดŸเต† เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดžเด™เตเด™เดณเต† เด…เดฑเดฟเดฏเดฟเด•เตเด•เตเด•.

เดตเดพเดฏเดจเดพ เดตเดฟเดตเดฐเด™เตเด™เตพ

เดธเตโ€ŒเดฎเดพเตผเดŸเตเดŸเตเดซเต‹เดฃเตเด•เดณเตเด‚ เดŸเดพเดฌเตโ€Œเดฒเต†เดฑเตเดฑเตเด•เดณเตเด‚
Android, iPad/iPhone เดŽเดจเตเดจเดฟเดตเดฏเตเด•เตเด•เดพเดฏเดฟ Google Play เดฌเตเด•เตโ€Œเดธเต เด†เดชเตเดชเต เด‡เตปเดธเตโ€Œเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•. เด‡เดคเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เด…เด•เตเด•เต—เดฃเตเดŸเตเดฎเดพเดฏเดฟ เดธเตเดตเดฏเดฎเต‡เดต เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด•เดฏเตเด‚, เดŽเดตเดฟเดŸเต† เด†เดฏเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚ เด“เตบเดฒเตˆเดจเดฟเตฝ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด“เดซเตโ€Œเดฒเตˆเดจเดฟเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.
เดฒเดพเดชเตเดŸเต‹เดชเตเดชเตเด•เดณเตเด‚ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเตเด•เดณเตเด‚
Google Play-เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเดพเด™เตเด™เดฟเดฏเดฟเดŸเตเดŸเตเดณเตเดณ เด“เดกเดฟเดฏเต‹ เดฌเตเด•เตเด•เตเด•เตพ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฑเดฟเดจเตโ€เดฑเต† เดตเต†เดฌเต เดฌเตเดฐเต—เดธเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเด•เตŠเดฃเตเดŸเต เดตเดพเดฏเดฟเด•เตเด•เดพเดตเตเดจเตเดจเดคเดพเดฃเต.
เด‡-เดฑเต€เดกเดฑเตเด•เดณเตเด‚ เดฎเดฑเตเดฑเต เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเตเด‚
Kobo เด‡-เดฑเต€เดกเดฑเตเด•เตพ เดชเต‹เดฒเตเดณเตเดณ เด‡-เด‡เด™เตเด•เต เด‰เดชเด•เดฐเดฃเด™เตเด™เดณเดฟเตฝ เดตเดพเดฏเดฟเด•เตเด•เดพเตป เด’เดฐเต เดซเดฏเตฝ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดคเต เด…เดคเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เด‰เดชเด•เดฐเดฃเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดชเดฟเดจเตเดคเตเดฃเดฏเตเดณเตเดณ เด‡-เดฑเต€เดกเดฑเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพ เด•เตˆเดฎเดพเดฑเดพเตป, เดธเดนเดพเดฏ เด•เต‡เดจเตเดฆเตเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดตเดฟเดถเดฆเดฎเดพเดฏ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดซเต‹เดณเต‹ เดšเต†เดฏเตเดฏเตเด•.