モダンなコンピュータの作り方
- ブール理論
- 背景
- ブール代数
- 論理ゲート
- 実際のハードウェア構築
- ハードウェア記述言語(HDL)
- ハードウェアシミュレーション
- 仕様
- Nandゲート
- 基本論理ゲート
- 多ビットの基本ゲート
- 多入力の基本ゲート
- 実装
- 展望
- プロジェクト
- 背景
- ブール算術
- 背景
- 仕様
- 加算器
- ALU(算術論理演算機)
- 実装
- 展望
- プロジェクト
- 順序回路
- 背景
- 仕様
- D型フリップフロップ
- レジスタ
- メモリ
- カウンタ
- 実装
- 展望
- プロジェクト
- 機械語
- 背景
- 機械
- 言語
- コマンド
- Hack機械語の仕様
- 概要
- A命令
- C命令
- シンボル
- 入出力操作
- シンタックスとファイルフォーマット
- 展望
- プロジェクト
- 背景
- コンピュータアーキテクチャ
- 背景
- プログラム内蔵方式
- ノイマン型アーキテクチャ
- メモリ
- CPU
- レジスタ
- 入出力
- Hackハードウェアのプラットフォーム仕様
- 概観
- CPU
- 命令メモリ
- データメモリ
- コンピュータ
- 実装
- CPU
- メモリ
- コンピュータ
- 展望
- プロジェクト
- 背景
- アセンブラ
- 背景
- Hackアセンブリからバイナリへの変換の仕様
- 構文規約とファイルフォーマット
- 命令
- シンボル
- 例
- 実装
- Parserモジュール
- Codeモジュール
- シンボルを含まないプログラムのためのアセンブラ
- SymbolTableモジュール
- シンボルを含むプログラムのためのアセンブラ
- 展望
- プロジェクト
- プロジェクト
- 背景
- バーチャルマシンとの理論的枠組み
- スタックマシン
- VM仕様
- 概要
- 算術と論理コマンド
- メモリアクセスコマンド
- プログラムアローと関数呼び出しコマンド
- Jack-VM-Hackプラットフォームにおけるプログラム要素
- VMプログラムの例
- 実装
- HackプラットフォームのVMマッピング(第1部)
- VM実装の設計案
- プログラムの構造
- 展望
- プロジェクト
- 実装についての提案
- テストプログラム
- 助言
- ツール
- 背景
- バーチャルマシン#2:プログラム制御
- 背景
- プログラムフロー
- サブルーチン呼び出し
- VM仕様(第2部)
- プログラムフローコマンド
- 関数呼び出しコマンド
- 関数呼び出しプロトコル
- 初期化
- 実装
- Hackプラットフォームの標準VMマッピング(第2部)
- 例
- VM実装の設計案
- 展望
- プロジェクト
- テストプログラム
- 助言
- 背景
- 高水準言語
- 背景
- 例1:Hello World
- 例2:手続きプログラムと配列処理
- 抽象データ型
- リンクリストの実装
- Jack言語仕様
- シンタックス要素
- プログラム構造
- 変数
- 文
- 式
- サブルーチン呼び出し
- Jack標準ライブラリ
- Jackアプリケーションを書く
- 展望
- プロジェクト
- Jackプログラムのコンパイルと実行
- 背景
- コンパイラ#1:構文解析
- 背景
- 字句解析
- 文法
- 構文解析
- 仕様
- Jack言語の文法
- Jack言語のための構文解析器
- 構文解析器への入力
- 構文解析器の出力
- 実装
- JackAnalyzerモジュール
- JackTokenizerモジュール
- CpmplilationEngineモジュール
- 展望
- プロジェクト
- テストプログラム
- 第1段階:トークナイザ
- 第2段階:パーサ
- 背景
- コンパイラ#2:コード生成
- 背景
- データ変換
- コマンド変換
- 仕様
- バーチャルマシンへの標準マッピング
- コンパイルの例
- 実装
- JackCompilerモジュール
- JackTokenizerモジュール
- SymbolTableモジュール
- VMWriterモジュール
- CompilationEngineモジュール
- 展望
- プロジェクト
- 第1段階:シンボルテーブル
- 第2段階:コード生成
- テストプログラム
- 背景
- オペレーティングシステム
- 背景
- 数学操作
- 数字の文字列表示
- メモリ管理
- 可変長な配列と文字列
- 入出力管理
- グラフィック出力
- キーボード操作
- JackOSの仕様
- Math
- String
- Array
- Output
- Screen
- Keyboard
- Memory
- Sys
- 実装
- Math
- String
- Array
- Output
- Screen
- Keyboard
- Memory
- Sys
- 展望
- プロジェクト
- テスト方法
- OSクラスとテストプログラム
- 背景
- さらに先へ
- ハードウェアの実現
- ハードウェアの改良
- 高水準言語
- 最適化
- 通信