とちぎRuby会議05
casualにRubyを
パースしてみたい
Shinya Hayakawa
2013/09/21(土)
概要
•“思い遣りプログラミング”
•自然言語すごい
•Rubyをパースする試み
•新しいプログラミング言語
Pascal思いやりプログラミング
•‘77刊
思いやりとは?
•読みやすいプログラム
を書くこと
•使いやすいプログラム
を書くこと
誰を思いやる?
•プログラムを使う人
•プログラムを読む人
•自分
どうやって?
•意味を表せ
•構造を表せ
•変数の目的はハッキリと
•メッセージは平易なことばで
・・・・・・
・・・
プログラマが知るべき97のこと
82 他者への
思いやりを意
識したコーディ
ング
他人の存在を意識する
•必ずしも良いコード
クリーンなコード、だ
けとは限らない
他人の存在を意識する
•コードに触れた誰もが
触れる前より良い人間
良いプログラマになれる
コードに触れた誰もが
触れる前より
良い人間
良いプログラマ
になれる
プログラミング言語とは
•コンピュータに命令を
伝えるための道具
プログラミング言語
•伝えることばかり意識す
ぎると、自己主張に偏った
コードになりがち
「思い遣る」
•思いを馳せる
•思いを相手の心に遣わす
•気持ちを察する
山下 景子著 『日本人の心を伝える 思いやりの日本語』より
なぜ思いやるか?
•プログラマは必ずしも、伝
えたいことがあるからコード
を書くわけでは無い
(code golf, quiz, puzzle,
esolang, ...)
なぜ思いやるか?
•意味のないコードを交わ
して得る安心感、満足感
•ただ、つながっていたか
っただけ…
なぜ思いやるか?
•何かを伝えようと書くこ
とよりも、つながっていた
いという気持ちが大切
誰とつながりたい?
•コンピュータ?
•e.g. 効率性
•顧客、ユーザ?
•e.g. 「直接的な写像」
•プログラマ?
より深く
つながりたい
よりよいつながりを求めて
•情緒力
•人の喜びを自分の喜びとして
体得できる心情
•人間の深みを表すコードの世界
参考
•大島 潔 著
『思い出して使ってみた
い美しい日本語』
•岡潔 著 『春宵十話』
「命令を伝えるための道具」
↓
「つながりを深めるための道具」
プログラミング言語
自然言語すごい
•結果目的語
•時間による空間叙述
•コンテキストの圧縮
結果目的語
•湯を沸かす
•ご飯を炊く
•彼女ほしい
挽く
•麦をひく
•臼をひく
•粉をひく
森田良行著 『日本語質問箱』より
時間による空間叙述
•空間表現
•「長い」「短い」…
•時間表現
•「始まる」「終わる」…
山梨正明著 『認知文法論』より
時間による空間叙述
•空間表現と時間表現
は、比喩的な拡張に基
づいて交わる
時間による空間叙述
•雨の奥から松らしいもの
が、ちょくちょく顔を出す
『草枕』
•頻度の副詞により空間
世界が叙述される
Rubyをパースする試み
•自然言語の表現力をプ
ログラミングに取り入れ
たい
•パースは困難
とりあえずRuby?
どうやって?
•Rubyコーパス
•教師なし学習
•コメント、予約語は知ら
ない状態から
参考
•入門 自然言語処理
•入門 機械学習
•形式言語の理論
•コーパス分析に基づく
認知言語学的構文研究
新しいプログラミング言語を
妄想する
•自然言語のような表現
が可能なプログラミング
言語
•高コンテキスト言語
省略のグラデーション
•「彼は女をゆさぶりまし
た。呼びました。抱きまし
た。徒労でした。彼はワ
ッと泣きふしました。」
坂口安吾『桜の森の満開の下』
中村 明著 『文学の名表現を味わう』より
省略のグラデーション
•「彼は女をゆさぶって、
呼んだり抱いたりしまし
たが、徒労だったので、
ワッと泣きふしました」
中村 明著 『文学の名表現を味わう』より
省略のグラデーション
•「彼は女をゆさぶりました。
そして、呼びました。それ
から、抱きました。しかし、
徒労でした。それで、ワッと
泣きふしました。」
中村 明著 『文学の名表現を味わう』より
省略のグラデーション
•接続詞でつなぐと一連
の流れが関連つく
•省略で緊迫感を出す
•省略されても構造は保
たれている
妄想code
•例外は投げてくれるな的な
表現?
cf. File.open
ファイルがありました。開き
ました。読みました。YAML
でした。…
「無名の質」
•自分が最も生き生きとする
瞬間や状況を求める
•「言葉にできない何か」を実
現する
•≒情緒力?
〈言語の本質〉
•言葉には“理想文”を作
り出す力はない
•本質的に“意味確定度
不十分”なもの
今井邦彦著 『語用論への招待』より
〈言語の本質〉
•他人の心が(ある程度)読め
るからこそ思いやりを示せる
•聞き手の推論能力に依存
•言語は「不完全」でいられる
今井邦彦著 『語用論への招待』より
まとめ
•「無名の質」を追い求め
るのに最適なプログラミ
ング言語をつくりたい
•「不完全さ」が必要
巨人の肩
•East Ventures
Engineer Accelerator
http://engineer.east.vc
つづきは
@tsurumau
Próxima SlideShare
Cargando en…5
×

casualにRubyをパースしてみたい

1.419 visualizaciones

Publicado el

とちぎRuby会議05での発表資料
http://regional.rubykaigi.org/tochigi05

Publicado en: Tecnología
0 comentarios
2 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

Sin descargas
Visualizaciones
Visualizaciones totales
1.419
En SlideShare
0
De insertados
0
Número de insertados
113
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
2
Insertados 0
No insertados

No hay notas en la diapositiva.

casualにRubyをパースしてみたい

  1. 1. とちぎRuby会議05 casualにRubyを パースしてみたい Shinya Hayakawa 2013/09/21(土)
  2. 2. 概要 •“思い遣りプログラミング” •自然言語すごい •Rubyをパースする試み •新しいプログラミング言語
  3. 3. Pascal思いやりプログラミング •‘77刊
  4. 4. 思いやりとは? •読みやすいプログラム を書くこと •使いやすいプログラム を書くこと
  5. 5. 誰を思いやる? •プログラムを使う人 •プログラムを読む人 •自分
  6. 6. どうやって? •意味を表せ •構造を表せ •変数の目的はハッキリと •メッセージは平易なことばで ・・・・・・ ・・・
  7. 7. プログラマが知るべき97のこと 82 他者への 思いやりを意 識したコーディ ング
  8. 8. 他人の存在を意識する •必ずしも良いコード クリーンなコード、だ けとは限らない
  9. 9. 他人の存在を意識する •コードに触れた誰もが 触れる前より良い人間 良いプログラマになれる
  10. 10. コードに触れた誰もが 触れる前より 良い人間 良いプログラマ になれる
  11. 11. プログラミング言語とは •コンピュータに命令を 伝えるための道具
  12. 12. プログラミング言語 •伝えることばかり意識す ぎると、自己主張に偏った コードになりがち
  13. 13. 「思い遣る」 •思いを馳せる •思いを相手の心に遣わす •気持ちを察する 山下 景子著 『日本人の心を伝える 思いやりの日本語』より
  14. 14. なぜ思いやるか? •プログラマは必ずしも、伝 えたいことがあるからコード を書くわけでは無い (code golf, quiz, puzzle, esolang, ...)
  15. 15. なぜ思いやるか? •意味のないコードを交わ して得る安心感、満足感 •ただ、つながっていたか っただけ…
  16. 16. なぜ思いやるか? •何かを伝えようと書くこ とよりも、つながっていた いという気持ちが大切
  17. 17. 誰とつながりたい? •コンピュータ? •e.g. 効率性 •顧客、ユーザ? •e.g. 「直接的な写像」 •プログラマ?
  18. 18. より深く つながりたい
  19. 19. よりよいつながりを求めて •情緒力 •人の喜びを自分の喜びとして 体得できる心情 •人間の深みを表すコードの世界
  20. 20. 参考 •大島 潔 著 『思い出して使ってみた い美しい日本語』 •岡潔 著 『春宵十話』
  21. 21. 「命令を伝えるための道具」 ↓ 「つながりを深めるための道具」 プログラミング言語
  22. 22. 自然言語すごい •結果目的語 •時間による空間叙述 •コンテキストの圧縮
  23. 23. 結果目的語 •湯を沸かす •ご飯を炊く •彼女ほしい
  24. 24. 挽く •麦をひく •臼をひく •粉をひく 森田良行著 『日本語質問箱』より
  25. 25. 時間による空間叙述 •空間表現 •「長い」「短い」… •時間表現 •「始まる」「終わる」… 山梨正明著 『認知文法論』より
  26. 26. 時間による空間叙述 •空間表現と時間表現 は、比喩的な拡張に基 づいて交わる
  27. 27. 時間による空間叙述 •雨の奥から松らしいもの が、ちょくちょく顔を出す 『草枕』 •頻度の副詞により空間 世界が叙述される
  28. 28. Rubyをパースする試み •自然言語の表現力をプ ログラミングに取り入れ たい •パースは困難 とりあえずRuby?
  29. 29. どうやって? •Rubyコーパス •教師なし学習 •コメント、予約語は知ら ない状態から
  30. 30. 参考 •入門 自然言語処理 •入門 機械学習 •形式言語の理論 •コーパス分析に基づく 認知言語学的構文研究
  31. 31. 新しいプログラミング言語を 妄想する •自然言語のような表現 が可能なプログラミング 言語 •高コンテキスト言語
  32. 32. 省略のグラデーション •「彼は女をゆさぶりまし た。呼びました。抱きまし た。徒労でした。彼はワ ッと泣きふしました。」 坂口安吾『桜の森の満開の下』 中村 明著 『文学の名表現を味わう』より
  33. 33. 省略のグラデーション •「彼は女をゆさぶって、 呼んだり抱いたりしまし たが、徒労だったので、 ワッと泣きふしました」 中村 明著 『文学の名表現を味わう』より
  34. 34. 省略のグラデーション •「彼は女をゆさぶりました。 そして、呼びました。それ から、抱きました。しかし、 徒労でした。それで、ワッと 泣きふしました。」 中村 明著 『文学の名表現を味わう』より
  35. 35. 省略のグラデーション •接続詞でつなぐと一連 の流れが関連つく •省略で緊迫感を出す •省略されても構造は保 たれている
  36. 36. 妄想code •例外は投げてくれるな的な 表現? cf. File.open ファイルがありました。開き ました。読みました。YAML でした。…
  37. 37. 「無名の質」 •自分が最も生き生きとする 瞬間や状況を求める •「言葉にできない何か」を実 現する •≒情緒力?
  38. 38. 〈言語の本質〉 •言葉には“理想文”を作 り出す力はない •本質的に“意味確定度 不十分”なもの 今井邦彦著 『語用論への招待』より
  39. 39. 〈言語の本質〉 •他人の心が(ある程度)読め るからこそ思いやりを示せる •聞き手の推論能力に依存 •言語は「不完全」でいられる 今井邦彦著 『語用論への招待』より
  40. 40. まとめ •「無名の質」を追い求め るのに最適なプログラミ ング言語をつくりたい •「不完全さ」が必要
  41. 41. 巨人の肩 •East Ventures Engineer Accelerator http://engineer.east.vc
  42. 42. つづきは @tsurumau

×