Xcodeの使い方がすこし分かった(と思う。)
Xcodeの使い方が少しわかったと思うのでメモ。
Xcodeで複数の実行ファイルを作成するプロジェクトを作る
Xcodeでは一つの実行ファイルに一つのTargetというものが対応しているみたい。 このTargetというのはプロジェクトについていろいろ設定するところから追加できるみたいだ。
Targetに含まれるソースファイルを指定する。
Target作ったはいいが、ソースファイルはどうやって指定するんだよ、という問題が出てきた。 右側ペインにTargetMembeshipというのが出るので、各ソースファイルごとに指定してやればいい。
特定のTargetをビルドして見る
再生&停止ボタン(?)の隣に、現在ビルド&デバッグするターゲットの名前が表示される。 ここをクリックするとドロップダウンメニューになっていて、ターゲットを切り替えられる。
その隣にもドロップダウンメニューがあって「My Mac 64-bit」って書いてあるから、 多分別のアーキテクチャようにも切り替えられるんだろう。
省力TeX
出来るだけ手間を省いてTeXを書く方法。PandocとXeLaTeXを使います。 Markdownで書いて、必要なとこだけLaTeXで書こうという魂胆。 ここに書いてあることのほとんど全部は ここ に書いてある。
最終目標はMarkdownで書いたレポートの体裁をPDFで出力すること。
Pandoc
Pandocとは
PandocはHaskell製のドキュメントコンバーター。 HTMLの表現力で文書構造を表せるドキュメントを相互変換します。
インストール
- Haskell Platform をインストール
- コンソールから
cabal update
してcabal install pandoc
使い方
実際にどう使うかと言うと、Markdown形式の
sample.md
をsample.tex
に変換するときは、
pandoc sample.md -o sample.tex
とすれば出来る(はず)。
XeLaTeX
XeLaTeXとは
詳しくは解説しないけど、Unicode文字が使えるTeXがXeTeX。 日本語を使おうとすると特殊なLaTeXがいるらしいが、そのうちの一つがこれ。 他に知ってるのはLuaTeX。
インストール
インストールするには、TeXLiveやMikTeXを入れれば入るらしい。
BXjscls
XeTeXではjsarticle(LaTeX専用って知らなかった…)の代わりに BXjsclsをインストールして、 bxjsarticleクラスを使うのがいいと思う。
フォントの注意
フォント技術云々の話がよくわからないが、どうやらXeTeXはフォントについてる情報を 読んで、文字にフォントを当ててるらしいから、そういうUnicodeとの対応表? を持ってるフォントが必要。 どこかの記事でTakaoフォントが使われていた (気がする)。こんな風にフォントを設定するらしい。
\setmainfont{TakaoPMincho}
\setsansfont{TakaoPGothic}
\setmonofont{TakaoGothic}
zxjafontってパッケージを使えば、プリアンブルに、
\usepackage[ms]{zxjafont}
とか
\usepackage[hiragino]{zxjafont}
とか書けばフォント設定が一発で済むんだってさ。 ここが詳しいんじゃないだろうか?
Markdown
今回は文章の本体をMarkdownで書く。 Pandocが対応していれば、MarkdownだろうとTextileだろうと何でもいい。 本文中でTeXの数式を書いてもちゃんと出力されるらしい。(インラインしか試してない)
Pandocで変換
Pandocで変換する。プリアンブルを別のTeXファイルに書いて-Hオプションで挿入するなり、 -Vオプションで、文書クラス、タイトル、編集者を指定するなりして、
pandoc input.md
-H header.tex
-V title=タイトル
-V documentclass=bxjsarticle
--latex-engine=xelatex
-o output.pdf
って出力すればPDFが出来上がる。 今やったら micortypeでエラーが出ました でも普通は上のページみたいに、Pandocの出力を下のみたいなファイルから読み込ませて pdflatexなり何なりでPDFに変換するのがいいと思う。
\documentclass[11pt,a4j]{bxjsarticle}
\usepackage{zxjatype}
\usepackage[ms]{zxjafont}
\usepackage{xltxtra]
\title{Title}
\author{Mith009}
\begin{document}
\maketitle
\input{report}
\end{document}
じゃあXeLaTeXいらないじゃん!!!
π計算
π計算というものがある。 パイ計算というのは、並列計算のモデルで、言わばラムダ計算の並列版なのだとか。
で、日本語で書いてあるページがちょっと前まで探しても見つからなかったけど、 最近は結構検索上位にでも上がってきたのか、1ページ目にまで上がってきている。
ここ(たぶん東大の研究室か何かのページ)に書いてあるのは、本当にさわりだけみたいだ。 たぶん参考資料(英語)を読めってことなんだろうと思う。 やっぱ東大ってやってることはすごいんだな…。
まぁとりあえずわかったこと。
- π計算はチャネルの作成、チャネルへの送信、チャネルへの受信、並列実行からなる。
- 構成要素はプロセス、チャネル、値。
- 作成したチャネルは値として扱える。
- λ計算を自然に変換できる。
分散アルゴリズムってやつをパイ計算で表せば、証明とかも簡単にできるのかもしれないなと思った。 通信系の学生としては、全域木探索やダイクストラ法の分散バージョンがπ計算でどう表されるのかってのが気になる。
…できるよね?
体系SKにおいて定理Bを導く
戸次大介という人の数理論理学という本の第二部第7章のヒルベルト証明論のところの練習問題。
「BCWB'C*がいずれもSKの定理であることを証明せよ」 とりあえずBだけできた。
1. (φ→(ψ→χ))→((φ→ψ)→(φ→χ)) : S
2. (φ→(ψ→χ))→((φ→ψ)→(φ→χ))→((ψ→χ)→((φ→(ψ→χ))→((φ→ψ)→(φ→χ)))) : K
3. (ψ→χ)→((φ→(ψ→χ))→((φ→ψ)→(φ→χ))) : 1, 2, MP
4. ((ψ→χ)→((φ→(ψ→χ))→((φ→ψ)→(φ→χ))))→(((ψ→χ)→(φ→(ψ→χ)))→((ψ→χ)→(φ→ψ)→(φ→χ))) : S
5. ((ψ→χ)→(φ→(ψ→χ)))→((ψ→χ)→(φ→ψ)→(φ→χ)) : 3, 4, MP
6. (ψ→χ)→(φ→(ψ→χ)) : K
7. (ψ→χ)→(φ→ψ)→(φ→χ) : 5, 6, MP
この本は練習問題の回答が載ってないからつらい。 結局、WikipediaのC,B,W,Kシステムのページ見て、 SKIコンビネータとの関係を類推しながらやった。
定理Iの証明を読んでみて、関数適応とMP規則の適用が対応するに違いない!…とか思ってたら、普通にWikipediaに書いてあった…
規則MPが、
P,P→Q⇒Q
だから、引数がPに、関数がP→Qに、値がQに対応するんだろうな。
LLVM
あしたあたりにでもVisualStudion2012でLLVMをコンパイルしてみようかね。