skip to main content
Skip header Section
Compiling for the .Net Common Language RuntimeOctober 2001
Publisher:
  • Prentice Hall PTR
  • Upper Saddle River, NJ
  • United States
ISBN:978-0-13-062296-9
Published:01 October 2001
Pages:
450
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

From the Publisher: Go "under the hood" with .NET's Common Language Runtime! The definitive book for serious software engineers, compiler developers, and language implementers Mapping any language's key features onto .NET's common object model Comprehensive coverage of Microsoft Intermediate Language (MSIL) Includes extensive examples drawn from C# The first practical guide to Microsoft's .NET Common Language Runtime! Compiling for the .NET Common Language Runtime (CLR) is the first book to give software engineers all the details and guidance they need to create full-featured .NET compilers or implement programming languages for the .NET environment. Renowned compiler expert John Gough presents an unprecedented "under the hood" inspection of Microsoft's .NET CLR, illuminating the key concepts underlying Microsoft's new technology and demonstrating exactly how CLR maximizes interoperability across multiple programming languages. The book uses a running example to illustrate its key points(Gough's own open source Gardens Point Component Pascal compiler(which can be used as a basis for sophisticated experimentation. Reviews every element of CLR: Virtual Execution Engine, Base Instruction Set, Common Type System, and more Shows how to map a language's key features onto the .NET Virtual Object System's common object model Explains how CLR represents programs at compile time Explores the semantic analysis performed by CLR prior to emitting Microsoft Intermediate Language (MSIL) code Provides in-depth coverage of MSIL code generation Covers features needed by alanguages Explores advanced topics such as accessing nonlocal variables and supporting multiple inheritance Includes many examples drawn from Microsoft's new C# language If you need absolute mastery over the .NET CLR, only one book delivers what you're looking for: Compiling for the .NET Common Language Runtime (CLR) by John Gough.

Cited By

  1. Rokicki S, Rohou E and Derrien S (2019). Hybrid-DBT: Hardware/Software Dynamic Binary Translation Targeting VLIW, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 38:10, (1872-1885), Online publication date: 1-Oct-2019.
  2. ACM
    Li W, White D and Singer J JVM-hosted languages Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, (101-112)
  3. Son Y and Lee Y A study on optimization techniques for the smart virtual machine platform Proceedings of the 4th international conference on Future Generation Information Technology, (167-172)
  4. Kelly W and Gough J Ruby.NET Proceedings of the thirty-first Australasian conference on Computer science - Volume 74, (37-46)
  5. ACM
    Bläser L A high-performance operating system for structured concurrent programs Proceedings of the 4th workshop on Programming languages and operating systems, (1-5)
  6. Haller P and Odersky M Event-Based programming without inversion of control Proceedings of the 7th joint conference on Modular Programming Languages, (4-22)
  7. ACM
    Waite W (2006). The compiler course in today's curriculum, ACM SIGCSE Bulletin, 38:1, (87-91), Online publication date: 31-Mar-2006.
  8. ACM
    Waite W The compiler course in today's curriculum Proceedings of the 37th SIGCSE technical symposium on Computer science education, (87-91)
  9. ACM
    Yu Y, Rodeheffer T and Chen W RaceTrack Proceedings of the twentieth ACM symposium on Operating systems principles, (221-234)
  10. ACM
    Yu Y, Rodeheffer T and Chen W (2005). RaceTrack, ACM SIGOPS Operating Systems Review, 39:5, (221-234), Online publication date: 20-Oct-2005.
  11. ACM
    Chang B, Chlipala A, Necula G and Schneck R The open verifier framework for foundational verifiers Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation, (1-12)
  12. Banerjee A and Naumann D History-based access control and secure information flow Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, (27-48)
  13. Singer J JVM versus CLR Proceedings of the 2nd international conference on Principles and practice of programming in Java, (167-169)
  14. Bauer L, Ligatti J and Walker D Types and effects for non-interfering program monitors Proceedings of the 2002 Mext-NSF-JSPS international conference on Software security: theories and systems, (154-171)
Contributors
  • Queensland University of Technology
  • Queensland University of Technology

Recommendations

Reviews

Arthur Gittleman

This is a book about code generation for the Microsoft .NET common language runtime (CLR). The book uses a running example, the Gardens Point Component Pascal compiler, whose source is provided for downloading and experimentation. One can also generate code for the Java virtual machine for comparison. By exposing a common type system, the CLR allows languages to interoperate at the object level. A Visual Basic .NET class can inherit from a C# class. Even COBOL has a .NET version, as does Eiffel, an interesting object-oriented language. The common language specification defines a subset that defines the features exposed at language interoperation boundaries. Chapters 2, 3, and 4 deal with the characteristics of the .NET platform from the point of view of the language implementer. Chapter 2 outlines the instructions of the common intermediate language (CIL). Chapter 3 addresses the common type system. Chapter 4 discusses mapping to the CLR with illustrations using Component Pascal. The author argues that building an abstract syntax tree is always best, and describes that process in chapter 5. In chapter 6, he shows how to evaluate semantic attributes. Chapter 7 provides an overview of code generation for .NET. The next two chapters cover code generation for expressions and flow of control. Chapter 10 deals with interfacing to external code. Two more chapters on remaining issues and two appendices conclude the book. Readers should be familiar with the basic concepts of programming languages and their implementations. They should be familiar with the usual data structures and with object-oriented programming. This is not a textbook, having no exercises and no introduction to scanning and parsing. However, the book could serve as the basis for a very valuable and instructive project course. The book is ideal for anyone interested in compiling for .NET. It is well written, by an expert with thorough knowledge of the subject matter. .NET developers who understand its details at this level will surely be helped to write better code, but the emphasis on compilation may make this book slightly too specialized for many readers. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.