C# Precisely

by Peter Sestoft and Henrik I. Hansen

Published 3 September 2004
C# is an object-oriented programming language that is similar to Java in many respects but more comprehensive and different in most details. This book offers a quick and accessible reference for anyone who wants to know C# in more detail than that provided by a standard textbook. It will be particularly useful for C# learners who are familiar with Java. This second edition has been updated and expanded, reflecting the evolution and extension of the C# programming language. It covers C# versions 3.0 and 4.0 and takes a look ahead at some of the innovations of version 5.0. In particular, it describes asynchronous programming as found in 5.0.

Despite the new material, C# Precisely remains compact and easy to navigate. It describes C# in detail but informally and concisely, presenting lambda expressions, extension methods, anonymous object expressions, object initializers, collection initializers, local variable type inference, type dynamic, type parameter covariance and contravariance, and Linq (language integrated query), among other topics, all in aabout 250 pages. The book offers more than 250 examples to illustrate both common use and subtle points. Two-page spreads show general rules on the left and relevant examples on the right, maximizing the amount of information accessible at a glance.

The complete, ready-to-run example programs are available at the book's Web site, http://www.itu.dk/people/sestoft/csharpprecisely/

Java Precisely

by Peter Sestoft

Published 14 June 2002
This concise guide to the Java programming language, version 5.0, offers a quick reference for the reader who wants to know the language in greater detail than that provided by the standard text or language reference book. It presents the entire Java programming language and essential parts of the class libraries -- the collection classes and the input-output classes. The second edition adds material on autoboxing of primitive types, string formatting, variable-arity methods, the enhanced for statement, enum types, generic types and methods, reflection, and meta-data annotations. It has been updated throughout to reflect the changes from Java 1.4 to Java 5.0. The final section summarizes and illustrates the new features of Java 5.0 and compares them to the C# programming language. General rules are shown on left-hand pages and corresponding examples on right-hand pages. All examples are fragments of legal Java programs and the complete ready-to-run example programs can be found at the book's Web site, http://www.dina.kvl.dk/~sestoft/javaprecisely/.

Spreadsheets are used daily by millions of people for tasks that range from organizing a list of addresses to carrying out complex economic simulations. Spreadsheet programs are easy to learn and convenient to use because they have a clear visual model and a simple efficient underlying computational model. Yet although the basic spreadsheet model could be extended, improved, or otherwise experimented with in many ways, there is no coherently designed, reasonably efficient open source spreadsheet implementation that is a suitable platform for such experiments. This book fills the gap, teaching users how to experiment with and implement innovative spreadsheet functionality and introducing two software platforms for doing so. Along the way, it draws on and illustrates software technologies and computer science topics that range from object-oriented programming to compiler technology.

Spreadsheet Implementation Technology surveys a wide range of information about spreadsheets drawn from user experience, the scientific literature, and patents. After summarizing the spreadsheet computation model and the most important challenges for efficient recalculation, the book describes Corecalc, a core implementation of essential spreadsheet functionality suitable for practical experiments, and Funcalc, an extension of Corecalc that allows users to define their own functions without extraneous programming languages or loss of efficiency. It also shows the advantages of automatic function specialization and offers a user's manual for Funcalc. The Corecalc and Funcalc software is downloadable free of charge.