「コーディングを支える技術」読み

 もっとコードコードした本かと思ってましたけど、読み物的な内容でした。
いたって普通の内容でしたけど、普通のプログラムについてよく纏まっているので
入門〜中級の間に読むと得るものも多いのでは?

第1章 言語を効率よく学ぶには

はたしてAPLがくる未来はあったのだろうか

第2章 プログラミング言語を俯瞰する

プログラマの三大美徳

無精、短気、傲慢

Perlの名前の由来

practical extraction and report language

第3章 文法の誕生

 名前は聞いてましたけどFORTHのコードは初めて見ました*1
Java,Python,Ruby1.9などはスタックマシン型VMを使用

ルールの競合

c++11でvector> x;の「>>」の間に、スペースを入れないといけない問題はは解決してたと思ったけどます。

第4章 処理の流れのコントロール

普通の構造化の話。
アセンブラ等を交えて。LL畑じゃない人にはforeach構文の説明が「目から鱗」らしい

第5章 関数

普通の関数のお話。

第6章 エラー処理

 エラー処理の基本的な話。
もっと詳しい話は、以下勉強会で取り上げている本が詳しい*2

ExceptionalC++読書会vol.15大阪

 Haskellの人はエラー処理を書かない段階に進んでいるらしいがその辺りの話はなかった

エラー処理を書いてはいけない

 Windows系の話で、SEHは時々聞くが、C/Win32上の例外処理機構だったのね><

構造化例外(Structured Exception Handling SEH)


C++の例外処理に、__finallyを追加したようなの。Javaっぽい。

D言語のscope(exit)による解決

Linusさんなら、”「「C++をもっと良くしよう」という目標」自体が間違えてる”って言ってくれるはず

Javaの検査例外

考え方は正しいが、メンドクサイとのこと。なので.NETには入らなかったらしい

第7章 名前とスコープ

スコープのお話。
ネストしたスコープ(関数の入れ子)の解決に、python3ではnonlocalを使用

第8章 型

型の話。図が多いのでわかりやすい><

暗黙の型昇格

 mruby関連でpython2/3で変化してたのは知っていたけど
問題点がきっちり書かれていて助かる

    x/2 #=> Int or Float?

xがIntかFloatかで結果が変わる。人間が型情報を把握していないと行けないのは変との考えからPython3では修正。

PEP 238 Changing the Division Operator

型のいろいろな展開

C++, Java, Python, Haskell, Scalaを用いて、総称型、ジェネリック、テンプレートについて説明

第9章 コンテナと文字列

 コンテナ周りは、C言語だけしか触ったこと人には「目から鱗」らしい

第10章 並列処理

 トランザクショナルメモリを初めてしったのが、2007/Clojure辺り。
MSさんは2005/ConcurrentHaskellで論文書いてるとのことなので、ここ最近の話ではあるんですね
で、MSさんはSTMに悲観的で.NET対応しないもよう

IBMさんやIntelさんがHTMのっけたから多少流れは変わるのかな?

A (brief) retrospective on transactional memory

第11章 オブジェクトとクラス

 C++のクラスの概念は、ユーザ定義型。
意味を重視するならclassでなくtypeにするべきだが、設計者が新しい用語を作るのを嫌った

読み終わり><



*1:って、逆ポーランド記法そのものかよ><

*2:ステマ