Introduction to Computing Systems: From Bits and Gates to C/C++ and Beyond, 3/e (Paperback)

Yale Patt , Sanjay Patel

  • 出版商: McGraw-Hill Education
  • 出版日期: 2020-01-01
  • 定價: $1,600
  • 售價: 9.8$1,568
  • 語言: 英文
  • 頁數: 800
  • ISBN: 1260565912
  • ISBN-13: 9781260565911
  • 相關分類: C++ 程式語言
  • 立即出貨 (庫存 < 4)

商品描述

Description
Introduction to Computing Systems: From Bits & Gates to C/C++ & Beyond is built on the premise that students learn best by building on what they already know, rather than memorizing and accepting what they do not know. The result: a bottom-up approach to understanding computing, giving students a strong foundation in important aspects of computing early in their coursework.

The book is structured in two parts: (a) understanding how a computer works (Chapters 1-10), and (b) programming in a high-level language (Chapters 11-20).

Starting with the switch-level behavior of a MOS transistor (not unlike the switch-level behavior of a light switch in one's kitchen), the student constructs logic gates, then MUXes, Decoders, ALUs, latches, flipflops, culminating in memory and finite state control. Each step of the way, the level of abstraction is raised, with the student understanding how he/she put the current step together. From there, it is a simple matter to define the LC-3, a computer that the student programs in both machine language and assembly language, and then tests and debugs his/her programs with little or no help from the TA! Input and output (VO) are done under both program control and via interrupts, through keyboard and monitor, requiring the student to communicate through device data and status registers. Finally, the student invokes system calls, which are implemented in the LC-3 instruction set architecture.

The second half of the book focuses on high-level language programming in C and C++ and programming methodology. The essential core of C and C++ is taught, including pointers, arrays, recursion, data structures, objects, and object inheritance. All constructs are explained using the context of the LC-3, developed in the first half of the book. By reducing high-level constructs into low-level implementation in the LC-3, students are able to grasp advanced programing concepts such as function calls, dynamic memory allocation, and objects much more quickly and proficiently.

 

FEATURES OF THE THIRD EDITION INCLUDE

  • The LC-3 Simulator-Central to student learning is hands-on access to the LC-3 Simulator, which has been overhauled for use in the third edition. The new version can be used on Linux, Windows, and MacOS platforms, while providing a common graphical interface to the user. New tools have been provided for ease of use by both students and instructors.
  • Debugging-This critical feature has been improved, giving students an easier hands-on experience testing and re-testing their programs as needed until the program runs correctly. We strongly believe that students learn best by "doing" and the Simulator enables exactly that.
  • Programming Methodology-Students are provided with numerous reworked and revised examples on how to take a problem and transform it into a computer program via systematic decomposition. Students gain exposure to the fundamental similarities in programming, whether it be in the LC-3, C or C++, which provides the student with the useful ability to quickly understand other programming languages.
  • Addition of C+--The common core concepts of C and C++ are introduced in Chapters 11 through 19, with Chapter 20 transitioning into important concepts in C++.

商品描述(中文翻譯)

描述
《計算系統導論:從位元與閘到 C/C++ 及更遠》建立在這樣的前提上:學生透過建立在他們已知的基礎上來學習,效果會比單純記憶和接受他們所不知道的內容來得更好。結果是:一種自下而上的計算理解方法,讓學生在課程早期就能夠在計算的重要方面打下堅實的基礎。

本書分為兩個部分:(a) 理解電腦如何運作(第 1-10 章),以及 (b) 在高階語言中編程(第 11-20 章)。

從 MOS 晶體管的開關級行為開始(與廚房中的燈開關的開關級行為相似),學生構建邏輯閘,然後是多路選擇器(MUX)、解碼器、算術邏輯單元(ALU)、鎖存器、觸發器,最終達到記憶體和有限狀態控制。在每一步中,抽象層次逐漸提高,學生理解他/她是如何組合當前步驟的。接下來,定義 LC-3 這台電腦變得簡單,學生可以用機器語言和組合語言編程,然後幾乎不需要助教的幫助就能測試和除錯他的程式!輸入和輸出(VO)在程式控制和中斷下進行,通過鍵盤和顯示器,要求學生通過設備數據和狀態寄存器進行溝通。最後,學生調用系統調用,這些調用在 LC-3 指令集架構中實現。

本書的第二部分專注於 C 和 C++ 的高階語言編程及編程方法論。C 和 C++ 的核心內容被教授,包括指標、陣列、遞迴、數據結構、物件和物件繼承。所有構造都在 LC-3 的背景下進行解釋,這是在本書的前半部分開發的。通過將高階構造簡化為 LC-3 的低階實現,學生能夠更快且更熟練地掌握函數調用、動態記憶體分配和物件等高級編程概念。

第三版的特點包括
- LC-3 模擬器——學生學習的核心是對 LC-3 模擬器的實際操作訪問,該模擬器已為第三版進行了全面改造。新版本可在 Linux、Windows 和 MacOS 平台上使用,並為用戶提供了共同的圖形界面。為了方便學生和教師使用,提供了新的工具。
- 除錯——這一關鍵功能得到了改善,讓學生在測試和重新測試他們的程式時,能夠更輕鬆地進行操作,直到程式正確運行。我們堅信學生通過「實踐」學習效果最佳,而模擬器正是實現這一點的工具。
- 編程方法論——學生獲得了許多重新編排和修訂的範例,學習如何將問題轉化為計算機程式,通過系統化的分解。學生接觸到 LC-3、C 或 C++ 中編程的基本相似性,這使學生能夠快速理解其他編程語言。
- C+ 的加入——C 和 C++ 的共同核心概念在第 11 到 19 章中介紹,第 20 章過渡到 C++ 中的重要概念。

目錄大綱

Table of Contents
1 Welcome Aboard
2 Bits, Data Types, and Operations
3 Digital Logic Structures
4 The von Neumann Model
5 The LC-3
6 Programming
7 Assembly Language
8 Data Structures
9 I/O
10 A Calculator
11 Introduction to C/C++ Programming
12 Variables and Operators
13 Control Structures
14 Functions
15 Testing and Debugging
16 Pointers and Arrays
17 Recursion
18 I/O in C
19 Dynamic Data Structures in C
20 Introduction to C++

Appendix A The LC-3 ISA
Appendix B From LC-3 to x86
Appendix C The Microarchitecture of the LC-3
Appendix D The C Programming Language
Appendix E Useful Tables
Appendix F Solutions to Selected Exercises

目錄大綱(中文翻譯)

目錄
1 歡迎登船
2 位元、資料類型與運算
3 數位邏輯結構
4 冯·诺依曼模型
5 LC-3
6 程式設計
7 組合語言
8 資料結構
9 輸入/輸出
10 計算器
11 C/C++ 程式設計簡介
12 變數與運算子
13 控制結構
14 函數
15 測試與除錯
16 指標與陣列
17 遞迴
18 C 中的輸入/輸出
19 C 中的動態資料結構
20 C++ 簡介

附錄 A LC-3 ISA
附錄 B 從 LC-3 到 x86
附錄 C LC-3 的微架構
附錄 D C 程式語言
附錄 E 有用的表格
附錄 F 選擇性練習的解答