メタプログラミング Ruby コンピュータ科学特論 I

目次

メタプログラミングRuby / 毎回 の講義 / OO へ至る道 / ruby 入門 / 講義ドキュメント / meta-ruby まとめ / note / ruby-note / poker

今日の講義

.outline

<2016-02-15 月> の講義予定です。

  • レポートの〆切は,一応,2/22にします。

今日の org 文書 (emacsで開くために)

サイト を Emacs (org-mode) で読むために

  • ~suzuki/COMM/Lects/meta-ruby/site の下がサイト全体
    • lects/note/ruby-note.org のーと
    • org-docs/meta-ruby/ の下,メタプログラミング Ruby まとめ文書
  • ~suzuki/COMM/Prog/ruby/meta の下のディレクトリにコード
  • ~suzuki/COMM/Lects/meta-ruby/site/code の下にもコード
  • ~suzuki/COMM/Lects/meta-ruby/site/book の下

レポート提出について

  • 提出場所 https://wiki.cis.iwate-u.ac.jp/svn/meta-ruby/

    自分のdirectory下

  • 提出物 [6/6]
    • [X] pokerゲームのrubyによるテスト駆動開発,
      • ./poker/ ruby プログラム
      • poker.org org文書
    • [X] オブジェクト指向に至る軌跡の纏め
      • oo.org
    • [X] Ruby におけるオブジェクト指向の実現
      • ruby-oo.org
      • 図示でもいい
    • [X] メタプログラミング Ruby のまとめ
      • meta-programming-ruby.org
    • [X] 課題プログラムの作成 [4/4] org文書で提出してください:
      • [X] 1. uri2org.org
        • あるWebページを org 文書に変換,
        • gem の mechanize と nokogiri を使う
      • [X] 2. dirtree.org
        • ディレクトリ木の表示 Dir,File, 文字列
      • [X] 3. org-server.org
        • org文書を表示するWebサーバ.
        • gem の sinatra と org-rubyを使う
        • ruby-note/sinatra-org/readme.org を参考に
      • [X] 4. sqlite.org
        • sqlite データベースの中身を rubyを使って調べる
        • ruby-note の sqliteを参考に
    • [X] 講義への意見感想
      • about_lecture.org

Done オブジェクトへ至る道を読みましょう。[6/6]

  • [X] 構造化プログラミングの本質を理解しましょう。
  • [X] モジュラープログラミングを読みましょう。<2015-11-27 金>
  • [X] 抽象データ型を読み,まとめましょう。<2015-12-07 月>
  • [X] オブジェクト指向? <2015-12-14 月>
  • [X] Simula & C++のオブジェクト指向 <2015-12-14 月>~
  • [X] SmallTalk & objective-C のオブジェクト指向 <2016-01-18 月>~

まとめを emacs org-modeの文書で書きためてください。レポートとして提 出してもらう予定です。

Doing Java - オブジェクト指向はクソか? - Qiita [3/3]

オブジェクトへ至る道を読み終えたら,関数型プログラミングからの反論 を読んでみましょう:

Done poker

pokerのテスト駆動開発 ((@cis.org @s.org))

  • org-mode+babel で書いていきます
  • test-unit のことも
  • emacs org-mode+babel のことも
Done poker進行 [6/6]
  • [X] test-unit の説明
  • [X] クラス設計 poker.org
  • [X] card.org
  • [X] deck.org
  • [X] hand.org
  • [X] play.org

Doing メタプログラミング ruby

02/01
  • method (method_missing と 動的定義と呼び出し)
02/09
  • block
進行について [/]

まとめをemacs org-modeの文書で書きためてください。レポー トとして提出してもらう予定です。

  • オブジェクトとメッセージング
  • オブジェクト,クラス,メソッド
  • ブロック
  • トップレベル
  • self
  • クラス階層と継承

Doing TODO ruby 入門始めましょう。

~suzuki/lects/meta-ruby/lects/ruby_begin_note.org

読むサイトを Ruby入門 に変更したいです。

  • [X] method をやります。
  • [X] class 定義
  • [ ] class 継承
  • [ ] pokerゲームの設計

ruby入門のノートをemacs org-modeの文書で書きためてください。レポー トとして提出してもらう予定です。

Todo TODO emacs org-mode 憶えませんか? [0/1]

Todo ruby入門の記録を取ってみましょう。
org-mode todo
  • [X] org-mode でプログラミングとメモの作成をはじめました。
  • [X] 文章の構造を覚えましょう。
  • [X] ruby ソースコードの埋め込み方
  • [X] ruby ソースコードの実行方法
  • [X] ruby ソースコードの編集方法
  • [ ] include
  • [ ] link
  • Doing オブジェクト指向とは

Done オブジェクト指向プログラミングへ至る道

Done OOへ至る道 ((@cis.org @s.org)) [8/8]
  • [X] ソフトウェア危機 <2015-11-02 月>
  • [X] 構造化プログラミング<2015-11-16 月>
  • [X] モジュラプログラミング
  • [X] 抽象データ型
  • [X] オブジェクト指向?
  • [X] Simula & C++ のオブジェクト指向
  • [X] SmallTalk & objective-C のオブジェクト指向
  • [X] まとめ
Java - オブジェクト指向はクソか? - Qiita

オブジェクトへ至る道を読み終えたら,関数型プログラミングからの反論 を読んでみましょう:

lambda-knight - Qiita

Doing プログラム言語とは

Done 記述のための要素
  • 値と定数
  • データ構造体
  • 型と演算
  • 変数と代入
  • 文と流れ
  • 関数(手続き)
    • 定義
    • 呼出し
  • スコープ
  • モジュール
Done 実行するということ
  • コードインタープリタ
  • 環境
    • 実行の流れを保存するスタック
    • 名前を解決する束縛
    • 静的か動的か
Todo メタプログラミング
  • プログラムを生成するプログラムをつくること

Todo オブジェクト指向プログラミング

オブジェクト指向プログラミング (wikipedia)
  • カプセル化と情報隠蔽
  • 多相性
  • 動的束縛
  • 継承
Done 僕の考え
  • モジュール
  • メッセージパッシング
  • 差をプログラムする
Done Rubyらしさ
  • 純粋オブジェクト指向
    • プログラム可能なものは全て,オブジェクト
    • クラスもオブジェクト
    • 実行はすべてメッセージパッシングで起こる
  • オブジェクトは実行の場

Someday まつもと直伝プログラミングの掟

今年(2015)は読んでいる暇はなさそうです。

まつもと直伝プログラミングの掟のまとめ

Done Ruby入門

sh ~/COMM/Lects/bin/org_link_make.sh meta-ruby lects/note/ruby-note.html rubyノート
  • rubyノート ((@cis.org @s.org)) のテスト
  • poker

    emacs で見てください。 : ~suzuki/COMM/Lects/meta-ruby/site/lects/note/ruby-note.org

    下記リンクの入門は中断します。

ruby入門 ((@cis.org @s.org)) を読みプログラムしてみましょう。

Todo メタプログラミング Ruby

Doing TODO emacs org-mode 憶えませんか? [/]

文章の構造を覚えましょう。

org#document structure

  • headlines
  • lists
  • drawers
  • blocks

ruby ソースコードの埋め込み方

org#working with source code

org#Structure of code blocks

#+name: 
#+begin_src ruby <arguments...>
body
#+end_src

ruby ソースコードのedit

ruby ソースコードの実行方法

ruby ソースコードの export

org#Exporting code blocks

#+begin_src ruby :exports both
body
#+end_src

ruby ソースコードの extract

org#Extracting source code

#+name: 
#+begin_src ruby :tangle <file>
body
#+end_src

Done 講義資料の説明

講義資料 ((@cis.org @s.org))

URL
emacsの設定 ((@cis.org @s.org)) 追加しました。

Done announce まだサイトリニューアル中です。未整備なページ等あります。すみません。

ご指摘ください。

Done todo emacs環境/ruby環境 整えましょう。

講義

主たるねらい

オブジェクト指向プログラミングの本質,

オブジェクト指向システムの仕組み,

メタプログラミングの有効性について,

オブジェクト指向言語 ruby を用いて考察する

もうひとつのねらい

emacs org-mode + babel を使って,

文芸的プログラミングをおこないながら,

講義しようとたくらんでいますが,

いつものとおり,どうなりますことやら。

開講通知

.docs

メタプログラミングRubyのまとめ

メタプログラミングRubyのまとめ ((@cis.org @s.org))

  • 教科書のまとめです。org-mode で書いてあります。2012年に書いたもの を,すこしづつ org-babel で書き直すつもりです。
    path ~suzuki/lects/meta-ruby/site/org-docs/meta-ruby/
    

ruby.begin

ruby入門 ((@cis.org @s.org))

  • rubyの情報,環境,入門書などについてです。
path: ~suzuki/lects/meta-ruby/site/org-docs/ruby_begin.org

rubyについてあれこれ

s-: のめもです。

rubymisc

path: ~suzuki/lects/meta-ruby/site/org-docs/rubymisc

オブジェクト指向へ至る道

OOへ至る道 ((@cis.org @s.org))

  • オブジェクト指向が出現するまでの考え方とか
    path: ~suzuki/lects/meta-ruby/site/org-docs/oo.org
    

matz のプログラミング直伝

matzのプログラミング直伝 ((@cis.org @s.org))

  • rubyについてです
    path: ~suzuki/lects/meta-ruby/site/org-docs/matz
    

emacsの設定

サイトマップ

.lects_links

.docs_links

過去の講義

SICP Structure and Interpretation of Computer Programming

オブジェクト指向入門

著者: suzuki@cis.iwate-u.ac.jp

Created: 2016-02-15 月 08:15

Emacs 24.5.1 (Org mode 8.2.10)

Validate