Abstraction Mechanisms and Language Design


Book Description

The research reported in this book advances the art of designing programming languages. It sets forth some design principles for abstraction mechanisms and demonstrates their power by showing how they led to improvements in the design of Ada, a new language devised for the Department of Defense and one that will be wisely used in DOD-related projects. The author was a full-time consultant for the preliminary Ada language design and his suggestions for revising it were remarkable in that of the many revisions proposed, his were among the few that proved effective. The book also considers the likely outcome of even more substantial changes to the current version of Ada. In focusing on the effects of abstracting or generalizing the definitional mechanisms of a particular language, the author notes that these effects are manifested in two ways: in the complexity and expressive power of the language, and in the expected performance of programs written in it. He concludes, with regard to the first effect, that proper design of the abstraction facilities of a language can simpify it and icrease its utility to programmers, and wiht regard to the second, that abstraction mechanisms need not involve.




Computer Science


Book Description

Computer Science: Reflections on the Field, Reflections from the Field provides a concise characterization of key ideas that lie at the core of computer science (CS) research. The book offers a description of CS research recognizing the richness and diversity of the field. It brings together two dozen essays on diverse aspects of CS research, their motivation and results. By describing in accessible form computer science's intellectual character, and by conveying a sense of its vibrancy through a set of examples, the book aims to prepare readers for what the future might hold and help to inspire CS researchers in its creation.




How to Design Programs, second edition


Book Description

A completely revised edition, offering new design recipes for interactive programs and support for images as plain values, testing, event-driven programming, and even distributed programming. This introduction to programming places computer science at the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process, presenting program design guidelines that show the reader how to analyze a problem statement, how to formulate concise goals, how to make up examples, how to develop an outline of the solution, how to finish the program, and how to test it. Because learning to design programs is about the study of principles and the acquisition of transferable skills, the text does not use an off-the-shelf industrial language but presents a tailor-made teaching language. For the same reason, it offers DrRacket, a programming environment for novices that supports playful, feedback-oriented learning. The environment grows with readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks. This second edition has been completely revised. While the book continues to teach a systematic approach to program design, the second edition introduces different design recipes for interactive programs with graphical interfaces and batch programs. It also enriches its design recipes for functions with numerous new hints. Finally, the teaching languages and their IDE now come with support for images as plain values, testing, event-driven programming, and even distributed programming.




Program Development in Java


Book Description

Liskov (engineering, Massachusetts Institute of Technology) and Guttag (computer science and engineering, also at MIT) present a component- based methodology for software program development. The book focuses on modular program construction: how to get the modules right and how to organize a program as a collection of modules. It explains the key types of abstractions, demonstrates how to develop specifications that define these abstractions, and illustrates how to implement them using numerous examples. An introduction to key Java concepts is included. Annotation copyrighted by Book News, Inc., Portland, OR.




Programming Language Design Concepts


Book Description

Explains the concepts underlying programming languages, and demonstrates how these concepts are synthesized in the major paradigms: imperative, OO, concurrent, functional, logic and with recent scripting languages. It gives greatest prominence to the OO paradigm. Includes numerous examples using C, Java and C++ as exmplar languages Additional case-study languages: Python, Haskell, Prolog and Ada Extensive end-of-chapter exercises with sample solutions on the companion Web site Deepens study by examining the motivation of programming languages not just their features







Readings in Object-Oriented Database Systems


Book Description

This comprehensive collection is a survey of research in object-oriented databases, offering a substantive overview of the field, section introductions, and over 40 research papers presented in their original scope and detail. The balanced selection of articles presents a confluence of ideas from both the language and database research communities that have contributed to the object-oriented paradigm. The editors develop a general definition and model for object-oriented databases and relate significant research efforts to this framework. Further, the collection explores the fundamental notions behind object-oriented databases, semantic data models, implementation of object-oriented systems, transaction processing, interfaces, and related approaches. Research and theory are balanced by applications to CAD systems, programming environments, and office information systems.




Concepts in Programming Languages


Book Description

A comprehensive undergraduate textbook covering both theory and practical design issues, with an emphasis on object-oriented languages.




OOIS’96


Book Description

This volume contains the papers presented at the Third International Conference on Object Oriented Information Systems (00lS'96) which was held at South Bank University, London. The keynote addresses, by Professor Colette Roland and Mr Ian Graham, are also included. The acceptance rate for papers was around 47%. The papers for the Industry Day were invited papers. The keynote paper by Professor Roland analyses the challenges in object modelling, particularly the impact of requirements engineering for conceptual modelling. She suggests innovative research perspectives to enhance and extend object oriented approaches in order to deal with the emerging area of requirements engineering. The keynote paper presented by Mr. Graham focuses on the problems and solutions for adopting use cases. In his paper, Graham illustrates the theoretical issues and practical problems of use cases, and highlights them using examples. The papers included in this volume cover different aspects of object modelling, object oriented software development, object databases, and interoperability. In the modelling session, Ram, et al. outline an extended object model to tackle the problems of capturing complex requirements of office information systems. Simons' paper concentrates on core object modelling concepts and presents a mathematical theory of class.




Abstract Computing Machines


Book Description

The book emphasizes the design of full-fledged, fully normalizing lambda calculus machinery, as opposed to the just weakly normalizing machines.