Resources

If you have any suggestions for this page, please send them over to jasonb@magenic.com.

Sites

Local Language User Groups

Twin Cities ColdFusion User Group
Twin Cities PHP User Group
Twin Cities Zope/Python User Group
Ruby Users of Minnesota
Minnesota CocoaHeads Group
Object Technology User Group
Twin Cities Developer's Guild
Twin Cities .NET User Group
Twin Cities Java User Group
Groovy Users of MN

Miscellaneous

.NET Languages
Guy Steele on Programming Languages

Books

Engineering a Compiler Cover

Engineering a Compiler, by Keith D. Cooper, Linda Torczon, Morgan Kaufmann, 2003. Today's compiler writer must choose a path through a design space that is filled with diverse alternatives, each with distinct costs, advantages, and complexities. This book explores this design space by presenting some of the ways these problems have been solved, and the constraints that made each of those solutions attractive. By understanding the parameters of the problem and their impact on compiler design, the authors hope to convey both the depth of the problems and the breadth of possible solutions. Their goal is to cover a broad enough selection of material to show readers that real tradeoffs exist, and that the impact of those choices can be both subtle and far-reaching.

Advanced Compiler Design and Implementation Cover

Advanced Compiler Design and Implementation, by Steven S. Muchnick, Morgan Kaufmann, 1997. Guides professionals and graduate students in designing and implementing highly optimizing compilers for real-world languages. The author covers a wide range of code optimizations, explaining how to determine the relative importance of the optimizations and the most effective ways to implement them. He uses four case studies of commercial compiling suites, including Sun Microsystem's for SPARC, IBM's for POWER and PowerPC, DEC's for Alpha, and Intel's for Pentium and related processors, to illustrate various approaches to compiler structure, intermediate-code design, and optimization.

Programming Language Pragmatics Cover

Programming Language Pragmatics, by Michael S. Scott, Morgan Kaufmann, 2000. This book addresses the fundamental principles at work in the most important contemporary languages, highlights the critical relationship between language design and language implementation, and devotes special attention to issues of importance to the expert programmer. Thanks to its rigorous but accessible teaching style, you'll emerge better prepared to choose the best language for particular projects, to make more effective use of languages you already know, and to learn new languages quickly and completely.

Compilers Cover

Compilers, by Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Addison-Wesley, 1986. The text begins with an introduction to the principal ideal behind compilation, and then illustrates these ideas by constructing a simple one-pass compiler. The remainder of the book amplifies the ideas presented in the first two chapters and discusses more advanced topics such as syntax analysis, type checking, code generation, and code optimization.

Writing Compilers and Interpreters Cover

Writing Compilers and Interpreters, by Ronald Mak, Wiley, 1996. Grab hold of your C++ because here you'll learn how to use it to write compilers and interpreters-- those programs that translate high-level computer code into machine-executable code. The only C++-based book on compilers and interpreters available, this revised and updated edition shows you the ABC's of reading and listing a program, breaking it into tokens, parsing it, and examining its syntax. Then it shows you how to build an actual interpreter, debugger, and finally, a compiler.

The Interpretation of Object-Oriented Programming Languages Cover

The Interpretation of Object-Oriented Programming Languages, by Iain Craig, Springer-Verlag, 2000. While there are many books on particular languages, especially C++ and Java, they tend to concentrate on how to program using that language and their treatment of the semantics is highly languages-specific. A more wide-ranging comparison of the various languages and their underlying concepts is lacking. The Interpretation of Object-Oriented Programming Languages attempts to provides a comprehensive treatment of the main approaches to object-oriented languages, including:- class-based, prototype, and actor languages. This book will be useful for final year undergraduates/first year postgraduates studying object-oriented programming, as well as research students and others requiring a detailed account of object-oriented programming languages and their central concepts.

Foundations of Object-Oriented Languages: Types and Semantics Cover

Foundations of Object-Oriented Languages: Types and Semantics, by Kim B. Bruce, MIT Press, 2002. In recent years, object-oriented programming has emerged as the dominant computer programming style, and object-oriented languages such as C++ and Java enjoy wide use in academia and industry. This text explores the formal underpinnings of object-oriented languages to help the reader understand the fundamental concepts of these languages and the design decisions behind them.

Essentials of Programming Languages Cover

Essentials of Programming Languages - 2nd Ed., by Daniel P. Friedman, Mitchell Wand, Christopher T. Haynes, MIT Press, 2001. This textbook offers a deep understanding of the essential concepts of programming languages. The approach is analytic and hands-on. The text uses interpreters, written in Scheme, to express the semantics of many essential language elements in a way that is both clear and directly executable. It also examines some important program analyses. Extensive exercises explore many design and implementation alternatives.

The Design and Evolution of C++ Cover

The Design and Evolution of C++, by Bjarne Stroustrup, Addison-Wesley Professional, 1994. Presents the definitive insider's guide to the design and development of the C++ programming language. Provides insights into the aims, principles, and real-world constraints which shaped C++.