| Preface | |
| Computer Systems - Past, Present and Future | p. 1 |
| A bit of history | p. 1 |
| The basic computer structure | p. 6 |
| The influence of advances in technology | p. 11 |
| Current and future developments | p. 18 |
| Programming Languages | p. 31 |
| Algorithmic languages | p. 41 |
| Object-oriented languages | p. 58 |
| Functional languages | p. 63 |
| Logic languages | p. 70 |
| Parallel and distributed languages | p. 76 |
| Real-time languages | p. 84 |
| Literature | p. 87 |
| Operating Systems - The State of the Art | p. 91 |
| What is an operating system? | p. 91 |
| A brief history of operating systems | p. 93 |
| An example operating system - UNIX | p. 97 |
| Network operating systems | p. 103 |
| Distributed operating systems | p. 111 |
| Databases and Database Management | p. 133 |
| Relational databases | p. 148 |
| Transaction management | p. 168 |
| Current directions | p. 179 |
| Software Engineering | p. 195 |
| Introduction and historical background | p. 195 |
| The software life cycle | p. 198 |
| Elements of software development methodology | p. 206 |
| Language issues | p. 221 |
| Case | p. 225 |
| Alternative paradigms for software evolution | p. 229 |
| A Survey of Matrix Computations | p. 247 |
| Some tools of the trade | p. 249 |
| A catalog of matrix factorizations | p. 265 |
| High performance matrix computations | p. 293 |
| Fundamental Algorithms and Data Structures | p. 323 |
| Dictionaries | p. 329 |
| Priority queues | p. 347 |
| Set union algorithms | p. 359 |
| Design (with Analysis) of Efficient Algorithms | p. 375 |
| Maximum network flow on a sequential machine | p. 376 |
| Ford-Fulkerson leads 'naturally' to Dinits | p. 381 |
| The breakdown of phases: Goldberg's preflow-push algorithm | p. 391 |
| Parametric flow: The value of amortizing across phases | p. 397 |
| Computing edge connectivity: The amortization theme writ small | p. 402 |
| Matching: Optimal, greedy and optimal-greedy approaches | p. 406 |
| Parallel network flow in O(n[superscript 2] log n) time | p. 412 |
| Distributed algorithms | p. 416 |
| Many-for-one results | p. 419 |
| The power of preprocessing: The least common ancestor problem | p. 426 |
| Randomized algorithms for matching problems | p. 429 |
| A matching problem from biology illustrating dynamic programming | p. 438 |
| Min-cost flow: Strong versus weak polynomial time | p. 440 |
| Weighted node cover: Approximation algorithms based on network flow | p. 445 |
| Summary and thesis | p. 448 |
| Computational Complexity | p. 455 |
| Basic definitions | p. 458 |
| NP-complete problems | p. 471 |
| Coping with NP-complete problems - Related theory | p. 484 |
| The world beyond NP | p. 489 |
| Approaches to the P vs. NP question | p. 503 |
| Parallel computation | p. 506 |
| Computer System Models | p. 519 |
| Priority scheduling strategies | p. 520 |
| Processor-sharing strategies | p. 528 |
| Achievable performance in single-server systems | p. 535 |
| Interactive virtual memory systems | p. 543 |
| Secondary storage devices | p. 550 |
| Mathematical Programming Systems | p. 561 |
| The standard optimizer interface | p. 562 |
| Model description languages | p. 569 |
| MPS modeling concepts | p. 578 |
| Practical implementations of the simplex method | p. 580 |
| Interior point methods | p. 587 |
| Special structure linear programs | p. 593 |
| Nonlinear programming | p. 594 |
| Integer programming | p. 595 |
| User Interfaces | p. 603 |
| Framework for OR projects | p. 605 |
| Human information processing capabilities | p. 609 |
| User interface theory, design and implementation | p. 612 |
| Hardware | p. 629 |
| Software | p. 633 |
| User interfaces and OR | p. 640 |
| Decision support systems | p. 647 |
| Modeling languages for mathematical programming | p. 650 |
| Future directions for user interfaces | p. 655 |
| Subject Index | p. 669 |
| Contents of the Previous Volumes | p. 681 |
| Table of Contents provided by Blackwell. All Rights Reserved. |