正規言語でプログラミング

5,258 views

Published on

第2回APASEC+第2期サイボウズ・ラボユース合同勉強会 ( http://atnd.org/events/36798 ) での発表です.
このブログ記事の発展ネタです → http://swatmac.info/?p=1013
デモと口頭メインなので,資料は物足りないかも(追記する可能性は微小にある)

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,258
On SlideShare
0
From Embeds
0
Number of Embeds
2,455
Actions
Shares
0
Downloads
9
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

正規言語でプログラミング

  1. 1. 正規言語 と プログラミング Ryoma Sin’ya @ Tokyo TechFriday, March 29, 13
  2. 2. 世の中には色んなプログラミ ング・パラダイムがありますね 手続き型 オブジェクトしこー ラムダ計算 制約論理型プログラミング 項書換えシステム カテゴリカル・プログラミングFriday, March 29, 13
  3. 3. 新しいパラダイムを提案し たい! しかも「正規言語」を使っ て!! 正規表現はプログラミング言語達の 手下じゃない!Friday, March 29, 13
  4. 4. 正規言語 で プログラミング Ryoma Sin’ya @ Tokyo TechFriday, March 29, 13
  5. 5. はじめに宣伝!Friday, March 29, 13
  6. 6. 僕が開発した「RANS」 正規表現を与えて 「受理文字列」と「自然数」 を対応させるツールFriday, March 29, 13
  7. 7. 僕が開発した「RANS」 正規表現を与えて 「受理文字列」と「自然数」 を対応させるツール 「対応」って何?Friday, March 29, 13
  8. 8. 文字列と数の対応 例:正規表現/a*(ba*b)*a*/ で「対応」を取ると...Friday, March 29, 13
  9. 9. 文字列と数の対応 例:正規表現/a*(ba*b)*a*/ で「対応」を取ると... /a*(ba*b)*a*/Friday, March 29, 13
  10. 10. 文字列と数の対応 例:正規表現/a*(ba*b)*a*/ で「対応」を取ると... 長さ--辞書順で並べる /a*(ba*b)*a*/Friday, March 29, 13
  11. 11. 文字列と数の対応 例:正規表現/a*(ba*b)*a*/ で「対応」を取ると... 長さ--辞書順で並べる /a*(ba*b)*a*/={!, a, aa, bb, aaa, abb, bab, ... }Friday, March 29, 13
  12. 12. 文字列と数の対応 例:正規表現/a*(ba*b)*a*/ で「対応」を取ると... 長さ--辞書順で並べる /a*(ba*b)*a*/={!, a, aa, bb, aaa, abb, bab, ... } ................... 0, 1, 2, 3, 4, 5, ...................Friday, March 29, 13
  13. 13. で, プログラミングは?Friday, March 29, 13
  14. 14. プログラミング言語Grass “w”と“W”と“v”の三文字でプ ログラミングする言語 ちょっと草植えときますね型言 語 (新パラダイム?)Friday, March 29, 13
  15. 15. プログラミング言語Grass “w”と“W”と“v”の三文字でプ ログラミングする言語 ちょっと草植えときますね型言 語 (新パラダイム?) つまり「ネタ言語」!!Friday, March 29, 13
  16. 16. プログラミング言語Grass “w”と“W”と“v”の三文字でプ ログラミングする言語 ちょっと草植えときますね型言 語 (新パラダイム?) つまり「ネタ言語」!!Friday, March 29, 13
  17. 17. Grassはネタじゃない! 当たり前にちゅーりんぐ完全 (型無しラムダ計算がベース) しかも... 文法が正規!!!!Friday, March 29, 13
  18. 18. しかも文法が正規!!!Friday, March 29, 13
  19. 19. しかも文法が正規!!! BNFで書かれてるけど これは正規!!!!!!!! (プロなら一瞬で分かる)Friday, March 29, 13
  20. 20. しかも文法が正規!!! /([vw]*(W+w)*)*/ [v-w] W w W 0 1 2 wFriday, March 29, 13
  21. 21. Grassで「Hello, World」 wwvwwwWWWwwWwwWWWWwvwWWwwwWwwvwWwwwWwwvwWWwWWWWWwvwWWW wwwwWWWWwWWWWwWWWWWWwWWWWWWWwWWWWWWWwWWWWWWWWwWw wwwwwwwvwWWWwwwwwWWWWWwWWWWWwWWWWWWWwWWWWWWWWwWWWW WWWWWwWwwwwwwwvwWWWWwwwwwwWWWWWWwWWWWWWwWWWWWWWwWW WWWWWWWwWWWWWWWWWwWwwwwwwwvwWWWWWwwwwwwwWWWWWWWwWW WWWWWWwWWWWWWWWwWWWWWWWWWWwWWWWWWWWWWwWwwwwwwwvwW WWWWWWwwwwwwwwWWWWWWWWwWWWWWWWWWwWWWWWWWWWwWWWWW WWWWWWwWwwwwwwvwWWWWWWWWwwwwwwwwwWWWWWWWWwWWWWWWWW WwWWWWWWWWWWWwWWWWWWWWWWWwWWWWWWWWWWWWWwWwwwwwww vwWWWWWWWWwwwwwwwwwwWWWWWWWWWwWWWWWWWWWWwWWWWWWWW WWWwWWWWWWWWWWWWWwWwwwwwwvwWWWWWWWWWWwwwwwwwwwwwWW WWWWWWWWwWWWWWWWWWWWwWWWWWWWWWWWWWwWwwwwwvwWWWWW WWWWWwwwwwwwwwwwwWWWWWWWWWWWWwWWWWWWWWWWWWWwWWWWW WWWWWWWWWwWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWwWwwww wwwvwWWWWWWWWWWwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwwWWW wwwwwwwwwwwwwwwwwwwWwwWWWWWWWWWWWWWWWWWWWWwvwWWwwwwW WWwwwwwwwwwwWWWWwwwwwwwwwwWWWWWwwwwwwwwwwwwwWWWWWWwwww wwwWWWWWWWwwwwwwwwwwwWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwvwW WWWWWWWWWWWWWWWwwwwwwwWwwvwWWWWwwwwwwwWWWWWwwwWWWW WWwwwwwwwWWWWWWWwwwwwwwwWWWWWWWWwwwwwwwwwwwwwwWWWWWW WWWwwwwwwwwwwwwwwvwWWwWWWWWwFriday, March 29, 13
  22. 22. Grassで「Hello, World」 wwvwwwWWWwwWwwWWWWwvwWWwwwWwwvwWwwwWwwvwWWwWWWWWwvwWWW wwwwWWWWwWWWWwWWWWWWwWWWWWWWwWWWWWWWwWWWWWWWWwWw 1627617448163470612773078700688053137046638006297 wwwwwwwvwWWWwwwwwWWWWWwWWWWWwWWWWWWWwWWWWWWWWwWWWW 3401969614529593658839588034299561019072802997488 WWWWWwWwwwwwwwvwWWWWwwwwwwWWWWWWwWWWWWWwWWWWWWWwWW WWWWWWWwWWWWWWWWWwWwwwwwwwvwWWWWWwwwwwwwWWWWWWWwWW 2284159495744660485071256759026955004704442396791 WWWWWWwWWWWWWWWwWWWWWWWWWWwWWWWWWWWWWwWwwwwwwwvwW 1761566040389550357483285036825249260668047548232 WWWWWWwwwwwwwwWWWWWWWWwWWWWWWWWWwWWWWWWWWWwWWWWW WWWWWWwWwwwwwwvwWWWWWWWWwwwwwwwwwWWWWWWWWwWWWWWWWW 4809259888431440137005387911828231622152001940020 WwWWWWWWWWWWWwWWWWWWWWWWWwWWWWWWWWWWWWWwWwwwwwww 1619612906107817505180340518910126515933931833672 vwWWWWWWWWwwwwwwwwwwWWWWWWWWWwWWWWWWWWWWwWWWWWWWW WWWwWWWWWWWWWWWWWwWwwwwwwvwWWWWWWWWWWwwwwwwwwwwwWW 2855919281300746470264479856011884839769266736505 WWWWWWWWwWWWWWWWWWWWwWWWWWWWWWWWWWwWwwwwwvwWWWWW 0537949162937125903768151493422519792535824464997 WWWWWwwwwwwwwwwwwWWWWWWWWWWWWwWWWWWWWWWWWWWwWWWWW WWWWWWWWWwWWWWWWWWWWWWWWwWWWWWWWWWWWWWWWWwWwwww 03084436758664366464026061342507810037583 wwwvwWWWWWWWWWWwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwwWWW wwwwwwwwwwwwwwwwwwwWwwWWWWWWWWWWWWWWWWWWWWwvwWWwwwwW WWwwwwwwwwwwWWWWwwwwwwwwwwWWWWWwwwwwwwwwwwwwWWWWWWwwww 番目のGrassプログラム!! wwwWWWWWWWwwwwwwwwwwwWWWWWWWWwwwwwwwwwwwwwwwwwwwwwwvwW WWWWWWWWWWWWWWWwwwwwwwWwwvwWWWWwwwwwwwWWWWWwwwWWWW WWwwwwwwwWWWWWWWwwwwwwwwWWWWWWWWwwwwwwwwwwwwwwWWWWWW WWWwwwwwwwwwwwwwwvwWWwWWWWWwFriday, March 29, 13
  23. 23. 正規表現「で」プログラミング 正規表現(文法)を固定 数字を喰わせればプログ ラムが得られる! 数字を固定 正規表現(文法)を喰 わせればプログラムが 得られる!Friday, March 29, 13
  24. 24. 正規言語 で プログラミング Ryoma Sin’ya @ Tokyo TechFriday, March 29, 13
  25. 25. 説明が面倒くさいので終了Friday, March 29, 13
  26. 26. 説明が面倒くさいので終了 _人人人人人人人人人人人人人人_ > アイディア述べて終了!! <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄Friday, March 29, 13
  27. 27. 続きが気になる人は... RANSのプロジェクトページをチェッ ク!! http://sinya8282.github.com/RANS/ @sinya8282 に reply 直接質問(これが一番) 私のブログなど http://swatmac.infoFriday, March 29, 13

×