Mojo 入門

Mojo 入門

Python プログラマーのための実践ガイド

Python を書ける人が、Mojo の書き方と考え方を、実際に手を動かしながら身につけるための教科書です。コード例はすべて実際に実行し、その結果をそのまま載せています。

この本のコード例は Mojo 1.2.0 で実行して確認しています。

第I部 はじめに

Mojo を入れて、プログラムを書き、動かすところまでを一通り体験します。

  1. 第1章 Mojo を始めるMojo とはどんな言語かを知り、Windows の WSL に開発環境を作って、最初のプログラムを実行・ビルドします。最後に、エラーメッセージの読み方を身につけます。
  2. 第2章 Mojo のプログラムはどう動くかソースコードが機械語になって動くまでの流れをつかみ、run と build の時間を測ります。プログラムファイルの組み立て方、ファイルの分割、標準ライブラリの読み込み、mojo format、エラーの種類、mojo のサブコマンドを学びます。

第II部 型と値

数値・文字列・コレクションなど、Mojo で扱う値の種類と、静的な型の考え方を学びます。

  1. 第3章 数値型と SIMD 入門Mojo の整数・浮動小数点数・Bool の性質を、Python との違いに注目して学びます。オーバーフロー、型の変換、math モジュール、そして1回の命令で複数の値を計算する SIMD の入り口までを扱います。
  2. 第4章 文字列Mojo の文字列は UTF-8 で保存されます。そのため len() も s[0] も Python のようには使えません。長さ・添字・スライス・メソッド・数値との変換・書式づくりを、実際のエラーを見ながら身につけます。
  3. 第5章 List・Dict・Set・OptionalPython の list・dict・set にあたる List・Dict・Set と、「値がないかもしれない」を型で表す Optional の使い方を学びます。範囲外のアクセスや存在しないキーなど、うまくいかないときの動きも実際に確かめます。
  4. 第6章 静的型付けの考え方型がコンパイルのときに決まり、検査されるとはどういうことかを、Python との違いを実際に動かしながら学びます。型推論、引数の型、暗黙の変換をしない理由、型とメモリの関係、ジェネリクスの入り口までを見て、第II部を締めくくります。

第III部 文と構文

変数、条件分岐、くり返し、エラー処理など、プログラムの流れを組み立てる文法を学びます。

  1. 第7章 変数・代入・式準備中
  2. 第8章 if・while・for準備中
  3. 第9章 エラー処理準備中

第IV部 関数

関数の定義から、引数の渡し方と所有権、コンパイル時パラメータまでを学びます。

  1. 第10章 関数の基本準備中
  2. 第11章 引数の渡し方と所有権準備中
  3. 第12章 コンパイル時パラメータ準備中

第V部 構造体とトレイト

自分で型を作る方法と、型に共通の約束ごとを与えるトレイトを学びます。

  1. 第13章 struct準備中
  2. 第14章 ライフサイクル準備中
  3. 第15章 トレイトとジェネリクス準備中

第VI部 実用

Python との連携、テストとデバッグ、モジュールとパッケージなど、実際の開発に必要なことを学びます。

  1. 第16章 Python との連携準備中
  2. 第17章 テストとデバッグ準備中
  3. 第18章 モジュールとパッケージ準備中

第VII部 性能

性能の測り方から、SIMD・並列化・メモリレイアウト・GPU まで、Mojo の速さを引き出す方法を学びます。

  1. 第19章 性能を測る準備中
  2. 第20章 SIMD・ベクトル化・並列化準備中
  3. 第21章 メモリのレイアウトとポインタ準備中
  4. 第22章 GPU プログラミング入門準備中
  5. 第23章 総まとめ:小さなプロジェクトを作る準備中