プログラミング基礎
II
第十四回
(2011年1月18日)
復習と展望
http://www.sw.it.aoyama.ac.jp/2010/PB2/lecture14.html
Martin J. Dürst
© 2011 Martin J.
Dürst 青山学院大学
今日の予定
これからの予定
期末試験: 1月24日 (13:10-14:10)
前回の復習
- 正規表現は文字列の中のパターンを表す
- 文書処理に非常に便利
- 書き方は
//
の間、特殊文字に気をつけながら
- 応用は、パターンの有無によって処理を変えるか
- 文字列 (の一部) を置き換える
追加: 正規表現で選択肢の指定
- 複数のパターンにマッチできる場合、選択肢を
|
でつなぐ
- 具体例:
/abc|def/
abc 又は def にマッチ
- 文字クラスは一文字に限定した選択肢
具体例: [abcde]
は (a|b|c|d|e)
と同じ
- 記号の組み合わせに注意
a|bc*
は a, b, bc, bcc, bcc... にマッチが、aaa や bcbc
全体はマッチしない
全体の復習
- 数、演算、演算子、被演算子
- 文字列、配列、範囲、連想配列、正規表現
- 分岐と繰返し、ブロックとイテレータ
- 関数、クラス、メソッド
- irb と ruby の使い方、ファイルからの入力
- プログラム開発の方針
- データの扱い方
他の Ruby の中心的な機能
- 継承:
あるクラスから別のクラスを作って、実装の一部を追加・変更
- Module: メソッドなどの集まりで、クラスに追加可能
- ファイル処理
- 例外: 処理中に起こるエラーをつかむ
- (擬似的) 並列処理
Ruby の主なライブラリ
- Ruby に数多くのライブラリがある
- 組み込みクラス (
require
無しで使用可能)
- 標準ライブラリ (インストールが必要ないが
require
が必要)
gem
コマンドで使用可能なもの
- その他ダウンロードできるもの
Ruby の奥: ドメイン特化言語
(Domain Specific Language, DSL)
- いろいろな分野 (ドメイン)
で特殊な機能のプログラムが必要
- プログラミングができない人が多い
- ドメイン特化言語で設定などを可能にする
- しかし、(外部)
ドメイン特化言語を作るのが大変で、拡張性も低い
- Ruby で内部ドメイン特化言語が作成可能
- 設定などが簡単に書ける
- 必要に応じてプログラムみたいなものも書ける
- Ruby が内部ドメイン特化言語に非常に向いている
Ruby on Rails
SVuGy
メタプログラミング
- 普通のプログラミング:
人間がプログラムを作成、計算機が実行
- メタプログラミング: プログラムがプログラム
(の一部) を作成
前回の演習の続き