HOME / 日記 / 今日の書評的なところ

Date: 2010/02/19 |  このエントリーをはてなブックマークに追加  |  Tags: Solaris, OpenSolaris, Howto, 利用法

今日の書評的なところ

割と本を買うので、買って目を通したら、書評的なものを書くことにしました。

実は私は「積ん読」はしないタイプで、積ん読するぐらいなら「インデックススキャン」を、10分程度するタイプです。必要ならば脳内でインデックス検索してドリルダウンします。そのため、最初のインデックススキャンでは内容は完全には理解してないことが多く、こんな本というメモで、終わってしまうこともあります。

というわけで

  • 自分のためのメモを残す
  • みんなに紹介できるといいな
  • アフィリエイトでちょっと小銭が入ればいいな((というか、amazonのアレがどの程度の確率なのか知りたいな(笑)))

という為に、書こうかなと。

HTML5&API入門

HTML5を記述からAPIの使い方まで、雑記を記載している本。本の流れとしてはFirefox3.5以降などの新しめのブラウザでは一部の機能が使えるのだから、いまHTML5を勉強しておこーよ!的なところのようです。今、使える機能を中心に、今後の物も含め、実利用できるサンプルコードが記載されており、解説がわかりやすいです。

「HTML5のAPIを使ってがっつりHTML5で行くぜ!」とやるのも面白いですが、実利用ではWEBページにHTML5の機能を軽く先取りする程度は、ビジネスサイトでも行けるかも知れませんね。例えば、Formの新しい機能や、IEでは前からサポートされていたルビ、detailsなどはこのサイトでも使うと楽しいかも知れません。

軽く発祥のきっかけ的なところが書いてありましたので、ほとんどノーマークだった自分的には、歴史的な流れや各社の綱引き情報も想像出来て非常に参考になりました。僕のブログのようにお遊び用ならともかく、ビジネスで使うには主流動向を押さえる必要がありますから。リッチなWEB制作は、今後FlashなのかHTML5なのかという考察が多い中、プロプライエタリなFlashでなくHTML5をという流れも多いのは事実です。まあ実際の所はしばらくFlashであろうなぁとは思いますが、実験はしておいて損はないでしょう。AppleはPostScriptフォントをMacに入れるときにもAdobeと綱引きしていた実績はありますし((結果、TrueTypeをMSと一緒に作っておきながら、最後に鞍替えしてPSフォントを採用した))、MSはSilverlightをガンガン押してますが敗退色が見えたら、いつも通りHTML5をメインに添えてスーパーセットのようなSilverlightを押してくるんじゃないかなぁと(笑)

って、大分書評からは離れてしまったのでこの辺で。

最新コンパイラ構成技法

これは高いけど、本当に良い本。

15分ぐらいでさらっと流し見しかしてませんが、インデックススキャンだけでなく、ドリルダウンをしたい誘惑にかられまくりでした。

基本は、コンパイラを作成するためには・・・という本で、どうやらアメリカでは教科書として使われている本のようなのだけれども、これって日本でも教科書にする学科があるのかなぁ。そう言う勉強出来る学生が羨ましいです。

この本が優れているのは、実装による動作までの流れがある点。

これは、実際の理論と実装が延べられているというだけでなく「実装による動作までの流れ」までが、ストーリーづけられているのが特徴。

「私の解釈では」コンパイラを作成するためには、大きく分けると3つあり、

  1. テキストで書かれた言語を解釈する部分。
  2. 上をデータ化する部分
  3. データ化したものを実行する形に治す部分
    • インタプリタであればデータ化するものを実行するエンジン。

という、流れがあります。1は、Yacc(Bison)/ lex(flex)などを使い作りますが、これに関する本は、日本語でも少ないながらも多少はありました。

この本が面白いのは、その後の処理として、2、3の話がきちんと書かれていることです。2はプログラマの勘所によるものが多く、体系づけられた書籍があまり日本語でないのが(多分)実状だと思うのですが、そこがきちんと書かれてるのが面白いです。3番目はいざ実行するに当たる部分で、コンパイラとインタプリタは実装のフェーズで方法論が異なります。

さて、この本では、私が上げた上の3つの点がどのように書かれているかというと、

  1. テキストで書かれた言語を解釈する部分。
    • 字句解析、構文解析、抽象構文、意味解析
  2. 上をデータ化する部分
    • 駆動レコード、中間コードへの変換、基本ブロックとトレース、命令選択、生存解析、レジスタ割当
  3. データ化したものを実行する形に治す部分
    • データフロー解析、ループ最適化、静的単一代入形式・・・

などなど。

面白いのは、その後のセクションで、ガーベジコレクションや、最適化に関する話まで延べられていることです。このあたりになると、実際にコンパイラを使っている人達や、インタプリタを使っている人達にとっても、「中がどのように動いてるのか?」という所で想像がつき、より深い理解が進むかと思います。

こういう本に10年ぐらい前に会いたかったなあ(笑)

実は、私はその昔、会社でHeartfelt Heartというゲームソフトウェアをつくったのですが、これのコンパイラはYacc/Lexで書かれており、入れ子や四則演算、関数などがつかえるシナリオコンパイラがありました。

追ってその後、Symreqという単純なお問い合わせプログラムを作ったのですが、この中で、その部分的なものを簡単なツールで入れ込んであり、Symreq Scriptみたいなものがかける様になっています。ブロック要素を抜き、1行解釈型にしましたが、コンパイラの部分はYacc/Lexで、実際の実行エンジンはPerlで作っているPerlの上で動くインタプリタです。こっちはオープンソースなのでソースは全部公開されてます。バグも多いし我ながら酷い状態だし、メンテもされてませんけど(笑)、シンプルな実装例にはなっているかと思います。

また、PukiWiki互換Wikiパーザをもつ弊社のWikiPlusですが、どうしても、Wikiパーザに入れ子がかけなかったり、Wikiパーザ中で四則演算が出来なかったり、色々不満があったりします。そう言うのを含めて、パーザをYacc/Lexで書き直した、Brand New Wiki Parserなるものを作りたいな〜とは前々からずっと思ってはいるものの、こういう部分デバッグも僕の仕事の役割的にも難しいので、主となって開発するのはむりだろうなぁと思ってたりしました。

久しぶりに、そんなことを思い出してしまうような書籍でした。

時間が出来たらじっくり読みたいなと思います。



日記

Recent Updates

openjdk(SPARC)

SPARC用のJAVA。 最近は新しいバージョンがSPARCでリリースされず、苦労している人も多いのですが、SPARC Solarisの界隈人達がビルドして代わりに使われているものです。 Solaris 11 SPARC jdk builds
»続きを読む

Solaris11のCPU(Critical Patch Unit)の当て方

コンピュータTips/Solaris/Solaris11のCPU(Critical Patch Unit)の当て方

Solaris 11.4には4つのリビジョンがあります。 2024年4月現在、Solaris自体の開発はメンテナンスフェーズになったわけでもなく、SRU毎に、最新機能がモリモリ入っていきます。 GA(Release 版) 一応、無償のOTNライセンスの利用も可能 いわゆる、リリース時点のバージョンのことですが、現在は 利用しません 。 以前は、1〜2年に1度の頻度でリリ …
»続きを読む

Emacs.appで書類(Documents)がアクセス出来ないとき

コンピュータTips/MacOSX/Emacs.appで書類(Documents)がアクセス出来ないとき

Catalina以降の権限問題なので、システム設定のセキュリティとポリシーの中にあるプライバシー内のFull Disk Accessに、Emacs.appと/usr/bin/rubyを入れればすむ。 /usrフォルダを、プライバシーの+から入れるのは、ちょっと面倒なので、あらかじめFinderのお気に入りの中に入れておくと良いでしょう。   rubyが入るのは、Emac …
»続きを読む

SONY WH-1000XM3

自分用メモです。 ノイズキャンセラーの性能が良い。 WH-1000Xのころは、ノイズキャンセラーを有効すると、音は聞こえないのに妙な音圧があったが、それがかなり軽減。個人的には気にならなくなった。 また、WH-1000Xのころは、ノイズキャンセラーを無効にしても、なんか作られたような音が出ていたような気がしたが、割と普通に聞こえる。 USB-Cになったのも良い。飛行機でも使う …
»続きを読む

Catalina(10.15)

Catalina Beta を入れ始めたので、自分用のまとめ。 2019/10/8、Catalinaが振ってきたので製品版用に記載を変えました。 32bitアプリを確認すること。 Activity Monitorで32bitアプリがわかるので、そういうアプリがあるなら代替品を見つけておくこと。 /etc以下のいくつかのファイルをバックアップしておくこと。 /etc …
»続きを読む

ディスクの不良を確認する(iostat -EnのError等)

ディスク関係のスタックをざっくり書くと次の様になっています 例、SAS Expanderを使う場合、 例、AHCIなどを使う場合、 これらのエラーは、次の様なコマンドで知ることができます。 出力結果例 このなかで、 たとえば、SATAディスクを利用している際に負荷が上がってしまい、ディスクの応答が間に合わないシチュエーションでは、Transport Errorが一気に …
»続きを読む

2017年、新年明けまして、おめでとうございます。

日記/2017年、新年明けまして、おめでとうございます。

新年明けまして、おめでとうございます。今年もよろしくお願いします。 昨年中は、皆様にお世話になりました。 昨年は、コツコツと3年程前から行ってきた改革がある程度完成された年で、この先5年、10年を見据えて、次のフェーズへと進む為の土台が完成した年でもありました。 それにキャッチアップする形で、個々の従業員一同が、役割を自覚し、明確に動けた年であったかと考えています。 …
»続きを読む

RSA鍵認証のみにし、Password認証を無効化する

意外に覚えきれなくて、いつも忘れるので、メモついでに残しておきます。 古いOpenSSHや、SunSSHの場合は、これも無効にします。 ユーザ目線でのザックリとした説明を。OpenSSHではなく別のSSH実装も含めて考えているので、OpenSSHのソースをじっくり読んだわけではないため、間違ってたらすみません。 まず、Password認証を無効にする場合、 PasswordAut …
»続きを読む

最新  |  << 前ページ  |  次ページ >>  |  最初