Preface

This book is a bit unusual in the way it is structured. This is because it is expected that most readers will be reading an HTML version of the book. As a result, the book makes heavy use of hyperlinking to allow users to explore the contents of the book as best suits their needs. For the most part, this linking should only enhance eBook versions of the book, but it may not always translate well into a print medium format. But every attempt has been made to provide a quality result in all supported formats.

One aspect of the book worth remarking on at this point is the fact that there are a couple of different “flows” supported in the book. Overall, the book attempts to present material in a logical order in the progression of chapters shown in the table of contents. This means that the first few chapters focus on expressing different types of mathematical behavior and deferring discussions about building more structured models (e.g. packages, component models, subsystems, etc.) until later. However, when reading about a particular example, the provided links will make it possible to sidestep this normal flow of topics and simply continue with further expansion on that particular example in subsequent chapters (which introduce additional language features). Hopefully, this approach enhances the reading experience without disorienting the user.

Most chapters are organized into three parts. The first part introduces the topics to be discussed in the chapter. Next, an extensive set of examples are used to demonstrate the language features relevant to the topics introduced in part one. Note that each example typically introduces a new topic, so it is best to review all the examples to provide the most complete coverage of these topics. Finally, most chapters include a review of the topics and a summary of any details not found in the examples to provide thorough coverage of the topics.