Mojo 入門
Python プログラマーのための実践ガイド
Python を書ける人が、Mojo の書き方と考え方を、実際に手を動かしながら身につけるための教科書です。コード例はすべて実際に実行し、その結果をそのまま載せています。
この本のコード例は Mojo 1.2.0 で実行して確認しています。
第I部 はじめに
Mojo を入れて、プログラムを書き、動かすところまでを一通り体験します。
- 第1章 Mojo を始めるMojo とはどんな言語かを知り、Windows の WSL に開発環境を作って、最初のプログラムを実行・ビルドします。最後に、エラーメッセージの読み方を身につけます。
- 第2章 Mojo のプログラムはどう動くかソースコードが機械語になって動くまでの流れをつかみ、run と build の時間を測ります。プログラムファイルの組み立て方、ファイルの分割、標準ライブラリの読み込み、mojo format、エラーの種類、mojo のサブコマンドを学びます。
第II部 型と値
数値・文字列・コレクションなど、Mojo で扱う値の種類と、静的な型の考え方を学びます。
- 第3章 数値型と SIMD 入門Mojo の整数・浮動小数点数・Bool の性質を、Python との違いに注目して学びます。オーバーフロー、型の変換、math モジュール、そして1回の命令で複数の値を計算する SIMD の入り口までを扱います。
- 第4章 文字列Mojo の文字列は UTF-8 で保存されます。そのため len() も s[0] も Python のようには使えません。長さ・添字・スライス・メソッド・数値との変換・書式づくりを、実際のエラーを見ながら身につけます。
- 第5章 List・Dict・Set・OptionalPython の list・dict・set にあたる List・Dict・Set と、「値がないかもしれない」を型で表す Optional の使い方を学びます。範囲外のアクセスや存在しないキーなど、うまくいかないときの動きも実際に確かめます。
- 第6章 静的型付けの考え方型がコンパイルのときに決まり、検査されるとはどういうことかを、Python との違いを実際に動かしながら学びます。型推論、引数の型、暗黙の変換をしない理由、型とメモリの関係、ジェネリクスの入り口までを見て、第II部を締めくくります。
第III部 文と構文
変数、条件分岐、くり返し、エラー処理など、プログラムの流れを組み立てる文法を学びます。
- 第7章 変数・代入・式準備中
- 第8章 if・while・for準備中
- 第9章 エラー処理準備中
第IV部 関数
関数の定義から、引数の渡し方と所有権、コンパイル時パラメータまでを学びます。
- 第10章 関数の基本準備中
- 第11章 引数の渡し方と所有権準備中
- 第12章 コンパイル時パラメータ準備中
第V部 構造体とトレイト
自分で型を作る方法と、型に共通の約束ごとを与えるトレイトを学びます。
- 第13章 struct準備中
- 第14章 ライフサイクル準備中
- 第15章 トレイトとジェネリクス準備中
第VI部 実用
Python との連携、テストとデバッグ、モジュールとパッケージなど、実際の開発に必要なことを学びます。
- 第16章 Python との連携準備中
- 第17章 テストとデバッグ準備中
- 第18章 モジュールとパッケージ準備中
第VII部 性能
性能の測り方から、SIMD・並列化・メモリレイアウト・GPU まで、Mojo の速さを引き出す方法を学びます。
- 第19章 性能を測る準備中
- 第20章 SIMD・ベクトル化・並列化準備中
- 第21章 メモリのレイアウトとポインタ準備中
- 第22章 GPU プログラミング入門準備中
- 第23章 総まとめ:小さなプロジェクトを作る準備中