دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Kim B. Bruce
سری:
ISBN (شابک) : 9780262025232, 026202523X
ناشر: The MIT Press
سال نشر: 2002
تعداد صفحات: 405
زبان: English
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 6 مگابایت
در صورت تبدیل فایل کتاب Foundations of Object-Oriented Languages: Types and Semantics به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب مبانی زبان های شی گرا: انواع و معناشناسی نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
این یک مقدمه مفید برای تئوری پشت انواع داده در زبان های شی گرا (OO) است. با سرعت بسیار خواندنی شروع می شود. بخش اول (حدود 100 صفحه) اصول اولیه زبان های OO و ویژگی های OO را پوشش می دهد و یک واژگان کاربردی را ایجاد می کند. برای مثال، مفاهیم بسیار متمایز زیر کلاس و نوع فرعی را در اوایل معرفی می کند. این مهم است، اگر فقط به این دلیل که کلماتی مانند \"subtype\" در صورت استفاده توسط نویسندگان مختلف معانی متفاوتی دارند. به عنوان مثال، باربارا لیسکوف، در اصل معروف جایگزینپذیری خود، از تعریف معنایی برای \"subtype\" استفاده کرد، تعریفی که توسط ابزارهای خودکار قابل بررسی نیست. در اینجا، تعریف فقط در مورد اطلاعاتی که ممکن است در یک رابط جاوا یا کلاس انتزاعی C پیدا کنید صحبت می کند و می تواند به طور خودکار بررسی شود. این بحث اولیه همچنین مشکلی را که باید حل شود تعریف میکند: ایجاد زبانهای برنامهنویسی که بسیار گویا هستند، به کدهای کارآمد کامپایل میشوند، و به شدت امن هستند، اهدافی که اغلب در تضاد هستند. بیان واضح مسئله به خودی خود بسیار آموزنده است و خوانندگان معمولی ممکن است در این نقطه متوقف شوند. بخش کوتاه بعدی یک نماد ریاضی، یک حساب لامبدا را برای بحث در مورد انواع تعریف می کند. در این حساب، کلمه کلیدی \"record\" یا \"struct\" عملگری است که انواع دیگر را با هم در یک واحد جدید جمع می کند و الگوهای C توابعی هستند که انواع جدیدی تولید می کنند. این حساب به یک منطق رسمی وارد می شود که گزاره های مربوط به انواع را به همان روشی که محاسبات استاندارد گزاره های مربوط به اعداد را اثبات می کند، اثبات می کند. به هر حال، این تقریباً به اندازه یک اثبات معمولی صحت برنامه ترسناک نیست. درستی رفتاری با تغییرات وضعیت برنامه در طول زمان سروکار دارد. این برنامه را به عنوان یک موجودیت ایستا و زمان کامپایل در نظر می گیرد. همچنین، خوب یا بد، بیشتر از نظریه مقولهای که اغلب با فرمالیسمهای نوع همراه است، صرفنظر میکند. 200 صفحه باقیمانده یا بیشتر، اصل بحث را تشکیل میدهند. بروس ایدههای شهودی بخش اول در مورد انواع و زبانها را میگیرد، آنها را با فرمالیسم بخش دوم بیان میکند و از آن زبان برای تجزیه و تحلیل چندین زبان OO کوچک و هدفمند با سیستمهای نوع متفاوت استفاده میکند. در طول راه، بروس چند ادعای قابل توجه دارد. یکی این است که، اگرچه وراثت چندگانه می تواند مشکلات عملی را برای توسعه دهندگان ایجاد کند، اما برای ابزارهای ریاضی مشکل بزرگی نیست. مشکل واقعی تصمیم گیری در مورد منظور شما از وراثت چندگانه است، جایی که C و Eiffel تنها دو پاسخ ممکن را ارائه می دهند. (موافق - ارائه چیزی مفید برای گفتن اغلب سخت تر از گفتن آن است.) یکی دیگر از این موارد این است که کلاس ها برای تایپ OO قوی واقعاً ضروری نیستند. کلاسها فقط نام مجموعهای از ویژگیها هستند و ویژگیهای مجموعهها مهم هستند. (من نظریه را می بینم، اما مطمئن نیستم که این منجر به پیشرفت های عملی در طراحی زبان شود.) بسیاری از این نتایج کاملاً واضح هستند، حتی اگر شما، مانند من، برخی از اثبات های مودارتر را نادیده بگیرید. این مطمئناً کتابی برای مبتدیان برنامه نویسی یا OO نیست. این در واقع در مورد تئوری نحوه عملکرد زبان ها است. برای توسعه دهندگانی که زبان ها، کامپایلرها یا ابزارهای CASE هوشمند زبان جدید ایجاد می کنند، مفید خواهد بود. من شک دارم که بیشتر دیگران اطلاعات مرتبط با کار خود را پیدا کنند. با این حال، اگر شما واقعاً به قطعات پیچیده سیستم نوع زبان OO اهمیت می دهید، این کتاب بسیار مفید خواهد بود.//wiredweird
This is a useful introduction to the theory behind data types in object oriented (OO) languages. It starts at a very readable pace. The first section (about 100 pages) covers the basics of OO languages and OO features, and establishes a working vocabulary. For example, it introduces the very distinct notions of subclass and subtype early on. That is important, if only because words like "subtype" have different meanings when used by different authors. Barbara Liskov, for example, used a semantic definition for "subtype" in her famous substitutability principle, a definition that can not be checked by automatic tools. Here, the definition talks only about the information you might find in a Java interface or C++ abstract class, and can be checked automatically. This early discussion also defines the problem to be solved: creating programming languages that are richly expressive, that compile to efficient code, and that are rigorously type safe, goals that often conflict. The clear statement of the problem is very informative, by itself, and casual readers might stop at this point.The next brief section defines a mathematical notation, a lambda calculus, for discussing types. In this calculus, a "record" or "struct" keyword is an operator that aggregates other types together into a new unit, and C++ templates are functions that generate new types. This calculus feeds into a formal logic that proves statements about types the same way standard arithmetic proves statements about numbers. This isn't nearly as daunting as a normal proof of program correctness, by the way. Behavioral correctness deals with a program's changes of state over time; this treats the program as a static, compile-time entity. Also, for better or worse, it skips the most of the category theory that often accompanies type formalisms.The remaining 200 pages or so constitute the real meat of the discussion. Bruce takes the first section's intuitive ideas about types and languages, phrases them in the second section's formalism, and uses that language to analyze several small, purpose-built OO languages with different type systems. Along the way, Bruce makes a few remarkable claims. One is that, although multiple inheritance can cause pragmatic problems for developers, it's no big deal for the mathematical tools. The real problem is deciding what you mean by multiple inheritance, where C++ and Eiffel provide only two of the possible answers. (Agreed - coming up with something useful to say is often harder than saying it.) Another is that classes really aren't necessary for strong OO typing. Classes are just names for collections of features, and it's the features in the collections that matter. (I see the theory, but I'm not sure that this leads to practical improvements in language design.) Many of these results are quite clear even if you, like me, skip some of the hairier proofs. This is certainly not a book for a beginner to programming or to OO. It's really about the theory of how languages work. It will be of use to developers who create new languages, compilers, or language-smart CASE tools. I doubt that most others will find information relevant to their work. If you really care about the fussy bits of an OO language's type system, though, this book will be very helpful.//wiredweird
MIT Press - Foundations of Object-Oriented Languages Types and Semantics 026202523X.pdf......Page 0
Contents......Page 8
List of Figures......Page 12
Preface......Page 16
Part I Type Problems in Object-Oriented Languages......Page 22
Introduction......Page 24
Fundamental Concepts of Object- Oriented Languages......Page 38
Type Problems in Object- Oriented Languages......Page 54
Adding Expressiveness to Object- Oriented Languages......Page 70
Understanding Subtypes......Page 92
Type Restrictions on Subclasses......Page 110
Varieties of Object- Oriented Programming Languages......Page 116
Historical Notes and References for Section I......Page 134
Part I I Foundations: The Lambda Calculus......Page 138
and the Lambda Calculus......Page 140
Calculus......Page 162
Historical Notes and References for Section II......Page 188
Part I I I Formal Descriptions of Object-Oriented Languages......Page 192
SOOL, a Simple Object- Oriented Language......Page 194
A Simple Translational Semantics of Objects and Classes......Page 222
Improved Semantics for Classes......Page 246
SOOL¡¯ s Type System Is Safe (and Sound)......Page 260
Completing SOOL: super, nil, information Hiding, and Multiple Inheritance......Page 284
Historical Notes and References for Section III......Page 304
Part IV Extending Simple Object-Oriented Languages......Page 310
Adding Bounded Polymorphism to SOOL......Page 312
Adding MyType to Object- Oriented Programming Languages......Page 320
Match- Bounded Polymorphism......Page 352
Simplifying: Dropping Subtyping for Matching......Page 370
Historical Notes and References for Section IV......Page 384
Bibliography......Page 388
Index......Page 400