Object-Oriented Programming Languages: Interpretation

Front Cover
Springer Science & Business Media, Jul 16, 2007 - Computers - 256 pages
1.1 Introduction Object-oriented programming has opened a great many perspectives on the concept of software and has been hailed as part of the solution to the so-called “software crisis”. It has given the possibility that software components can be constructedandreusedwithconsiderablymorecredibility.Therearenowmany case studies in which the reuse of object-oriented components has been made and analysed. Object-oriented programming relates the programming activity to that of modelling or simulation; objects are identi?ed by a correspondence with the objects found in the application area of the program and are used to model those domain operations. Object-oriented programming also opens the prospect of more ?exible software that is able to respond dynamically to the needs of the application at runtime. It is very easy to think that object-oriented programming can be performed in only one way. The prevalence of C++ and Java suggests that they are the onlywaytoapproachtheproblemofwhatanobject-orientedprogrammingl- guage should look like. There are many approaches to this way of programming andC++andJavaexemplifyjustoneofthesedi?erentapproaches.Indeed,the wayinwhichtheconceptoftheobjectisinterpreteddi?ersbetweenapproaches and between languages. The two main approaches found in object-oriented programming languages are, respectively, class-based and prototype-based languages. Class-based l- guages are exempli?ed by Smalltalk [34], C++ [75, 74] and Java [47]. This 2 1. Introduction approach is based upon the identi?cation of common properties of objects and their description in terms of a de?nitional structure called a class. The objects manipulated by class-based programs are the result of instantiating classes.
 

What people are saying - Write a review

We haven't found any reviews in the usual places.

Contents

Introduction
1
12 Essential Properties of Objects
3
13 Objects and Messages
6
14 Pure and Impure Languages
7
15 MixedParadigm Languages
9
Class Fundamentals
13
22 Classes
16
23 Instances
20
A More Formal Definition
136
543 Blocks in Smalltalk and SELF
139
544 Block Structure in Beta
143
545 HigherOrder Methods
144
546 Methods and Inheritance
146
55 Static and Dynamic Binding
148
Types I Types and Objects
155
62 Inheritance and Types
157

24 Slots and Methods
22
25 Slot Access
23
26 Visibility and Accessibility
25
27 Instance Creation
31
28 Inheritance
34
282 Definition of Inheritance
35
29 Abstract Classes
40
210 Iterators
44
211 Part Objects
49
Prototype and Actor Languages
57
33 The Concept of the Prototype
58
331 Slots and Methods
64
332 Message Passing
65
334 Delegation and Shared Structure
67
34 Methods in Prototype Languages
72
35 Actor Languages
73
353 Extensions to the Actor Concept
78
Inheritance and Delegation
83
42 Interpretations of Inheritance
84
43 Inheritance as Subtyping
85
44 Inheritance as Code Sharing
87
45 Single Inheritance
90
46 Calling More Abstract Methods
91
47 Multiple Inheritance
98
48 Multiple Inheritance Graph Shape
100
49 Approaches to Multiple Inheritance
106
411 Graph Inheritance
108
412 Linearised Inheritance
110
413 Implemented Multiple Inheritance Techniques
112
4132 Multiple Inheritance in C++
114
4133 Multiple Inheritance in Eiffel
115
414 Mixin Classes
117
415 Alternatives to Multiple Inheritance
120
4152 Interfaces in Java
121
4153 Delegation and Prototypes
122
416 Aggregation
124
Methods
129
52 Methods and Objects
131
53 Object Constructors and Methods
134
54 Environments and Closures
135
621 Telling What the Type Is
159
622 Polymorphism
164
63 Generic Polymorphism
166
64 Overloading and Over riding
169
65 Languages with Root Classes
173
66 Polyadicity and Default Parameters
174
661 Variance
176
67 Downcasting and Subtypes
179
68 Review
181
Types II Types and Objects Alternatives
184
73 Hiding Implementation Details
190
74 Classes and Type Operations
194
75 Containers and Objects
197
C
201
82 Classes and Instances
202
821 Class and Instance Variables
203
822 Access Levels
204
824 Instance Creation
205
825 Static Constructors
207
827 Dot Notation and Member Access
208
8210 Self Reference
210
831 Calling BaseClass Constructors
211
832 Interfaces
213
84 Methods and Operators
215
842 The Base Keyword
217
843 Parameter Annotations
218
844 Properties
220
845 Delegates
221
846 Operator Overloading
223
85 Polymorphism and Types
225
852 Type Unification
227
86 Base Class Library
229
BeCecil
231
92 Programming Standard OO Mechanisms
232
93 Syntactic Sugar
237
94 A Small Example
238
95 Concluding Remarks
239
Bibliography
241
Index
248
Copyright

Other editions - View all

Common terms and phrases

Bibliographic information