min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

オライリー本「プログラミング文体練習(Pythonで学ぶ40のコードスタイル)」

ハピタス登録で1,000円分になるURL

その買うを、もっとハッピーに。|ハピタス

 

恋愛小説「高慢と偏見」Pride and Prejudice

プロジェクト・グーテンベルクのサイトからDLできる。

www.gutenberg.org

 

この恋愛小説の全単語を分析し、頻出単語上位25までを並べるだけのプログラムを、様々なコード文体(たとえばアセンブリ言語的な)で実装する試みをしているのがこの本。

言語はPythonを使うけど、文体(スタイル)が40手法(アセンブリ言語的なのとか)で試してて面白い。

 

 

p3(アセンブリ言語のスタイル)での書き出し。

実行。



 

やってることはつまりコレ

$ cat my40p0_PrideAndPrejudice.txt | mecab | grep 名詞 | awk '{print $1}' | sort | uniq -c | sort

いろいろ文体(スタイル)あって楽しめそう。しばらく書き殴る。

 

気になった点

p9 チューリングマシンフォン・ノイマンアーキテクチャ

P17 チャールズ・ムーアー(コンピュータ界の異端児)、印刷用スタックマシン言語PostScript

P23 配列プログラミング、線形代数、多次元配列、APL設計者ケネス・アイバーソン(1962年)『A Programming Language』、APLワンライナー、タートマスBASIC、1970年統計処理用プログラミングシステムS(Rの前身)、1980年代MATLAB(強力な配列演算サポート)、NumPy、Julia(ベクトル演算をサポート)

P29 循環的参照度(Cyclomatic complexity)、プログラムテキストの複雑さ(特に制御フロー経路の量を測定するための指標)

CC = E - N + 2P(E:エッジの数、N:ノード数、P:出口ノード数)

Flesch ReadingEaseテスト、Flesch-Kincaid grade level テスト(Microsoft Wordの文書校正機能)

P31 Dikstra,E.(1968)Go To statement considered harmful, Communications of the ACM 11(3):ダイクストラのgotoに対する怒りを表した古典的論文

Knuth, D.(1974)Structured programming with go to statements, ACM Computing Surveys. ダイクストラの怒りに対する、数ある反論の中で最も優れたもの

http://www.npl.co.uk/about/history/notable-individuals/turing/ace-proposal

www.npl.co.uk