دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش: 1
نویسندگان: Karel Driesen (auth.)
سری: The Springer International Series in Engineering and Computer Science 596
ISBN (شابک) : 9781461356752, 9781461516811
ناشر: Springer US
سال نشر: 2001
تعداد صفحات: 224
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 8 مگابایت
کلمات کلیدی مربوط به کتاب تماس های چند شکلی کارآمد: معماری پردازنده، زبان های برنامه نویسی، کامپایلر، مترجمان، علوم کامپیوتر، عمومی
در صورت تبدیل فایل کتاب Efficient Polymorphic Calls به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب تماس های چند شکلی کارآمد نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
پیاده سازی زبان های شی گرا از دهه 1960 که اولین کامپایلر Simula نوشته شد، موضوع فعال تحقیق بوده است. این موضوع در اوایل دهه 1980 با محبوبیت روزافزون زبان های برنامه نویسی شی گرا مانند c++ و Smalltalk مورد توجه مجدد قرار گرفت و با ظهور جاوا تقویت شد. فراخوانی های چند شکلی در قلب زبان های شی گرا قرار دارند و حتی اولین پیاده سازی Simula-67 شامل اجرای کلاسیک آنها از طریق جداول توابع مجازی بود. در واقع، جداول توابع مجازی حتی قبل از Simula نیز وجود دارد - برای مثال، ویرایشگر طراحی Sketchpad ایوان ساترلند در سال 1960 از ساختارهای بسیار مشابهی استفاده کرد. به طور مشابه، در طول دهه 1970 و 1980، پیادهکنندههای سیستمهای Smalltalk تلاشهای قابلتوجهی را صرف پیادهسازی فراخوانهای چند شکلی برای این زبان کردند. از جداول توابع مجازی نمی توان استفاده کرد. با توجه به این سابقه طولانی تحقیق در مورد اجرای فراخوان های چند شکلی، و جایگاه نسبتاً پخته ای که در طول زمان به دست آورد، ممکن است پرسید چرا باید کتاب جدیدی در این زمینه وجود داشته باشد؟ پاسخ ساده است. نرم افزار و سخت افزار هر دو به طور قابل توجهی در سال های اخیر تغییر کرده اند، تا جایی که بسیاری از فرضیات زیربنای کار اصلی در این زمینه دیگر درست نیستند. به طور خاص، جداول توابع مجازی دیگر برای اجرای فراخوانی های چند شکلی حتی برای زبان های تایپ ایستا کافی نیستند. به عنوان مثال، فراخوانی های رابط جاوا را نمی توان به این روش پیاده سازی کرد. علاوه بر این، پردازندههای امروزی عمیقاً خط لوله شدهاند و میتوانند دستورالعملها را بدون نظم اجرا کنند، که پیشبینی زمان اجرای حتی دنبالههای کد ساده را دشوار میکند.
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.
Front Matter....Pages i-xvii
Introduction....Pages 1-6
Polymorphic Calls....Pages 7-13
Software Techniques for Efficient Polymorphic Calls....Pages 15-32
Row Displacement Compression of Message Dispatch Tables....Pages 33-53
Analysis of Dispatch Sequences on Modern Processor Architectures....Pages 55-68
Measurement of Virtual Function Call Overhead on Modern Processors....Pages 69-96
Hardware Techniques....Pages 97-105
Basic Indirect Branch Predictors....Pages 107-124
Hybrid Indirect Branch Predictors....Pages 125-164
Related Work....Pages 165-175
Conclusions....Pages 177-178
Glossary....Pages 179-181
References....Pages 183-192
Back Matter....Pages 193-216