Efficient Polymorphic Calls

Author:   Karel Driesen
Publisher:   Springer
Edition:   2001 ed.
Volume:   596
ISBN:  

9780792372899


Pages:   216
Publication Date:   28 February 2001
Format:   Hardback
Availability:   In Print   Availability explained
This item will be ordered in for you from one of our suppliers. Upon receipt, we will promptly dispatch it out to you. For in store availability, please contact us.

Our Price $498.96 Quantity:  
Add to Cart

Share |

Efficient Polymorphic Calls


Add your own review!

Overview

To achieve superior performance, language implementers and computer architects must pay increasingly close attention to polymorphic function calls. Such calls are at the heart of all object-oriented languages, including C++, Smalltalk, and Java. The implementation of object-oriented languages has been an active topic of research since the 1960s when the first Simula compiler was written, and there has been renewed interest in the topic in the early 1980s with the growing popularity of many object-oriented programming languages. Both software and hardware have changed considerably in the interim, to the point where many assumptions based on older studies are no longer valid. 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. Given the long history of research into the implementation of polymorphic calls and the relatively mature standing it has achieved, this title aims to present an up-to-date authoritative guide to the field. ""Efficient Polymorphic Calls"" is a key resource for practitioners building an object-oriented system, who look for fast polymorphic call resolution under particular hardware constraints, graduate students interested in the development of object-oriented systems, and anyone with an interest in programming language implementation at the software or hardware level.

Full Product Details

Author:   Karel Driesen
Publisher:   Springer
Imprint:   Springer
Edition:   2001 ed.
Volume:   596
Dimensions:   Width: 15.50cm , Height: 1.40cm , Length: 23.50cm
Weight:   1.140kg
ISBN:  

9780792372899


ISBN 10:   0792372891
Pages:   216
Publication Date:   28 February 2001
Audience:   College/higher education ,  Professional and scholarly ,  Undergraduate ,  Postgraduate, Research & Scholarly
Format:   Hardback
Publisher's Status:   Active
Availability:   In Print   Availability explained
This item will be ordered in for you from one of our suppliers. Upon receipt, we will promptly dispatch it out to you. For in store availability, please contact us.

Table of Contents

1 Introduction.- 1.1 Polymorphism.- 1.2 Inheritance.- 1.3 Problem statement.- 1.4 Overview.- 2 Polymorphic calls.- 2.1 Basic construct.- 2.2 Hand-crafted polymorphism.- 2.3 Object-oriented message dispatch.- 3 Software techniques for efficient polymorphic calls.- 3.1 Basic message dispatch in object-oriented languages.- 3.2 Dynamic techniques.- 3.3 Static techniques.- 3.4 Memory cost.- 3.5 Programming environment aspects.- 3.6 Summary.- 4 Row displacement compression of message dispatch tables.- 4.1 Class-based row displacement.- 4.2 Selector-based row displacement.- 4.3 Compression results.- 4.4 Optimizing table compression speed.- 4.5 interactive programming environments.- 4.6 Summary.- 5 Analysis of dispatch sequences on modern processor architectures.- 5.1 Parameters influencing performance.- 5.2 Dispatch cost calculation.- 5.3 Cost of dynamic typing and multiple inheritance.- 5.4 Influence of processor implementation.- 5.5 Limitations.- 5.6 Summary.- 6 Measurement of virtual function call overhead on modern processors.- 6.1 Virtual function tables and the thunk variant.- 6.2 Superscalar processors.- 6.3 Method.- 6.4 Results.- 6.5 Discussion.- 6.6 Summary.- 7 Hardware techniques.- 7.1 Software vs. hardware prediction.- 7.2 Hardware indirect branch prediction.- 7.3 Indirect branch frequency.- 7.4 Experimental setup.- 7.5 Problem statement.- 8 Basic indirect branch predictors.- 8.1 Branch target buffer.- 8.2 Two-level predictor.- 8.3 History buffers.- 8.4 history tables.- 8.5 Summary.- 9 Hybrid indirect branch predictors.- 9.1 Hybrid prediction.- 9.2 Branch classification.- 9.3 Dual-path hybrid prediction.- 9.4 Cascaded prediction.- 9.5 Summary.- 10 Related work.- 10.1 Software techniques.- 10.2 Polymorphic calls in Java.- 10.3 Hardware techniques.- 11 Conclusions.- 12 Glossary.- 13 References.- Appendix A Polymorphic call sequences in assembly.- Appendix B Indirect branch execution intervals.- Appendix C Basic prediction accuracy per benchmark.

Reviews

Author Information

Tab Content 6

Author Website:  

Customer Reviews

Recent Reviews

No review item found!

Add your own review!

Countries Available

All regions
Latest Reading Guide

MRG2025CC

 

Shopping Cart
Your cart is empty
Shopping cart
Mailing List