Introduction to Programming Language
The basic operational design of a computer system is called its architecture. John von Neumann, a pioneer in computer design, is credited with the architecture of most computers in use today. A typical von Neumann system has three major components: the central processing unit (CPU), or microprocessor; physical memory; and input/output (I/O). In von Neumann architecture (VNA) machines, such as the 80x86 family, the CPU is where all the computations of any applications take place. An application is simply a combination of machine instructions and data. To be executed by the CPU, an application needs to reside in physical memory. Typically, the application program is written using a mechanism called programming language. To understand how any given programming language works, it is important to know how it interacts with the operating system (OS), software that manages the underlying hardware and that provides services to the application, as well as how the CPU executes applications. In this chapter, you will learn the basic architecture of the CPU (microcode, instruction set) and how it executes instructions, fetching them from memory. You will then learn how memory works, how the OS manages the CPU and memory, and how the OS offers a layer of abstraction to a programming language. Finally, the sections on language evaluation will give you a high-level overview of how C# and common language runtime (CLR) evolved and the reason they are needed.