A Guide to Modula-2


Book Description

Modula-2 is a simple yet powerful programming language that is suitable for a wide variety of applications. It is based on Pascal, a successful programming language that was introduced in 1970 by Niklaus Wirth. During the 1970's Pascal became the most widely taught programming language and it gained acceptance in science and industry. In 1980 Dr. Wirth released the Modula-2 program ming language. Modula-2 is an evolution of Pascal. It improves on the successes of Pascal while adding the MODULE - a tool for ex pressing the relations between the major parts of programs. In ad dition Modula-2 contains low-level features for systems program ming and coroutines for concurrent programming. Programming languages are important because they are used to express ideas. Some programming languages are so limited that certain ideas can't be easily expressed. For example languages that lac k floating point arithmetic are inappropriate for scientific com putations. Languages such as Basic and Fortran that lack recur sion are unsuitable for text processing or systems programming. Sometimes a programming language is useable for a certain appli cation but it is far from ideal. A good example is the difficulty of writing large programs in pure Pascal. Pascal is a poor language for large jobs because it lacks facilities for partitioning a program viii Preface 6







Programming in Modula-2


Book Description

This text is an introduction to programming in general, and a manual for programming with the language Modula-2 in particular. It is oriented primarily towards people who have already acquired some basic knowledge of programming and would like to deepen their understanding in a more structured way. Nevertheless, an introductory chapter is included for the benefit of the beginner, displaying in a concise form some of the fundamental concepts of computers and their programming. The text is therefore also suitable as a self-contained tutorial. The notation used is Modula-2, which lends itself well for a structured approach and leads the student to a working style that has generally become known under the title of structured programming. As a manual for programming in Modula-2, the text covers practically all facilities of that language. Part 1 covers the basic notions of the variable, expression, assignment, conditional and repetitive statement, and array data structure. Together with Part 2 which introduces the important concept of the procedure or subroutine, it contains essentially the material commonly discussed in introductory programming courses. Part 3 concerns data types and structures and constitutes the essence of an advanced course on programming. Part 4 introduces the notion of the module, a concept that is fundamental to the design of larger programmed systems and to programming as team work. The most commonly used utility programs for input and output are presented as examples of modules. And fmally, Part 5 covers facilities for system programming, device handling, and multiprogramming.




Programming in Oberon


Book Description

In 1985 Niklaus Wirth and Ji rg Gutknecht embarked on a project to build a new workstation from scratch. The quote from Einstein: 'Make it as simple as possible, but not simpler' served as a signpost for their approach resulting in a system of exemplary lucidity, efficiency and compactness. Wirth was fascinated by the accuracy and reliability of the Voyager space probe then passing Oberon, one of the moons of Uranus. The project was christened Oberon in its honor. This is the definitive guide to the Oberon language developed as a successor to Pascal and Modula 2. Programming in Oberon provides: A programming tutorial that demonstrates modern programming concepts; A complete language reference that explains the syntax and use of Oberon. This unique tutorial will be suitable for students learning Oberon as well as providing a valuable reference for professional programmers. Key features of the book An early introduction to procedures and modules; A unifying series of examples of increasing complexity which build up throughout the book towards a complete realistic simulation package; An explanation of the object-oriented style of programming and its advantages.




Expert C Programming


Book Description

Software -- Programming Languages.




Business Data Systems


Book Description




The Programmer's Guide to C++


Book Description

The Programmer's Guide to C++ is an elaborate reference source for programmers who are familiar with Pascal or C and who wish to move on to C++. The pace and level of this book have been tailored toward experienced software developers, while still remaining accessible and challenging to students. It is an indispensable companion text for courses that introduce C++ as a second language or cover more advanced features of C++. The book offers the breadth and depth that introductory courses are unable to do and cuts out the elementary material that advanced students do not require. It also serves as an informal reference text for computing students with procedural programming experience and practitioners at all levels. Robson begins with the language basics, followed by key discussions relating to more advanced topics of the C++ language. Chapters are devoted to the following concepts: * Fundamental data types and expressions, * Control statements and functions, * Pointers and memory management, * Classes and inheritance, * Friendship and operator overloading, * Virtual functions and templates, * Exceptions and name spaces, * Casting and run-time type information, and the * Standard iostream class library. A concise but comprehensive guide to the C++ programming language, this book includes the latest features of the ANSI American National Standards Institute (ANSI) draft standard. In addition, it contains extensive model solutions to the exercises given at the end of each chapter. Although standard C++ strings are used for all examples, Robson also includes a detailed discussion of the older C strings.




Porting to Win32TM


Book Description

and Overview book: to undertake an expedition into these new and to a large extent unexplored territories, explaining along the way what all these things mean to existing programs and their native use under Win32 systems. After all, before putting such nice things as multiple threads or Unicode into their applications, developers have to port them to Win32 in the first place! And this is, in spite of all the promises from Microsoft, somewhat more difficult than I'd expected - at the very least in certain sections. The book is not focused so much on the detailed explanation of all the new functions and possibilities (these won't escape you anyway!); rather, its main concern is to make the transition from 16 to 32 bit as easy and smooth as possible for you as the developer and/or project lead. So, let's have a closer look at the individual parts of the text! Chapter 1: Fundamental The first chapter is for project leads and developers alike. It gives an Aspects and Preliminary overview of the new Win32 systems, describes the most important fea- Considerations tures, and compares them with Win16 and also with the competition coming along in the form of OS/2 3. x and UNIX. I'll show the important architectural and implementation issues, concentrating on Windows NT and detailing the differences for Windows 95 when required.




Modula-2 for Pascal Programmers


Book Description

This book describes the programming language Modula-2. It is written for people who know the Pascal language and who wish to learn Modula-2 in terms of their knowledge of Pascal. The text is divided into three parts. Part 1 introduces concepts unique to Modula-2 and thus new to Pascal programmers. Part 2 describes differences from Pascal. Part 3 defines modules which provide basic programming facilities. The appendices include a glossary and syntax diagrams. Please note that this book does not offer a complete description of the Modula-2 language; it is intended to complement Niklaus Wirth's definitive book Programming in Modula-2 (Springer-Verlag, 1983). Some readers will recognize this book as being based upon the Volition Systems Modula-2 User's Manual. Enough has changed to merit its reappearance in this more dignified form: existing material has been reorganized to improve clarity; new material has been added to improve content. This book was written with the ASE text editor. The text was produced in camera-ready form on the Scenic LaserTezt composition system. I wish to thank the following people and organizations for their contributions to the development of this book: Volition Systems, for giving me the opportunity to write about Modula-2; Jim Merritt, for reviewing an early draft; the Institut far Informatik, ETH Zarich, for publishing a series of informative technical papers on Modula-2; and finally, all the pioneer users of Volition Systems Modula-2, for their patience and foresight and support.




The Go Programming Language


Book Description

The Go Programming Language is the authoritative resource for any programmer who wants to learn Go. It shows how to write clear and idiomatic Go to solve real-world problems. The book does not assume prior knowledge of Go nor experience with any specific language, so you’ll find it accessible whether you’re most comfortable with JavaScript, Ruby, Python, Java, or C++. The first chapter is a tutorial on the basic concepts of Go, introduced through programs for file I/O and text processing, simple graphics, and web clients and servers. Early chapters cover the structural elements of Go programs: syntax, control flow, data types, and the organization of a program into packages, files, and functions. The examples illustrate many packages from the standard library and show how to create new ones of your own. Later chapters explain the package mechanism in more detail, and how to build, test, and maintain projects using the go tool. The chapters on methods and interfaces introduce Go’s unconventional approach to object-oriented programming, in which methods can be declared on any type and interfaces are implicitly satisfied. They explain the key principles of encapsulation, composition, and substitutability using realistic examples. Two chapters on concurrency present in-depth approaches to this increasingly important topic. The first, which covers the basic mechanisms of goroutines and channels, illustrates the style known as communicating sequential processes for which Go is renowned. The second covers more traditional aspects of concurrency with shared variables. These chapters provide a solid foundation for programmers encountering concurrency for the first time. The final two chapters explore lower-level features of Go. One covers the art of metaprogramming using reflection. The other shows how to use the unsafe package to step outside the type system for special situations, and how to use the cgo tool to create Go bindings for C libraries. The book features hundreds of interesting and practical examples of well-written Go code that cover the whole language, its most important packages, and a wide range of applications. Each chapter has exercises to test your understanding and explore extensions and alternatives. Source code is freely available for download from http://gopl.io/ and may be conveniently fetched, built, and installed using the go get command.