What & How & Why

这是本文档旧的修订版!


Virtual Machine / Part I

Week 1 notes


VM(Virtual Machine)是 Jack 语言的中间层,其负责将 high-level 语言转化为汇编:

Compilcation Overview

Two tiers compilation

为什么会有这种架构:

  • 计算器的构成不同,导致机器语言不同
  • 直接面向机器语言的编译器是 machine language depended,编译器实现不同。
Tier I: virtual machine

VM 的理念就是将所有的高级语言翻译为一种抽象化的代码:VM code(bytecode)。在这个层级中,编译器不关心具体的机器语言实现,而是将所有的计算机统一视作虚拟机(Virtual Machine

Tier II: virtual machine implementation

本层级负责具体的,基于计算机类型的实现。具体的工作是将虚拟机中的 bytecode 转化为基于特定机器语言的映射实现。

Jack compilation

  • Jack compiler: Jack 语言 → VM code
  • VM emulator:VMcode to PC & Hack computer