15
Narcissus Narcissus 自自自自自自自自自自自 自自自自自自自自自自自 JavaScript JavaScript 株株株株株株株株株株株株株株 株株株株株株株株株株株株株株 株株株株株 株株株 株株株株株 株株株

Narcissus 自分自身を愛した美少年 JavaScript

  • Upload
    renate

  • View
    45

  • Download
    1

Embed Size (px)

DESCRIPTION

Narcissus 自分自身を愛した美少年 JavaScript. 株式会社アクセラートジャパン 代表取締役 小林悠. Brendan Eich. Mozilla Corp. CTO JavaScript @ Netscape 2.0 JavaScript @ Mozilla JavaScript on JavaScript Narcissus ↓ JavaScript バカ JavaScript の父. Narcissus. 美少年@ギリシャ神話 水面に映った自分に恋をした ↓ バカ. 使ってみた. ドキュメント0 コメント0. - PowerPoint PPT Presentation

Citation preview

Page 1: Narcissus 自分自身を愛した美少年 JavaScript

NarcissusNarcissus自分自身を愛した美少年自分自身を愛した美少年

JavaScriptJavaScript

株式会社アクセラートジャパン株式会社アクセラートジャパン代表取締役 小林悠代表取締役 小林悠

Page 2: Narcissus 自分自身を愛した美少年 JavaScript

Brendan EichBrendan Eich

Mozilla Corp. CTOMozilla Corp. CTO JavaScriptJavaScript @@ Netscape Netscape

2.02.0 JavaScriptJavaScript @@ MozillaMozilla JavaScript on JavaScriJavaScript on JavaScri

pt Narcissuspt Narcissus↓↓

JavaScriptJavaScript バカバカJavaScriptJavaScript の父の父

Page 3: Narcissus 自分自身を愛した美少年 JavaScript

NarcissusNarcissus

美少年@ギリシャ神美少年@ギリシャ神話話

水面に映った自分に水面に映った自分に恋をした恋をした

↓↓

バカバカ

Page 4: Narcissus 自分自身を愛した美少年 JavaScript

使ってみた使ってみた

Page 5: Narcissus 自分自身を愛した美少年 JavaScript

ドキュメント0ドキュメント0コメント0コメント0

((WikipediaWikipedia 英語版に書きまし英語版に書きました)た)

Page 6: Narcissus 自分自身を愛した美少年 JavaScript

ベンチマークベンチマーク

0.234

35.891

0 10 20 30 40

SpiderMonkey

Narcissus

時間

Page 7: Narcissus 自分自身を愛した美少年 JavaScript

でもでも

Page 8: Narcissus 自分自身を愛した美少年 JavaScript

世界1美しい文法世界1美しい文法のの

世界1美しい実装世界1美しい実装

Page 9: Narcissus 自分自身を愛した美少年 JavaScript

世界1美しい文法世界1美しい文法プログラミング言語プログラミング言語=文脈自由文法+例外=文脈自由文法+例外

C++C++ は例外だらけは例外だらけJavaScriptJavaScript はは例外が非常に少な例外が非常に少ないい

Page 10: Narcissus 自分自身を愛した美少年 JavaScript

世界1美しい実装世界1美しい実装行数行数

パーサーパーサー 954954行行

実行エンジン実行エンジン 897897行行

予約語定義予約語定義 125125行行

ランチャーランチャー 77行行

Page 11: Narcissus 自分自身を愛した美少年 JavaScript

Do-WhileDo-While の実装の実装 case DO:case DO: dodo { { try {try { execute(n.body, x);execute(n.body, x); } catch (e if e == BREAK && x.target == n) {} catch (e if e == BREAK && x.target == n) { break;break; } catch (e if e == CONTINUE && x.target == n) {} catch (e if e == CONTINUE && x.target == n) { continue;continue; }} } } whilewhile (getValue(execute(n.condition, x))); (getValue(execute(n.condition, x))); break;break;

Page 12: Narcissus 自分自身を愛した美少年 JavaScript

IFのパースIFのパース case IF:case IF: n = new Node(t);n = new Node(t); n.n.conditioncondition = ParenExpression(t, x); = ParenExpression(t, x); x.stmtStack.push(n);x.stmtStack.push(n); n.n.thenPartthenPart = Statement(t, x); = Statement(t, x); n.n.elsePartelsePart = t.match(ELSE) ? Statement(t, x) : = t.match(ELSE) ? Statement(t, x) :

null;null; x.stmtStack.pop();x.stmtStack.pop(); return n;return n;

Page 13: Narcissus 自分自身を愛した美少年 JavaScript

コメント0なのはコメント0なのはそのその美しさ美しさ故であった!故であった!

Page 14: Narcissus 自分自身を愛した美少年 JavaScript

NarcissusNarcissus はは自分を愛した自分を愛した美少年美少年

Page 15: Narcissus 自分自身を愛した美少年 JavaScript

ご静聴ご静聴ありがとうございまありがとうございま

したした