Suche senden
Hochladen
Kink: プロトタイプベースの俺々 JVM 言語
•
3 gefällt mir
•
2,380 views
T
Taku Miyakawa
Folgen
Melden
Teilen
Melden
Teilen
1 von 10
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
yoshiaki iwanaga
レビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみた
Takhisa Hirokawa
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話
disc99_
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで
Mugen Fujii
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
クラスローダーについて
クラスローダーについて
Suguru ARAKAWA
Empfohlen
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
第三回ありえる社内勉強会 「いわががのLombok」
第三回ありえる社内勉強会 「いわががのLombok」
yoshiaki iwanaga
レビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみた
Takhisa Hirokawa
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
JavaのテストGroovyでいいのではないかという話
JavaのテストGroovyでいいのではないかという話
disc99_
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで
Mugen Fujii
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
Yasuharu Nakano
クラスローダーについて
クラスローダーについて
Suguru ARAKAWA
ClassLoader Leak Patterns
ClassLoader Leak Patterns
nekop
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
yy yank
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
Uehara Junji
20120706-readablecode
20120706-readablecode
Masanori Kado
ECMAScript没proposal追悼式
ECMAScript没proposal追悼式
京大 マイコンクラブ
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
Jenkins に XFD を追加してみると
Jenkins に XFD を追加してみると
Kiro Harada
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみた
Akira Kaneda
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Masahiro Wakame
Javaクラスファイルの読み方
Javaクラスファイルの読み方
y torazuka
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
第2回勉強会
第2回勉強会
Mugen Fujii
スレッドダンプの読み方
スレッドダンプの読み方
Funato Takashi
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
Uehara Junji
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354
Taku Miyakawa
Kink の宣伝
Kink の宣伝
Taku Miyakawa
Weitere ähnliche Inhalte
Was ist angesagt?
ClassLoader Leak Patterns
ClassLoader Leak Patterns
nekop
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Norito Agetsuma
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Kengo Toda
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
yy yank
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
Uehara Junji
20120706-readablecode
20120706-readablecode
Masanori Kado
ECMAScript没proposal追悼式
ECMAScript没proposal追悼式
京大 マイコンクラブ
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
Jenkins に XFD を追加してみると
Jenkins に XFD を追加してみると
Kiro Harada
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみた
Akira Kaneda
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Masahiro Wakame
Javaクラスファイルの読み方
Javaクラスファイルの読み方
y torazuka
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
Yoshifumi Yamaguchi
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
Yuji Kubota
第2回勉強会
第2回勉強会
Mugen Fujii
スレッドダンプの読み方
スレッドダンプの読み方
Funato Takashi
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
Uehara Junji
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Katsuhiro Morishita
Was ist angesagt?
(20)
ClassLoader Leak Patterns
ClassLoader Leak Patterns
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Tomcatの実装から学ぶクラスローダリーク #渋谷Java
Groovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUG
JVMの中身を可視化してみた
JVMの中身を可視化してみた
Jvm言語とJava、切っても切れないその関係
Jvm言語とJava、切っても切れないその関係
Groovy Shell Scripting 2015
Groovy Shell Scripting 2015
20120706-readablecode
20120706-readablecode
ECMAScript没proposal追悼式
ECMAScript没proposal追悼式
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
メタプログラミングって何だろう
メタプログラミングって何だろう
Jenkins に XFD を追加してみると
Jenkins に XFD を追加してみると
Phpのレガシーコードをrubyで焼き変えてみた
Phpのレガシーコードをrubyで焼き変えてみた
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Buildinsider OFFLINE TypeScriptの基礎から実践・利用事例まで
Javaクラスファイルの読み方
Javaクラスファイルの読み方
Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
OpenJDK トラブルシューティング #javacasual
OpenJDK トラブルシューティング #javacasual
第2回勉強会
第2回勉強会
スレッドダンプの読み方
スレッドダンプの読み方
Introduce Groovy 2.3 trait
Introduce Groovy 2.3 trait
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
Andere mochten auch
Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354
Taku Miyakawa
Kink の宣伝
Kink の宣伝
Taku Miyakawa
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Taku Miyakawa
Matrix Multiplication in Strassen Algorithm
Matrix Multiplication in Strassen Algorithm
Taku Miyakawa
擬似乱数生成器の評価
擬似乱数生成器の評価
Taku Miyakawa
Hadoop jobbuilder
Hadoop jobbuilder
Taku Miyakawa
コルーチンの実装について
コルーチンの実装について
Taku Miyakawa
金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API
Taku Miyakawa
Quasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on Java
Taku Miyakawa
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Yuji Kubota
Prepare for Java 9 #jjug
Prepare for Java 9 #jjug
Yuji Kubota
楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug
Yuji Kubota
Graph Algorithms Part 1
Graph Algorithms Part 1
Taku Miyakawa
言語設計者が意味論を書くときに考えていたこと
言語設計者が意味論を書くときに考えていたこと
Taku Miyakawa
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa
Andere mochten auch
(15)
Summary of "Hacking", 0x351-0x354
Summary of "Hacking", 0x351-0x354
Kink の宣伝
Kink の宣伝
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
Matrix Multiplication in Strassen Algorithm
Matrix Multiplication in Strassen Algorithm
擬似乱数生成器の評価
擬似乱数生成器の評価
Hadoop jobbuilder
Hadoop jobbuilder
コルーチンの実装について
コルーチンの実装について
金勘定のためのBigDecimalそしてMoney and Currency API
金勘定のためのBigDecimalそしてMoney and Currency API
Quasar: Actor Model and Light Weight Threads on Java
Quasar: Actor Model and Light Weight Threads on Java
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6
Prepare for Java 9 #jjug
Prepare for Java 9 #jjug
楽して JVM を学びたい #jjug
楽して JVM を学びたい #jjug
Graph Algorithms Part 1
Graph Algorithms Part 1
言語設計者が意味論を書くときに考えていたこと
言語設計者が意味論を書くときに考えていたこと
Java SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Ähnlich wie Kink: プロトタイプベースの俺々 JVM 言語
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews, Inc.
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
pocketberserker
Clojure
Clojure
Uehara Junji
WordBench Kobe jQueryどうでしょう
WordBench Kobe jQueryどうでしょう
Hishikawa Takuro
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Chihiro Ito
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
Yasumasa Suenaga
ATN No.2 Scala事始め
ATN No.2 Scala事始め
AdvancedTechNight
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
mametter
JDK 10 へようこそ
JDK 10 へようこそ
David Buck
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Tomohiro Kumagai
Start!! Ruby
Start!! Ruby
mitim
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
Shigeru UCHIYAMA
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
Yoshifumi Yamaguchi
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
Ken'ichi Sakiyama
「愛されたい!」と思ったときにJavaで書くRubyクラス
「愛されたい!」と思ったときにJavaで書くRubyクラス
Koichiro Ohba
JavaScriptことはじめ
JavaScriptことはじめ
Yuki Ishikawa
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Shuyo Nakatani
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
Ra Zon
Ähnlich wie Kink: プロトタイプベースの俺々 JVM 言語
(20)
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
Clojure
Clojure
WordBench Kobe jQueryどうでしょう
WordBench Kobe jQueryどうでしょう
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
ATN No.2 Scala事始め
ATN No.2 Scala事始め
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
JDK 10 へようこそ
JDK 10 へようこそ
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
JavaScriptCore.framework の普通な使い方 #cocoa_kansai
Start!! Ruby
Start!! Ruby
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
名古屋Ruby会議02 LT:Ruby中級への道
名古屋Ruby会議02 LT:Ruby中級への道
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
「愛されたい!」と思ったときにJavaで書くRubyクラス
「愛されたい!」と思ったときにJavaで書くRubyクラス
JavaScriptことはじめ
JavaScriptことはじめ
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
明日使える超高速Ruby - RXbyak (Mitaka.rb #5)
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
Mehr von Taku Miyakawa
ラムダと invokedynamic の蜜月
ラムダと invokedynamic の蜜月
Taku Miyakawa
Java Quine Golf
Java Quine Golf
Taku Miyakawa
Processing LTSV by Apache Pig
Processing LTSV by Apache Pig
Taku Miyakawa
Java 7 invokedynamic の概要
Java 7 invokedynamic の概要
Taku Miyakawa
Java オブジェクトの内部構造
Java オブジェクトの内部構造
Taku Miyakawa
Kink: developing a programming language on the JVM
Kink: developing a programming language on the JVM
Taku Miyakawa
Mehr von Taku Miyakawa
(6)
ラムダと invokedynamic の蜜月
ラムダと invokedynamic の蜜月
Java Quine Golf
Java Quine Golf
Processing LTSV by Apache Pig
Processing LTSV by Apache Pig
Java 7 invokedynamic の概要
Java 7 invokedynamic の概要
Java オブジェクトの内部構造
Java オブジェクトの内部構造
Kink: developing a programming language on the JVM
Kink: developing a programming language on the JVM
Kink: プロトタイプベースの俺々 JVM 言語
1.
Kink: プロトタイプベースの俺々 JVM 言語 @miyakawa_taku 2012-04-04 Java
One Tokyo / JVM Language BOF
2.
1 要旨 • Kink という
JVM 言語を作ってます • クラスのないオブジェクト指向言語です (Lua や JavaScript みたいに) • 寝ながら安易にコードが書けることを目指し ています
3.
2 No クラス but
値 • クラスはなくて値だけがある • データやメソッドは値のスロットに直接突っ込む &DOG = value DOG DOG.&bark = { 'ワン!' } &bark { 'ワン!' } DOG.&howl = { 'ワオー' } &howl { 'ワオー' } printline(DOG.bark) # ワン!
4.
3 親のスロットを継承 • 自分自身がスロットを持っていなければ親か
ら取ってくる DOG (親) &PUPPY = DOG.child &bark { 'ワン!' } PUPPY.&bark = { 'キャン!' } &howl { 'ワオー' } printline(PUPPY.bark) # キャン! printline(PUPPY.howl) # ワオー PUPPY (子) &bark { 'キャン!' }
5.
4 Java 呼び出し • Java
のメソッドも呼び出せる • オブジェクトシステムが全然違うので、 methodmissing からリフレクションで富豪的に useclass('java.util.ArrayList') &AL = ArrayList.new AL.add('Flip!') AL.add('Flap!') AL.list.loop($printline) # Flip! Flap!
6.
5 Kink の特徴 • ミニマリズム!
– クラスの無いオブジェクトシステム – 分岐もパターンマッチも代入もメソッド呼び出し • Lisp 好き! – セミコロンとカンマの無い文法 – 末尾再帰がスタックオーバーフローしない • Java のメソッドが叩けるよ! • なにかと富豪的。性能は……
7.
6 性能は? • tarai(13 6
0) (竹内関数) でベンチマーク #!/usr/bin/env kink -J-server &tarai = { (&X &Y &Z) (X <= Y).then { Y }{ tarai(tarai(X - 1 Y Z) tarai(Y - 1 Z X) tarai(Z - 1 X Y)) } } [&X &Y &Z] = _argv.map { ¥0.int } printline(tarai(X Y Z))
8.
7 計測結果 (dash の8倍速い!)
dash 0.5.5.1 GNU bc 1.06.95 Kink 2012-03-31 dash = /bin/sh C Ruby 1.8.7 GNU awk 3.1.7 0 100 200 300 400 500 600 700 800
9.
8 計測結果 (JVM 言語) Kink
2012-03-31 Rhino 1.7R3 Groovy 1.7.0 JRuby 1.6.6 0 10 20 30 40 50 60 70 80 90
10.
9 総括 • Kink は半分寝ながらコードが書ける気楽な言
語です • 性能はまだまだです – もうちょっと何とか絞り出せるはず • 公開リポジトリ – http://code.google.com/p/kink-lang/
Jetzt herunterladen