nand2tetris
Table of Contents
- Part I: Hardware
- Project 01: Boolean Logic ブール論理
- Project 02: Boolean Arithmetic ブール算術
- Project 03: Memory メモリ
- Project 04: Machine Language 機械語
- Project 05: Computer Architecture コンピュータアーキテクチャ
- Project 06: Assembler アセンブラ
- Part II: Software
- Project 07: VM I: Stack Arithmetic 仮想マシン I: スタック操作
- Project 08: VM II: Program Control 仮想マシン II: プログラム制御
- Project 09: High-Level Language 高水準言語
- Project 10: Compiler I: Syntax Analysis コンパイラ I: 構文解析
- Project 11: Compiler II: Code Generation コンパイラ II: コード生成
- Project 12: Operating System オペレーティングシステム(OS)
Environment
- OS: macOS Sonoma 14.7
- Chip: Apple M3 Max
- Rust 1.85.1 (4eb161250 2025-03-15)
- just 1.40.0
- cargo-workspaces 0.4.0
- gh version 2.67.0 (2025-02-11)
Commands
Part I: Hardware
- Run handware simulator
- Run CPU emulator
Part II: Software
TBD
for Coursera
- Create a submission for Coursera
For example, to create a submission for Project 2, run:
)
)
)
)
)
)
)
)
for Cargo
Install tools
- Install just
- Install cargo-workspaces
Testing
- Run tests for all workspaces
- Run tests for a specific package (= member of the workspace)
cargo-workspaces commands
ref: https://github.com/pksunkara/cargo-workspaces
- Create a new workspace
# for short:
- List workspaces: output the name of each workspace in this project
# jack-compiler
# hack-assembler
- Bump the version of all workspaces
- Publish all the crate from the workspace in the correct order according to their dependencies. By defaullt, this command runs
versionfirst.
# dry run
for release
# tagging on local git repository
# pushing the tag to remote repository & generate release notes
# publish to crates.io
Links
- Nand2Tetris Software Suite