コンパイラ読んだ

コンパイラ [コンピュータサイエンス教科書シリーズ] (コンピュータサイエンス教科書シリーズ 8)

コンパイラ [コンピュータサイエンス教科書シリーズ] (コンピュータサイエンス教科書シリーズ 8)

コンパイラという本を読んだ.コンパイラに関する本といえば,

コンパイラ―原理・技法・ツール (Information & Computing)

コンパイラ―原理・技法・ツール (Information & Computing)

最新コンパイラ構成技法

最新コンパイラ構成技法

この辺が定番だと思うのだけれど,まだまだ敷居が高かったのでとりあえずこれを読んでみた. 監修は中田育夫という人です. 中田さんはのRuby仕様書のISO規格に関わっている方で,日本でコンパイラで有名な方です. 学生時代にMatzさんは,中田さんの研究室に所属していて,恩師でもあるそう. ちなみに中田さんのコンパイラ本はこれ.

コンパイラの構成と最適化

コンパイラの構成と最適化

これも日本人が書いたコンパイラ本としては定番らしい.

話は戻って今回の本ですが,大きく「字句解析」「構文解析」「意味解析」「実行時環境」「仮想計算機とコード生成」の章がある. lexとyaccを実際に使いながら簡単な字句解析や構文解析,意味解析などを学び,ミニ言語をつくったりする. 教科書として書かれているので,大学の講義レベルで,それぞれの章のテーマについて基本的な説明から始まり,演習問題とその解答もあって勉強になる. 以下,簡単な章の内容の紹介です.

字句解析

まず字句解析については,lexを使いながら,簡単な字句解析やC言語のソースにたいして,予約語,識別子の認識やクロスリファレンサをつくることが学べる. オートマトンや状態遷移図についても書かれている.

構文解析

いくつかの上向き構文解析,下向き構文解析などについて書かれている.四則演算やミニ言語の開発が学べる.

意味解析

トークンの並びが文法に合っていても,例えばC言語では,宣言された変数でなければ使用することができないなど,コンパイラはそれを発見しなければならない. このようなチェック処理が意味解析と呼ばれる. 例えば,どのような変数が存在するのかなどの管理を行なう入れ子型の静的スコープを扱った記号表の実装が学べる.

実行時環境

実行時のメモリ管理の仕方について書かれている.特に活性レコードと呼ばれる,関数呼び出しに対するメモリ割り当てられるメモリ領域について説明されている.

仮想計算機とコード生成

PL/0言語を用いて仮想計算機のためのコード生成について学べる.

以上です.次は,

言語実装パターン ―コンパイラ技術によるテキスト処理から言語実装まで

言語実装パターン ―コンパイラ技術によるテキスト処理から言語実装まで

理論よりも実践的に書かれているらしい,この辺を読もうかなと思っている.

今おすすめのゲーム実況者を紹介する

ニコニコアドベントカレンダーの13日目です.まあ僕1人しか集まらなかったんですけどね.

任天堂がクリエイター奨励プログラムに対応しましたね.ヤッタ!任天堂のゲームであれば,何も気にすることなくゲーム実況をできるし,楽しめます!これはすごく嬉しい.

ということで,みなさんはどれくらいゲーム実況を見ているのでしょうか?今や,僕の時間の大部分を削っているゲーム実況動画について.最近,よく見ているなかでも,おすすめのゲーム実況者を紹介したいと思います.

牛沢

歌い手の湯毛,ゲーム実況者のtowaco,フルコンが集まってゲーム実況をするチーム湯豆腐!というものがあり,その中の1人.ゲスさと小物臭を漂わせる実況スタイルで,ゲス沢と呼ばれたりする.自分は絶体絶命都市から見ており,主人公につける名前のネーミングセンスには草不可避.

牛沢のゲスさと小物臭が光っていておもしろい.

せんとす

格ゲー歴が長く.実力もある有名な格ゲー実況者.格ゲー以外にもいろいろなゲームを実況している.はじめて見た動画はおそらく,スパⅣの動画で,当時格ゲーには興味がなかった僕が,スパⅣを購入してしまうぐらい,魅力的でおもしろい実況だった.

「動画勢」という格ゲーを実際に全くプレイすることなしに,ただ観るだけの人を表す言葉までできるくらいで,格ゲーの魅力を広めた1人ではないでしょうか.

sin

プレイ動画「○○でたわむれるシリーズ」の投稿者.主に,スマブラとマリカーの実況を見ている.実況もおもしろいのだが,sinさんの魅力は何と言っても,ゲームのうまさ.とにかくうまくて,それだけでもおもしろい.

黒猫道

ゆっくり実況で,チートバグの人.ヒテッマンリスペクトというタグが存在していて,その動画の1つ.ヒテッマンリスペクトとは,ヒテッマンという人が作成したチートによるバグ動画をリスペクトしていることを表している.音バグや動作のバグ,文字のバグなどいろいろあっておもしろい.

僕自身ヒテッマンリスペクトというタグは最近知って,こんなにおもしろいタグがあったのかと衝撃を受けた.見つけたときは,一日で全部イッキ見した.個人的に「晦-つきこもり」のチートバグは最高で,腹筋崩壊待ったなし.ゲーム実況は結構見ているという自負があったのだが,まだまだ知らない世界があるのだろうか…

わいわい

関西弁のゲーム実況者.はじめて見たときは結構衝撃的だった,芸人のような口調で,ゴリゴリの関西弁で実況する割りと異色(?)のゲーム実況者.鋭いツッコミとテンポの良い関西弁がおもしろい.あとたまに宮川大輔など関西弁の芸人に似た声になる.

さいごに

ゲーム実況は本当におもしろい.ゲーム実況は遡ってみると,父親がゲームをやっているのをよく見ていた記憶がある.とくに小学生のころなんかはバイオハザードが怖いし難しいしで僕にはとても遊べなかった.ゲームは昔から見ているだけでも楽しめるものだった.それが,ニコニコ動画などができたことで大きな広がりを見せることになったと思う.

しかし,ゲームのプレイ動画をアップロードすることは,著作権的には違反になるし,ゲーム実況自体は,グレーゾーンであると言われたりする. また,ゲームが実況プレイという形で共有されることで,そのゲームは買われてなくなってしまっているのか?それとも,よりゲームは売れているのか?ということが言われたりしている.これに関しては,やはりゲームによると思う.ネタバレが重要な要素であるゲームにとっては,購買意欲が削がれる可能性があるし,逆に,格ゲーなどは,そういった要素はなく,むしろ宣伝になるのでゲーム実況推奨だと思う.

ゲームはプレイするだけじゃなくて,観ることでも楽しめるような環境になってきた.この流れにうまく対応しようとしているところとして任天堂があると思う.任天堂クリエイター奨励プログラムに自社のゲームソフトを対応させた.

これは,ゲーム実況というものがゲーム会社にとっては,無視しきれない大きな流れになっていることを象徴する出来事だったと思う.ぼくはゲーム実況も任天堂も好きで,すごく嬉しかった.これからはゲームを作って,売って終わってしまうのではなく,その後のプレイしてもらう環境づくりもしていかなくてはならなくなったということだと思う.

また,ニコニコは新たに闘会議というイベントを始めた.リアルイベントでゲームというコンテンツを通して,体験の共有などに価値を置かれるようにもなってきている.eスポーツと呼ばれるものでは,賞金として平気で何億円というお金が動いている.

ゲーム実況の登場によって,今後ゲームコンテンツにどのような影響を与えるのかはわからない.ただ,これからのゲーム業界はもっともっと面白くなっていくと思う.エンターテイメントはおもしろいほうがいいに決まってる!僕はそう信じてる

参考リンク

「キャラ萌え化」の波はここにまで!! JD1年生がゲーム実況動画にハマった理由 | ねとぽよ

【CEDEC2014】ニコニコ動画の「ゲーム実況」はなぜ人気?ゲーム売上への貢献、使いこなすための注意点、人気実況者になるためのコツも…!

ゲームプレイ動画の未来について、これはマックスむらいの話ではない。 - appbankのわくわく日記!

ニコ動の実況プレイでゲーム売上が伸びたという実話 | AUTOMATON

「食ってるだけで年収1,000万円の女」韓国のニコ生と呼ばれるアフリカTVのビジネスモデル「星風船」(ネット版の投げ銭)の裏側にせまる。 | アプリマーケティング研究所

セキュリティについて勉強した資料

の6日目です.

セキュリティについて勉強したときに読んだモノを紹介したいと思います.

暗号

新版暗号技術入門 秘密の国のアリス

新版暗号技術入門 秘密の国のアリス

暗号の本といえばこれではないでしょうか.暗号学者の道具箱と表現された6種類の技術(対象暗号,公開鍵暗号,一方向ハッシュ関数,メッセージ認証コード,デジタル署名,擬似乱数生成器)を中心に説明されている.自分で実装できるレベルに詳細に書かれているが,丁寧に図解・フローチャートを書いて説明されていて,とてもわかりやすく,「うんうん,なるほど」という感じでどんどん読める.オススメです.

ウェブ

ウェブに関するセキュリティといえばこの本ではないでしょうか.

またこのページでは実際に,XSSCSRFなどを体験できる.

このページには「安全なウェブサイトの作り方」と「安全なSQLの呼び出し方」の2つのPDFが公開されている.

バイナリ

たのしいバイナリの歩き方

たのしいバイナリの歩き方

軽いバイナリの読み方と,バイナリから見たセキュリティについて書かれている.例えば,バッファオーバーラン脆弱性をついて,シュルの制御を奪取するくシェルコードの書き方などが学べる. シェルコードについて解説はここが詳しい.その他のページもいろいろ学びがある.

またこの本は,ツールやその使い方の紹介などが多く.本書を読んでバイナリについて詳しくなれるかといえば,そうでもないと思う.バイナリの世界に入る良いキッカケになると思います.

その他いろいろ

Webアプリケーション、C/C++などにおけるセキュアなプログラミングについて学べる

kusano_kさんによる実際に報告した脆弱性などが書かれています

ハック,クラック,リバースエンジニアリングなどいろいろ書かれています

CTF

CTF(Catcher The Flag)というセキュリティ技術の競技があります.日本では,SECCONというセキュリティコンテストが開催されている.

個人でセキュリティに関する問題をつくって公開してくれているサービスがいくつかあるので紹介します.他にもありましたら,是非教えてください.一度始めると,どんどん時間が吸い取られていきます.

ほかにもGoogleが公開しているXSSについての問題を解くゲームがある.個人的には良い難易度でおもしろかった.