Introduction to Compiler Design: An Object-Oriented Approach Using Java(R)
暫譯: 編譯器設計導論:使用 Java(R) 的物件導向方法
Moore, John I.
- 出版商: Softmoore Consulting
- 出版日期: 2020-10-05
- 售價: $1,650
- 貴賓價: 9.8 折 $1,617
- 語言: 英文
- 頁數: 302
- 裝訂: Quality Paper - also called trade paper
- ISBN: 1734139110
- ISBN-13: 9781734139112
-
相關分類:
Compiler
立即出貨(限量) (庫存=6)
買這商品的人也買了...
-
Binary Hacks -- 駭客秘傳技巧一百招$580$458 -
無瑕的程式碼-敏捷完整篇-物件導向原則、設計模式與 C# 實踐 (Agile principles, patterns, and practices in C#)$790$616 -
Working Effectively with Legacy Code : 管理、修改、重構遺留程式碼的藝術 (中文版)$720$562 -
$477Rust 權威指南 (The Rust Programming Language (Covers Rust 2018)) -
再強一點:用 Go語言完成六個大型專案$780$616 -
$1,400Network Programming with Go: Learn to Code Secure and Reliable Network Services from Scratch -
LLVM Techniques, Tips, and Best Practices Clang and Middle-End Libraries (Paperback)$1,770$1,682 -
黑帽 Python|給駭客與滲透測試者的 Python 開發指南, 2/e (Black Hat Python : Python Programming for Hackers and Pentesters, 2/e)$450$356 -
Spring REST API 開發與測試指南|使用 Swagger、HATEOAS、JUnit、Mockito、PowerMock、Spring Test$580$493 -
Linux 網路內功修煉 - 徹底了解底層原理及高性能架構$780$663 -
演算法生存指南(書況差限門市銷售)$800$632 -
The Rust Programming Language, 2/e (Paperback)$1,800$1,710 -
Smaller C|用於小型機器之精實程式碼 (Smaller C: Lean Code for Small Machines)$680$537 -
白話機器學習$780$616 -
64位元 Debian Linux 作業系統實務 -- Bookworm版$660$647 -
React 思維進化:一次打破常見的觀念誤解,躍升專業前端開發者(iThome鐵人賽系列書)【軟精裝】$790$616 -
Python 風格徹底研究|超詳實、好理解的 Python 必學主題 (Dead Simple Python)$980$774 -
遞迴演算法大師親授面試心法:Python 與 JavaScript 解題全攻略 (The Recursive Book of Recursion)$680$530 -
建構機器學習系統實踐指南$620$490 -
機器學習的訓練資料 (Training Data for Machine Learning)$780$616 -
資料工程基礎|規劃和建構強大、穩健的資料系統 (Fundamentals of Data Engineering)$980$774 -
讓 AI 好好說話!從頭打造 LLM (大型語言模型) 實戰秘笈$680$537 -
日式 RPG 編年史:從 DQ 到 FF,角色扮演遊戲敘事手法完全剖析$380$300 -
軟體工程師的英語使用守則:English for Developers$420$357 -
內行人才知道的系統設計面試指南 第二輯 (System Design Interview – An Insider's Guide: Volume 2)$820$648
相關主題
商品描述
This book is designed primarily for use as a textbook in a one-semester course on compiler design for undergraduate students and beginning graduate students. The only prerequisites for this book are familiarity with basic algorithms and data structures (lists, maps, recursion, etc.), a rudimentary knowledge of computer architecture and assembly language, and some experience with the Java programming language.
A complete study of compilers could easily fill several graduate-level courses, and therefore some simplifications and compromises are necessary for a one-semester course that is accessible to undergraduate students. Following are some of the decisions made in order to accommodate the goals of this book.
- The book has a narrow focus as a project-oriented course on compilers. Compiler theory is kept to a minimum, but the project orientation retains the "fun" part of studying compilers.
- The source language being compiled is relatively simple, but it is powerful enough to be interesting and challenging. It has basic data types, arrays, procedures, functions, and parameters, but it relegates many other interesting language features to the project exercises.
- The target language is assembly language for a virtual machine with a stack-based architecture, similar to but much simpler than the Java Virtual Machine (JVM). This approach greatly simplifies code generation. Both an assembler and an emulator for the virtual machine are provided on the course web site.
- No special compiler-related tools are required or used within the book. Students require access only to a Java compiler and a text editor, but most students will want to use Java with an Integrated Development Environment (IDE).
- One very important component of a compiler is the parser, which verifies that a source program conforms to the language syntax and produces an intermediate representation of the program that is suitable for additional analysis and code generation. There are several different approaches to parsing, but in keeping with the focus on a one-semester course, this book emphasizes only one approach, recursive descent parsing with one symbol lookahead.
商品描述(中文翻譯)
這本書主要設計用作本科生和初學研究生的編譯器設計一學期課程的教科書。這本書的唯一先決條件是對基本演算法和資料結構(如列表、映射、遞迴等)的熟悉,對計算機架構和組合語言的基本知識,以及對 Java 程式語言的一些經驗。
對編譯器的完整研究可以輕易填滿幾門研究生級別的課程,因此在一學期的課程中,為了讓本科生能夠理解,必須進行一些簡化和妥協。以下是為了適應本書目標而做出的一些決定。
1. 本書的重點是專注於編譯器的專案導向課程。編譯器理論保持在最低限度,但專案導向保留了學習編譯器的「樂趣」部分。
2. 被編譯的源語言相對簡單,但足夠強大以引起興趣和挑戰。它具有基本的資料類型、陣列、程序、函數和參數,但將許多其他有趣的語言特性 relegated 到專案練習中。
3. 目標語言是針對一個具有堆疊架構的虛擬機的組合語言,類似於但比 Java 虛擬機(JVM)簡單得多。這種方法大大簡化了代碼生成。課程網站上提供了虛擬機的組譯器和模擬器。
4. 書中不需要或使用任何特殊的編譯器相關工具。學生只需訪問 Java 編譯器和文本編輯器,但大多數學生會希望使用集成開發環境(IDE)中的 Java。
5. 編譯器的一個非常重要的組件是解析器,它驗證源程序是否符合語言語法,並生成適合進一步分析和代碼生成的中間表示。解析有幾種不同的方法,但為了符合一學期課程的重點,本書僅強調一種方法,即帶有一個符號前瞻的遞迴下降解析。