rcc lt 2013 javaを日本語で書けるようにしてみた(言語処理)

30
LT

Upload: bitterfox

Post on 15-Jan-2015

517 views

Category:

Technology


2 download

DESCRIPTION

OpenJDKのlangtoolsを弄って日本語を予約語にも使えるようにしてみました.

TRANSCRIPT

Page 1: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

LT

Page 2: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

自己紹介● 情報理工学部システム学科2回

● Twitter: @bitter_fox● 好きなもの: Java● 好きなキャラ: シエル伯爵、紀田将軍

シエルタソの画像 紀田様の画像

Javaのロゴ

Page 3: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

自然言語処理(意味深)

Page 4: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

うみちゃんのLTを見て

画像

Page 5: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

もしかして情報系の日本人って・・・

Page 6: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

日本語とプログラミング言語はもちろん

Page 7: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

野獣先輩の画像ファッ!?

(for!?)

Page 8: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

暴力団員の画像あくしろよ

(ACKしろよ)

Page 9: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

淫夢語+英語

Page 10: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

● 日本語● 英語● プログラミング言語

を淫夢に乗せて

Page 11: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

第一章言語現状!日本開発者たちの逆襲

Page 12: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

英語話者

情報系の日本人

オナシャス日本語使わせてください

車に乗った外国人

車に乗ったサッカー選手

Page 13: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

英語話者

情報系の日本人

英語使えよあくしろよ

車に乗ったサッカー選手

車に乗った外国人

Page 14: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

英語話者

情報系の日本人

車に乗ったサッカー選手

車に乗った外国人

なでしこの画像 ひまわりの画像

Page 15: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

ひまわり

● まんま日本語に見えるようなコード

● あんまり普及していない● 開発終了● 「なでしこ」へ

Page 16: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

なでしこ

● 更に日本語に見えるコード

● あんまり普及していない

Page 17: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

第四章原作レ○プ!日本語と化したJava

Page 18: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

まずJavaさー日本語使えるんだけど使ってかない?

ジェームズゴスリングの画像

http://image.itmedia.co.jp/enterprise/articles/1004/12/yu_gos.jpg

Page 19: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

日本語 in Java

● 日本語使用可public class メイン {

public static void main(String[] 引数達) {

for ( String 引数 : 引数達) {

System.out.println(引数);

}

}

}

Page 20: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

識別子にしか使えなかったけどいいかな〜?ジェームズゴスリングの画像

http://ascii24.ascii.jp/2002/05/24/thumbnail/thumb300x243-images685451.jpg

Page 21: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

野獣先輩の画像ファッ!?

Page 22: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

日本語 at Identifier

● 識別子にしか使えないpublic class メイン {

public static void main(String[] 引数達) {

for ( String 引数 : 引数達) {

System.out.println(引数);

}

}

}

● 英語のライブラリのため更に使える場所が少ない

Page 23: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

もっともっと!!

● 予約語にも使えるようにしたい!

● そのためにはコンパイラを弄る必要がある

● 言語処理

Page 24: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

コンパイラ弄ってみた

STATICstatic Tokenizer

Parser

静的 Tokenizer IDENTIFIER

Page 25: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

コンパイラ弄ってみた

STATICstatic Tokenizer

Parser

静的 Tokenizer

Page 26: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

他にも

● 全角スペースをスペースとして扱う● 全角記号を受け付けるように

Page 27: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

コード例

公 クラス Test1 {

公 静的 空 main(String[] 引数) {

System.out.println("HelloWorld");

ファッ (整数 い = 0; い < 100; い++) {

もしも (い % 15 == 0) {

System.out.println("FizzBuzz");

}

他の もしも (い % 3 == 0) {

System.out.println("Fizz");

}

他の もしも (い % 5 == 0) {

System.out.println("Buzz");

}

他の {

System.out.println(い);

}

}

}

}

Page 28: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

実演

Page 29: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

まとめ

● 全体的に汚い

● エントリーポイントを「メイン」にもできるようにしたかった

Page 30: RCC LT 2013 Javaを日本語で書けるようにしてみた(言語処理)

ご清聴ありがとうございました