みずぴー日記

人間の再起動ボタンはハワイのビーチにある

『ソフトウェアの基礎』のePub版を公開しました。

Software Foundations(和訳: ソフトウェアの基礎)」はBenjamin Pierce氏らによって書かれたドキュメントであり、Coqによりプログラミングやプログラミング言語の理論が解説されています。基本的な部分から丁寧に解説されているため、Coqの入門書としてもプログラミング言語理論の入門書としても、非常に優れた内容となっています。

今回は、その「ソフトウェアの基礎」のePub版を公開しました。 対応したリーダを用いることで、iPhoneiPadAndroidで本ドキュメントを読むことができます。

f:id:mzp:20120715183609p:plain

ダウンロード

http://proofcafe.org/sf-beta/ からダウンロードできます。 またmobi版もありますが、Kindleを持ってないので、動作確認はしていません。

バグ報告

http://github.com/sfja/sfja へのissues登録もしくは@へのリプライでお願いします。

おまけ: ePub版ができるまで

変換方法

f:id:mzp:20120715154133p:plain

「ソフトウェアの基礎」はCoqdocによって書かれていますが、CoqdocからePubは直接生成できないので、いくつかの段階を踏んで変換しています。

  1. Coqdoc→Markdown: 自作ツールであるmzp/condoc · GitHubを使って変換しています
  2. Markdown→reStructuredText: pandocによって変換しています。
  3. reStructuredText→ePub: Sphinxによって変換しています。
なぜCoqdocを改造しなかったか
let select f1 f2 f3 f4 x =
  match !target_language with LaTeX -> f1 x | HTML -> f2 x | TeXmacs -> f3 x | Raw      -> f4 x

のように変換フォーマットの数が決め打ちされたコードが大量にあり、修正するのが大変だったからです。