| < Day Day Up > |
|
C/C++ programming, 369
arrays, 115
data types and unsafe referencing, 98
error handling methods, 159–161
header files, 374, 375
makefile utility, 378–379
private inheritance, 324
source file names, 374
stateless methods, 375
templates, 131
try-catch blocks, 161
Cache, definition, 409
Calculator program, 150
Car class program, 284–285, 336–337
Casting errors, runtime data type tags and, 102–105
CExec object, 37
CGI, 30–31, 409
Chat program, 400–406
client, 403–406
GUI, 403
server, 400–403
Checked exceptions, 167–169, 171–172, 409
Child thread, definition, 409
Class
extension, 141, 316, 341, 344
inappropriate or incorrect use, 344–346
inner, 376–378
naming conventions, 370
scope resolution modifiers, 376
template program, 131
ClassCastException, approaches for handling, 155–159, 162
Classification, 303, 306, 316–320, See also Inheritance
abstract classes, 341–344
choice for object design, 333
cohesion and coupling, 331
composition vs., 324, 327–328, 331, 347
compatibility with program implementation, 354, 357
"is-a" and "has-a" checks, 347–348
multiple types or roles, 352–353
mutable object types, 348, 351
type simply represents a role, 351–352
definition, 409
drawbacks, 317–320
"is-a" or "has-a" relationships, 333, 335, 341, 347–348
utility objects, 324, 328
CLASSPATH, 379–380
Client, 388
Client/server program, 388–389
chat program, 400–406
Club program, 345–346
COBOL, 386
Cohesion, 330–331, 409
Collection classes, 119
Common gateway interface (CGI), 30, 409
Common Object Request Broker Architecture (CORBA), 14, 129–130, 387, 390
Competitive synchronization, 10–11, 231, 409
Complete synchronization, 13, 51, 410
Complexity, 329
Components, 1, 2, 12–14
animator implementation, See Animator
button object example, 13–14
characteristics of, 13
concurrent program design methodology, 71–76
deadlock, 55–61, See also Deadlock
definition, 410
exception handling, 153–154, See Exceptions
generic, 131–132, 410, See also Reuse
passive objects, 79
potential problems, 13–14, See also Deadlock; Race conditions
reuse, See Reuse
Composition, 303, 306, 320–324
aggregation, 338–340
Amphibious Vehicle Design program, 353
association, 339–340
car class program, 336–337
choice for object design, 333
classification vs., 324, 327–328, 331, 347
compatibility with program implementation, 354, 357
"is-a" and "has-a" checks, 347–348
multiple types or roles, 352–353
mutable object types, 348, 351
type simply represents a role, 351–352
club program, 345–346
cohesion and coupling, 331
costs, 323–324
delegation, 338
Employee Modeling program, 348–351
"has-a" or "is-a" relationships, 333, 335, 338, 347–348
object history and, 351
Concurrency
definition, 9, 11, 410
incidental, 15
Concurrent Ball program, 297–298, 326–327
Concurrent components, 1, 2, 12, 410, See Components
Concurrent programming, 1, 11–12, See also Components; Synchronization; Threads; specific applications, methods
combined techniques, 261–262
animator controller, 262, 287–298
first-in/first-out binary semaphore, 261–262, 263–269
gas station simulation, 262, 277–287
readers/writers problem, 262, 267–277
concurrent components, See Components
contrasting with procedural programs, 22–24
defined in terms of asynchronous activity, 9, 11
definition, 6–7, 11, 410
distributed systems, See Distributed programming
further reading, 17–18
hacking strategy, 42
nondeterminism, 40–41
objects in, 12
operating system environments, 17–18
partial ordering, 27
program availability, 16
reasons for using, 3–6, 14–15
safety, 42, 47–48, See Program safety
simple execution model, See Simple virtual machine (SVM) model
system modeling, 17
timing constraints, 16
types of and applications, 14–17
Concurrent programming, program creation procedure, 69
bounded buffer, 70
control objects, 69, 76–78
defining objects and relationships, 69, 70–71
design active objects, 69, 71
design passive objects, 69, 71–74
gas station simulation problem, 80–86
implementing passive objects as monitors, 69, 74–76
problem description, 69, 70
producer/consumer problem, 70–78
Confinement, 274–276, 410
Context switch, 29, 34–38, 51
definition, 36, 410
Control objects
concurrent programming model, 69, 76–78
definition, 410
gas station simulation, 82
ControllerImp class program, 290–292
ControlPanel class program, 293–294
Cooperative synchronization, 10, 11, 231
animator implementation, 231, 232–235, 240
definition, 410
"entire run method" synchronization, 237–240
example with race condition, 243–248
further reading, 259
move method, 247–248
notification objects, 248–253, See Notification objects
"partial method" synchronization, 240, 243
random sleep times, 235
thread coordination
using long sleep times, 235–237
using wait and notify, 237–240
Coordination language, 18
CORBA, 14, 129–130, 387, 390, 406
Coupling, 330–331, 410
Critical section, definition, 410
| < Day Day Up > |
|