Data Structures of Pascal, Algol 68, PL/1 and Ada


Book Description

This book is intended as a text for a course in programming languages. The pre requisites for such a course are insight in structured programming and knowledge as well as practical experience of at least one (e.g., Pascal) of the programming languages treated in the book. The emphasis is on language concepts rather than on syntactic details. The book covers a number of important language concepts that are related to data struc tures. The comparison of the programming languages Pascal, Algol 68, PL/1 and Ada consists in investigating how these concepts are supported by each of these languages. Interesting evaluation criteria are generality, simplicity, safety, readability and portability. The study of programming languages is based on a simple model called SMALL. This model serves as a didactic vehicle for describing, comparing and evaluating data structures in various programming languages. Each chapter centers around a specific language concept. It consists of a general discussion followed by a number of language sections, one for each of the languages Pascal, Algol 68, PL/1 and Ada. Each of these sections contains a number of illustrating program fragments written in the programming language concerned. For each program fragment in one language, there is an analogous fragment in the others. The book can be read "vertically" so that the programming languages Pascal, Algol 68, PL/1 and Ada are encountered in that order several times. A "horizontal" reading of the book would consist in selecting only those sections which only concern one language.




Algorithms and Data Structures - Applications to Graphics and Geometry


Book Description

This is a college-level introductory textbook of algorithms and data structures with application to graphics and geometry. This textbook, released under a Creative Commons Share Alike (CC BY SA) license, is presented in its original format with the academic content unchanged. It was authored by Jurg Nievergelt (ETH Zurich) and Klaus Hinrichs (Institut fur Informatik) and provided by the University of Georgia's Global Textbook Project. Textbookequity.org/algorithms-and-data-structures/ Photo Credit: Renato Keshet (GFDL) commons.wikimedia.org Contents Part I: Programming environments for motion, graphics, and geometry Part II: Programming concepts: beyond notation Part IV: Complexity of problems and algorithms Part V: Data structures Textbook Equity Edition http: //textbookequity.org/algorithms-and-data-structures




Algebraic Specifications in Software Engineering


Book Description

"I prefer to view formal methods as tools. the use of which might be helpful." E. W. Dijkstra Algebraic specifications are about to be accepted by industry. Many projects in which algebraic specifications have been used as a design tool have been carried out. What prevents algebraic specifications from breaking through is the absence of introductory descriptions and tools supporting the construction of algebraic specifications. On the one hand. interest from industry will stimulate people to make introductions and tools. whereas on the other hand the existence of introductions and tools will stimulate industry to use algebraic specifications. This book should be seen as a contribution towards creating this virtuous circle. The book will be of interest to software designers and programmers. It can also be used as material for an introductory course on algebraic specifications and software engineering at undergraduate or graduate level. Nowadays. there is general agreement that in large software projects appropriate specifications are a must in order to obtain quality software. Informal specifications alone are certainly not appropriate because they are incomplete. inconsistent. inaccurate and ambiguous and they rapidly become bulky and therefore useless. The only way to overcome this problem is to use formal specifications. An important remark here is that a specification formalism (language) alone is not sufficient. What is also needed is a design method to write specifications in that formalism.




Resources in Ada


Book Description







Fundamentals of Programming Languages


Book Description

" .. .1 always worked with programming languages because it seemed to me that until you could understand those, you really couldn't understand computers. Understanding them doesn't really mean only being able to use them. A lot of people can use them without understanding them." Christopher Strachey The development of programming languages is one of the finest intellectual achievements of the new discipline called Computer Science. And yet, there is no other subject that I know of, that has such emotionalism and mystique associated with it. Thus my attempt to write about this highly charged subject is taken with a good deal of caution. Nevertheless, in my role as Professor I have felt the need for a modern treatment of this subject. Traditional books on programming languages are like abbreviated language manuals, but this book takes a fundamentally different point of view. I believe that the best possible way to study and understand today's programming languages is by focusing on a few essential concepts. These concepts form the outline for this book and include such topics as variables, expressions, statements, typing, scope, procedures, data types, exception handling and concurrency. By understanding what these concepts are and how they are realized in different programming languages, one arrives at a level of comprehension far greater than one gets by writing some programs in a vi vB Preface few languages. Moreover, knowledge of these concepts provides a framework for understanding future language designs.




The Second Age of Computer Science


Book Description

Between the genesis of computer science in the 1960s and the advent of the World Wide Web around 1990, computer science evolved in significant ways. The author has termed this period the "second age of computer science." This book describes its evolution in the form of several interconnected parallel histories.




Software Engineering with Ada


Book Description

Provides complete coverage of the Ada language and Ada programming in general by recognized authorities in Ada software engineering. Demonstrates the power and performance of Ada in the management of large-scale object-oriented systems, and shows how to use Ada features such as generics, packages, and tasking.




Product Data Interfaces in CAD/CAM Applications


Book Description

Interest in product data exchange and interfaces in the CAD/CAM area is steadi ly growing. The rapidly increasing graphics applications in engineering and sci ence has led to a great variety of heterogeneous hardware and software products. This has become a major obstacle in the progress of systems integration. To improve this situation CAD/CAM users have called for specification and imple mentation of standardized product data interfaces. These needs resulted in the definition of preliminary standards in this area. Since 1975 activities have been concentrated on developing standards for three major areas: - computer graphics, - sculptured surfaces, and - data exchange for engineering drawings. The Graphical Kernel System (GKS) has been accepted as an international standard for graphics programming in 1984, Y14.26M (IGES) was adopted as an American Standard in 1981 and the VDA Surface Interface (VDAFS) has been accepted by the German National Standardization Institute (DIN NAM 96.4). Although considerable progress has been achieved, the complexity of the subject and the dynamics of the CAD/CAM-development still calls for more generality and compatibility of the interfaces. This has resulted in an inter national discussion on further improvements of the standards. The major goal of this book is to bring together the different views and experiences in industry and university in the area of Product Data Interfaces, thereby contributing to the ongoing work in improving the state of the art.




Software Metrics


Book Description

Software Metrics is the first book to survey its subject, measuring its present extent, describing its characteristic features, and indicating directions of potential expansion.