忍者ブログ
2017.06 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

プロフィール

HN:
kamera25
職業:
電気工事
趣味:
ゲーム制作

一言

仕事で失敗し、丸坊主になった人のイラストです。 (プロフィール画像変わりました。)

フリーエリア



カテゴリー

最新CM

[10/03 ora exacta]
[09/22 F19]
[03/24 F19]
[01/29 森下 拓]
[11/14 F19]

C++勉強会in広島 に参加してきました。

kamera25です。1月12日に行われた、C++勉強会in広島に参加してきました。その模様をレポートしたいと思います。

私は高校の時、自作ゲームを作るのにBetterC(C++を使って、C風に記述)を使っていたので、C++はいくぶんなじみがある言語です。今回はその自信を壊されるくらい、濃い内容でしたけどね。


TMPライブラリの設計と実装 南山さん (スライド)

勉強会を主催されてた、南山さんのプレゼンです。広島の現役大学生の方でC++界でも有名な方です。

プログラミング言語の多くは「型」があります。例えば整数や小数といった、変数に入っている内容の「種類」と思ってください。

また、C++にはテンプレートという仕組みがあります。これはコード書くときに一つの型を指定せず、いろいろな型が入っても同一な動作をするコードを書くときに使います。(分かりにくいですね。すみません。)

これを利用して、メタプログラミングのライブラリを南山さんが作られました。メタプログラミングというのも説明するのが難しい概念でしょう。

多くのコンパイラは次の順で処理されます

1.プリプロセス (defineとかincludeの中身を展開する)
2.コンパイル (ソースコードを機械語に変換)
3.リンク (さっきの機械語を実行できる機械語にする)
4.実行 (プログラムを実行する)

通常、プログラムは実行時にいろいろな処理をします。例えば階乗の計算をすることを考えると、4番で答えを得るための処理がされます。

対して、メタプログラミングではコンパイル時に計算を終わらせておきます。実行時にはコンパイル時に導き出された結果を表示するだけです(演算しない)。

南山さんは、自作のTMPライブラリの利用方法についてプレゼンされていました。あいにく自分は関数型言語を触ったことがありませんでした。HaskelとかLispをやっておけばよかったのです。

プレゼン後、南山さんに「どうして、こんなコアな世界に?」という失礼な質問をしました。ですが笑顔で「去年の夏からテンプレートに興味を持って、作り始めた。」というご返答を頂きました。

好きな事に挑戦して、楽しんでるなーと。自分も、南山さんのように好きな事に猪突猛進していきたいなと思います。


C++でできる!OS自作入門 内田さん (スライド)

内田さんは東京の学生さんで、よくC#勉強会などされています。

まず、OSを作ることになんのメリットがあるのか説明されました。世界にはWindowsクローンOSとか、2ch発祥のOSとか色々ありますが、ハードを操作するというのは面白いのです。

その後、名著「OS自作入門」紹介をされました。私もこの本を持ってまして、最初の5章ぐらいやってますが、実機で「Hallo World!」出たときは感動しました。

世界にはC++でOS作るなんて馬鹿だ。という人がいますが、C++で管理するとクラスも作れますし、スタックやキューの実装がメンドクサクナイのは良いですよね。テンプレートがあるので、型をあまり気にせず作れます。C++なので実行速度も問題ないですし。

newの実装方法なども説明されていました。意外とOS側で書く関数が少なくて驚きでした。逆にdeleteしようと思ったら、使ったメモリ区画をうまく管理しないといけなさそうで、大変そうです。

あと面白かったのが、会場内で「俺もOS作りたい!」という人が続々出たという事です。うちの先輩も「mrubyで作りたいね」とか。


CppUTest試してみた 火村さん (スライド)

Hiroshima.rb兼オープンセミナー2014の実行委員長さんです。C++は10年ほどやっていないそうですが、テスト駆動開発のツールCppUTestを試されていました。

自分はテスト駆動開発をやったことが無かったのですが、とても分かりやすい説明でした。今度C++書くときにやりたいですね。static_assertを使えばいいというのは禁句。


CppUTestの文字を色付きにしてみた 北臺さん

火村さんが話していた、CppUTestの出力に色があったらいいよねーという事で、Githubからパッチを当てたという話。こちらから、直接パッチを当てたらカラーのなるようです。

開発者のバスさんが忙しくて、まだ本家にマージされていないようですが、頑張って組み込んでいただきたいですね。

あと、下のネタで会場の人笑ってました。




C++のいいところ 山根さん

みんなでC++のいいところを挙げようというセッション。山根さんはオーバーロードがいいよというのを挙げていました。

確かにオーバーロードは便利ですね。テンプレートで書けば良いところを、オーバーロード書いてたのは良い思い出です。



会場となった市立大学の部屋はとてもきれいでした。また印象的だったのが、Web Touch Meetingにはあまりいない、中学生・高校生がいたことです。

特に南山さんの後輩の高校生の人たちが、「Haskelが…」とか「C++はコンストラクタが…」とか話してて、最近の高校生スゲーと思いました。私は高校2年の時、情報部部長でScratchやHSP教えてましたが、関数型とかしらんかったよ。


懇親会にも参加しましたが、内田さんと中学3年生の人と同席でした。内田さんとはOS自作入門で盛り上がりました。HariboteOS(注:先述の本で出てくるOSの名前)作り終えたら、またお話したいです。

中3君とは年代のギャップを感じました。親戚で中学生の人なんていないので、新鮮です。最初に触ったOSがXPとか。生まれた年に、Windows98が出た(あの不安定をしらないっ)とか。

1998年とかノストラダムスの予言怖がって、母さんに「なんで俺を生んだんだよっ」って反抗期入ってた頃ですよ!?



ともかく、いつもの勉強会と違って面白かったです。C++の事がより一層好きになる勉強会でした。

勉強会のTogetter
PR
Leave a Reply
name
title
color
mail
URL
comment
password   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
管理人のみ観覧可