SlideShare a Scribd company logo
ECMAScript
没Proposal追悼式
tyage@KMC
本日はお集まりいただき
ありがとうございます
司会担当
● id: tyage
● 京大工学部情報学科3回
● JavaScriptとか書いてる
● 趣味
○ 脆弱性報告
○ CTF
司会担当
ECMAScriptとは
● JavaScriptやActionScriptの実装基盤となっている言語
● Ecma Internationalによって標準化される
● (例会講座でも一度紹介しました)
ECMAScript標準化の流れ
● Strawman(仕様提案)
● →Proposal(具体化・デモ・試案)
● →Draft(仕様書作成)
○ イマココ
○ 3/4にRC2が出来た
● →Candidate(実装・フィードバック)
● →完成
ECMAScript Proposalとは
● 様々な人から仕様に入れてほしい提案(Proposal)が送られ
てくる
○ 提案を検討して、仕様に組み込んだり却下したり
○ Proposalフェーズでなくても送られてくる
採用されたECMAScript Proposal
● ECMAScript6勉強会でやりました
○ class
○ generator
○ Symbol
○ Map
○ const
○ Promise
○ Proxy
○ etc...
今日話すこと
● Proposalだったが、ECMAScript6の仕様書(RC2)に入らな
かったもの(死者)を一部紹介
○ ※覚えてもメリットはないかも
● 英語の誤訳が多数含まれているかと思いますがご了承下さ
い
1つ目
"use" keyword
"use" keyword
● https://esdiscuss.org/topic/proposal-use-keyword
○ 生年月日: 2014年7月25日
○ 没年月日: 2014年7月26日
● 「なんでPHPの”use”みたいな物が無いんや」
なんだそれは???
"use" keyword
● PHP5.3くらいから追加されてたkeyword
● 無名関数を宣言する際に、親のスコープから変数を引き継
ぐことができる
○ こんな機能使ったことないし知らなかったゾ...
"use" keyword
> // 通常、無名関数は外のスコープの変数を参照できない
> $message = ‘hoge’;
> $fun = function() { echo $message; };
> $fun();
PHP Notice: Undefined variable: message in php shell
code on line 1
"use" keyword
> // use keywordを使うと外のスコープの変数が参照できる
> $message = ‘hoge’;
> $fun = function() use ($message) { echo $message; };
> $fun();
hoge
なるほど
一方ECMAScriptでは
// 暗黙的に外のスコープの変数を見に行く
var message = 'hoge';
var fun = function() { console.log(message); };
fun();
hoge
あれ、”use” keyword要らなくね?
どうやらそうではないらしい
引数を使わず、関数から別スコープにあるローカル変数が参照
したいようだ
(追記: dynamic scopeというらしい)
どうやらそうではないらしい
function fun1() {
var message = ‘hoge’;
fun2.attachContext();
};
function fun2() {
console.log(message);
};
fun1のスコープにある
messageを参照できる
えっ、何これは・・・(ドン引き
皆様の反応
● PHP関係ないやんけ
● 何がしたいのかわからん
皆様の反応
● デメリットのほうが圧倒的に大きいのでは
○ 人間もコンピュータも解析しづらい
● どう考えてもダメ
ご愁傷さまです
2つ目
typeof null
typeof null
● http://wiki.ecmascript.org/doku.php?id=harmony:
typeof_null
● typeof null が “null” を返すようにしてほしいという提案
typeof演算子
● オブジェクトやプリミティブ値のデータ型を文字で返す
typeof 37 === “number”
typeof “hoge” === “string”
typeof {a: 1} === “object”
typeof undefined === “undefined”
typeof null === ???
ではこれは何になるでしょうか
typeof null
typeof null === ???
ではこれは何になるでしょうか
typeof null === “object”
※nullはプリミティブ値です
どうしてこうなった
歴史的経緯
初期のJavaScriptの実装では各値の32bit領域中に以下の
type tagデータが入っていた
http://www.2ality.com/2013/10/typeof-null.html
● 000: object
● 1: int
● 010: double
● 100: string
● 110: boolean
歴史的経緯
typeof演算子はtype tagでチェックしていた
if (JSVAL_IS_VOID(v)) {
type = JSTYPE_VOID;
} else if (JSVAL_IS_OBJECT(v)) {
…
type = JSTYPE_OBJECT
歴史的経緯
nullはnull pointer(0x00)で表されていたので、type tagが
objectと同じになる!!
→ typeof null === “object”
歴史的経緯
Brendan Eichが納期に追われて作ってしまったらしい...
糞言語かよ!!
typeof null
● 10年くらい前からtypeof nullが”null”を返すように変更する
かは議論されていた
○ http://wiki.ecmascript.org/doku.php?id=discussion:typeof
typeof null
● 当然ECMAScript6で修正しようという風潮はあったが...
○ V8では実装されていたらしい
typeof null
● typeof nullが”object”を返すことに依存したコードが多く存
在した
○ このまま仕様を変えると古いWebページが見れなくなるかも
○ 古いコードの解釈が変わらないようにしないといけない
■ 前方互換性
typeof null
● typeof nullが”object”を返すことに依存したコードが多く存
在した
○ このまま仕様を変えると古いWebページが見れなくなるかも
○ 古いコードの解釈が変わらないようにしないといけない
■ 前方互換性
手遅れ
余談
● この件に関して、Brendan EichとDouglas Crockfordの意
見は当初の段階で分かれてるっぽい
○ Brendan Eich: JavaScript作った人。偉い
○ Douglas Crockford: JSONとか作った人。偉い
余談
● Eich「前方互換性を壊すので慎重にすべき」
● Crockford「古いコードが壊れてでもやるべき」
そのうち解決されますように...
3つ目
array & generator
comprehensions
array & generator comprehensions
● array comprehension
○ [for (i of [1, 2, 3]) i * i] // => [1, 4, 9]
● generator comprehension
○ (for (i of [1, 2, 3]) i * i) // => 1, 4, 9を順に返すgenerator
あっ、これPythonで見たことあるやつだ!
(Pythonだとリスト内包表記って呼ばれてるよね)
実は
● ECMAScript勉強会でやりました
○ http://kmc.hatenablog.jp/entry/2014/07/26/181228
● 2014/7/26日時点(Rev26)では仕様に含まれていた
○ Firefoxでは実装されてて動く
● 個人的には便利そうだしかなり気に入ってた
悲劇は突然
つらい・・・
何があったのか
● https://esdiscuss.org/notes/2014-07-30#4-7-revisit-
comprehension-decision-from-last-meeting-
● このミーティングでDave Hermanがcomprehensionの問
題点を指摘
○ JavaScriptで書いた3種類の数独ソルバーを提示
■ no comprehension style
■ LINQ style
■ pythonic style
no comprehensions style
https://github.com/dherman/sudoku/blob/master/solver.methods.js
LINQ style
https://github.com/dherman/sudoku/blob/master/solver.linq.js
pythonic style
https://github.com/dherman/sudoku/blob/master/solver.pythonic.js
どれがよい?
no comprehensions style
● iteratorにmapやfilter等の便利メソッドを追加した形
● 今まで通りのJavaScriptって感じで読める
LINQ style
● generator comprehensionを使ってLINQを意識した形
● comprehensionとメソッドチェインが混ざっている
pythonic style
● array comprehensionを使ってpythonを意識した形
● comprehensionとメソッドチェインが混ざっている
流れ変わったな
● これを見る前は支持していた人も多かったようだが...
○ 既に仕様に入ってたし
● 見たあとは
○ comprehensions使わなくても書けるじゃん
○ むしろ使いたくない
流れ変わったな
comprehensions、敗北
いや、まだ死んでない
● 結局、ECMAScript7まで延期とのこと
● 今後の状況では復活する可能性も
○ が、現状ではほぼ死にかけな気がする
内包表記君、どこ行ってしもうたんや
● 突然の消失に惜しむ声が多数
○ https://esdiscuss.org/topic/comprehensions-where-art-thou
内包表記君、どこ行ってしもうたんや
● ミーティングに参加していなかった人から不満が出てくる
内包表記君、どこ行ってしもうたんや
「あんなコードはPythonicじゃないし、comprehensionが80文
字を超えてる時点でなんか変でしょ」
内包表記君、どこ行ってしもうたんや
Brendan Eich「求められていたのはArrayを(iterableや即時と
遅延等に分けて)一般化することだった。それにデリミタ(区切り
文字)が足りてないのに、わざわざ消費する必要はないよね」
comprehension
またお会いしましょう
4つ目
Private Symbols
Symbol
● SymbolオブジェクトがECMAScript6から導入された
● RubyのSymbolとスコシニテル
● 用途としては、文字列以外の特殊なプロパティとして使われ
ることが想定されていそう
○ obj[Symbol.toStringTag] = ‘tag’
● ユニークなSymbolを生み出すことができる
○ Symbol('foo') !== Symbol('foo')
Symbol
● オブジェクトのプロパティのうち、キーがSymbolになってい
るものを取り出すことができる
var obj = {};
var sym = Symbol();
obj[sym] = 1;
Object.getOwnPropertySymbols(obj)[0] === sym;
Private Symbol
● https://esdiscuss.org/topic/proposal-about-private-
symbol
● 「getOwnPropertySymbolsで取り出せないPrivate Symbol
が欲しい」
● 提案したのは中国の高校生
Private Symbol
Private Symbolがあれば
var obj = function() {
var privateSym = Symbol(‘hoge’, true);
this[privateSym] = ‘秘密のデータ’
};
privateSymが分からないのでobjから秘密のデータが見えない
と、思いきや
Private Symbol
Private Symbolがあれば
var obj = function() {
var privateSym = Symbol(‘hoge’, true);
this[privateSym] = ‘秘密のデータ’
};
var x = {};
obj.call(x); // => xにproxyを設定しておけばprivateSymがわかる
コード書きなおし
Private Symbol
Symbolを外から参照できないようにするためだけなのに、長い!!
簡単に安全なコードを
かけないようじゃダメ
余談
● Private Symbolに関しては、過去にもっと条件をつけて提
案した人がいたが、WeakMapとProxyの関係上失敗したら
しい
○ https://github.com/zenparsing/es-abstract-
refs/issues/11#issuecomment-65723350
社会は厳しい
5つ目
いつの間にかなくなってたけど
理由がはっきり分からないやつ
いつの間にかなくなってたけど
理由がはっきり分からないやつ
時間が足りませんでした!(土下座
Object Literal Extensions
● http://wiki.ecmascript.org/doku.php?id=harmony:
object_literals
● Objectの文法拡張提案
○ Set Literal [[Prototype]] Operator
○ Object Literal Property Shorthands
○ Object Literal Property Value Shorthand
○ Object Literal Computed Property Keys
○ Object Initialiser super References
○ Object Extension Literal
Object Literal Extensions
● http://wiki.ecmascript.org/doku.php?id=harmony:
object_literals
● Objectの文法拡張提案
○ Set Literal [[Prototype]] Operator → 死亡
○ Object Literal Property Shorthands → 一部死亡
○ Object Literal Property Value Shorthand → 生存
○ Object Literal Computed Property Keys → 生存
○ Object Initialiser super References → 一部死亡
○ Object Extension Literal → 死亡
Set Literal [[Prototype]] Operator
Set Literal [[Prototype]] Operator
● http://wiki.ecmascript.org/doku.php?id=harmony:
proto_operator
● MemberExpression <| ProtoLiteral
○ という構文
基本的な機能
右の値(RHS)の[[Prototype]]に左のオブジェクト(LHS)を代入し
て返す
(LHSを継承したRHSを返すみたいなイメージ)
var obj = {c: 3};
var newObj = obj <| {a: 1, b: 2};
newObj.c // => 3
ただし、右が関数式の場合は
RHSにくるもので挙動が異なる!
なんとなく
死んだ理由がわかった気がする...
(そもそも <| って気持ち悪い)
要調査
● class(ECMAScript6から追加された)のextendsとして生ま
れ変わったのかも?
○ https://esdiscuss.org/topic/alternative-syntax-for
class Parent { … }
class Child extends Parent { … }
class Child2 extends (function() {}) { … }
Object Literal Property Shorthands
Object Literal Property Shorthands
var old = {
bar: 1,
foo: function() { return 1 }
};
var new = {
bar := 1,
foo() { return 1 }
};
// ※newオブジェクトのpropertyは全てnon-writable
Object Literal Property Shorthands
var old = {
bar: 1,
foo: function() { return 1 }
};
var new = {
bar := 1, → 死亡
foo() { return 1 } → 生存
};
// ※newオブジェクトのpropertyは全てnon-writable
なんでそうなったかは不明
Object Initialiser super References
Object Initialiser super References
● http://wiki.ecmascript.org/doku.php?id=harmony:
object_initialiser_super
● super keywordを使って継承元のclassのメソッドが呼び出
せる
○ Pythonで見たことあるkeywordだな...
Object Initialiser super References
生き残った例
class Parent {
foo() { … }
}
class Child extend Parent {
foo() { super(); }
}
Object Initialiser super References
生き残った例2
class Parent {
foo() { … }
}
class Child extend Parent {
bar() { super.foo(); }
}
Object Initialiser super References
死んだ例(当初はclassはなかったので、classがあったと想定)
class Child extend Parent {
get super set f(v) { f = v; }
}
Object Initialiser super References
class Child extend Parent {
get super set f(v) { f = v; }
}
上と下は同じ
class Child extend Parent {
set f(v) { f=v; }
get f() { return super.f; }
}
get super set…うーん...
(set super getもある)
Object Extension Literal
Object Extension Literal
.を使ってオブジェクトを拡張できるリテラル
var obj = {};
obj.{ a: 1, b: 2, c: 3 };
obj.a // => 1
過激だ!
Object Extension Literal
● そこそこ物議を醸した
○ https://esdiscuss.org/topic/new-object-extension-literal-strawman
● さらに、これを使ったclass定義を考える人も
○ http://wiki.ecmascript.org/doku.php?id=harmony:
object_extension_literal_class_pattern
Object Extension Literal
過激だ!!
ところで、生き残った構文は?
Object Literal Property Value
Shorthand
Object Literal Property Value Shorthand
オブジェクトの初期化時に、変数名とプロパティ名が同じ場合に
使える省略記法
var a = 1, b = 2;
var old = { a: a, b: b };
var new = { a, b };
Object Literal Computed
Property Keys
Object Literal Computed Property Keys
オブジェクトの初期化時に、プロパティ名に式の評価結果を与
えることができる
var a = ‘key’;
var old = {}; old[a] = 1;
var new = { [a]: 1 };
個人的にはあまり使いたくない
終わりに
まとめ
● Proposalにもいろいろある
○ こんなん考えたんだけどどう?程度のものから
○ Abstruct Syntax Tree入りの仕様を持ってくるものまで
● コミュニティの皆様方、お疲れ様です...
○ 特に前者のProposalは意図を把握するのが大変そう
○ ミーティングが思ったより戦いっぽくて大変そう
死んでいったProposalに黙祷

More Related Content

What's hot

よいコード、わるいコード
よいコード、わるいコードよいコード、わるいコード
よいコード、わるいコード
京大 マイコンクラブ
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
DeNA
 
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかRustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
ShunsukeNakamura17
 
学位論文の書き方メモ (Tips for writing thesis)
学位論文の書き方メモ (Tips for writing thesis)学位論文の書き方メモ (Tips for writing thesis)
学位論文の書き方メモ (Tips for writing thesis)
Nobuyuki Umetani
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
Masashi Shibata
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
 
研究効率化Tips Ver.2
研究効率化Tips Ver.2研究効率化Tips Ver.2
研究効率化Tips Ver.2
cvpaper. challenge
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
 
【DL輪読会】Ego-Exo: Transferring Visual Representations from Third-person to Firs...
【DL輪読会】Ego-Exo: Transferring Visual Representations from Third-person to Firs...【DL輪読会】Ego-Exo: Transferring Visual Representations from Third-person to Firs...
【DL輪読会】Ego-Exo: Transferring Visual Representations from Third-person to Firs...
Deep Learning JP
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
 
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
uchan_nos
 
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
Yahoo!デベロッパーネットワーク
 
MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理
Takeshi Yamamuro
 
Rustで3D graphics programming
Rustで3D graphics programmingRustで3D graphics programming
Rustで3D graphics programming
KiyotomoHiroyasu
 

What's hot (20)

よいコード、わるいコード
よいコード、わるいコードよいコード、わるいコード
よいコード、わるいコード
 
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechconUnityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
 
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかRustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
 
学位論文の書き方メモ (Tips for writing thesis)
学位論文の書き方メモ (Tips for writing thesis)学位論文の書き方メモ (Tips for writing thesis)
学位論文の書き方メモ (Tips for writing thesis)
 
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
 
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
サイバーエージェントにおけるMLOpsに関する取り組み at PyDataTokyo 23
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
研究効率化Tips Ver.2
研究効率化Tips Ver.2研究効率化Tips Ver.2
研究効率化Tips Ver.2
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
【DL輪読会】Ego-Exo: Transferring Visual Representations from Third-person to Firs...
【DL輪読会】Ego-Exo: Transferring Visual Representations from Third-person to Firs...【DL輪読会】Ego-Exo: Transferring Visual Representations from Third-person to Firs...
【DL輪読会】Ego-Exo: Transferring Visual Representations from Third-person to Firs...
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
ctypes拡張モジュール
ctypes拡張モジュールctypes拡張モジュール
ctypes拡張モジュール
 
OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事OSを手作りするという趣味と仕事
OSを手作りするという趣味と仕事
 
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
深層学習による自然言語処理入門: word2vecからBERT, GPT-3まで
 
MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理MLflowによる機械学習モデルのライフサイクルの管理
MLflowによる機械学習モデルのライフサイクルの管理
 
Rustで3D graphics programming
Rustで3D graphics programmingRustで3D graphics programming
Rustで3D graphics programming
 

Similar to ECMAScript没proposal追悼式

JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
 
JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説
賢次 海老原
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
和弘 井之上
 
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
Ransui Iso
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
decode2016
 
Node.jsでつくるNode.js ミニインタープリター&コンパイラー
Node.jsでつくるNode.js ミニインタープリター&コンパイラーNode.jsでつくるNode.js ミニインタープリター&コンパイラー
Node.jsでつくるNode.js ミニインタープリター&コンパイラー
mganeko
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Yu Nobuoka
 
PHP & Queue
PHP & QueuePHP & Queue
PHP & Queuesasezaki
 
JavaScript 非同期処理 入門
JavaScript非同期処理 入門JavaScript非同期処理 入門
JavaScript 非同期処理 入門
Ishibashi Ryosuke
 
Dotnetconf2017
Dotnetconf2017Dotnetconf2017
Dotnetconf2017
Yoshiyuki Taniguchi
 
TensorFlow XLAの可能性
TensorFlow XLAの可能性 TensorFlow XLAの可能性
TensorFlow XLAの可能性
Mr. Vengineer
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
Hiro Yoshioka
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
dynamis
 
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめようLastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
Shinsuke Sugaya
 
Javascript勉強会資料1
Javascript勉強会資料1Javascript勉強会資料1
Javascript勉強会資料1Kenji Kaneko
 
第2回勉強会スライド
第2回勉強会スライド第2回勉強会スライド
第2回勉強会スライド
koturn 0;
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
hakugakucafe
 

Similar to ECMAScript没proposal追悼式 (20)

JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説JavaScriptおよびXPages Vote技術解説
JavaScriptおよびXPages Vote技術解説
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
 
Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6Lisp Tutorial for Pythonista Day 6
Lisp Tutorial for Pythonista Day 6
 
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
DEV-011_TypeScript ~Any browser. Any host. Any OS. Open Source~
 
Node.jsでつくるNode.js ミニインタープリター&コンパイラー
Node.jsでつくるNode.js ミニインタープリター&コンパイラーNode.jsでつくるNode.js ミニインタープリター&コンパイラー
Node.jsでつくるNode.js ミニインタープリター&コンパイラー
 
jenkinsで遊ぶ
jenkinsで遊ぶjenkinsで遊ぶ
jenkinsで遊ぶ
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
 
PHP & Queue
PHP & QueuePHP & Queue
PHP & Queue
 
JavaScript 非同期処理 入門
JavaScript非同期処理 入門JavaScript非同期処理 入門
JavaScript 非同期処理 入門
 
Dotnetconf2017
Dotnetconf2017Dotnetconf2017
Dotnetconf2017
 
TensorFlow XLAの可能性
TensorFlow XLAの可能性 TensorFlow XLAの可能性
TensorFlow XLAの可能性
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
JavaScript入門
JavaScript入門JavaScript入門
JavaScript入門
 
LastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめようLastaFluteでKotlinをはじめよう
LastaFluteでKotlinをはじめよう
 
Javascript勉強会資料1
Javascript勉強会資料1Javascript勉強会資料1
Javascript勉強会資料1
 
第2回勉強会スライド
第2回勉強会スライド第2回勉強会スライド
第2回勉強会スライド
 
C#勉強会
C#勉強会C#勉強会
C#勉強会
 

More from 京大 マイコンクラブ

テキストファイルを読む💪 第1回
テキストファイルを読む💪  第1回テキストファイルを読む💪  第1回
テキストファイルを読む💪 第1回
京大 マイコンクラブ
 
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
京大 マイコンクラブ
 
Common Lisp入門
Common Lisp入門Common Lisp入門
Common Lisp入門
京大 マイコンクラブ
 
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
京大 マイコンクラブ
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
京大 マイコンクラブ
 
Geometry with Unity
Geometry with UnityGeometry with Unity
Geometry with Unity
京大 マイコンクラブ
 
セミコロンレスc++
セミコロンレスc++セミコロンレスc++
セミコロンレスc++
京大 マイコンクラブ
 
エンジニアと健康
エンジニアと健康エンジニアと健康
エンジニアと健康
京大 マイコンクラブ
 
女の子になれなかった人のために
女の子になれなかった人のために女の子になれなかった人のために
女の子になれなかった人のために
京大 マイコンクラブ
 
Pietで競プロしよう
Pietで競プロしようPietで競プロしよう
Pietで競プロしよう
京大 マイコンクラブ
 
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったらもし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
京大 マイコンクラブ
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
京大 マイコンクラブ
 
ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会
京大 マイコンクラブ
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
京大 マイコンクラブ
 
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
京大 マイコンクラブ
 
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
京大 マイコンクラブ
 
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
京大 マイコンクラブ
 
Altseed
AltseedAltseed
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
京大 マイコンクラブ
 
C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回
京大 マイコンクラブ
 

More from 京大 マイコンクラブ (20)

テキストファイルを読む💪 第1回
テキストファイルを読む💪  第1回テキストファイルを読む💪  第1回
テキストファイルを読む💪 第1回
 
かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話かわいくなろうとしたら語彙力が下がった話
かわいくなろうとしたら語彙力が下がった話
 
Common Lisp入門
Common Lisp入門Common Lisp入門
Common Lisp入門
 
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
 
つくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタつくってあそぼ ラムダ計算インタプリタ
つくってあそぼ ラムダ計算インタプリタ
 
Geometry with Unity
Geometry with UnityGeometry with Unity
Geometry with Unity
 
セミコロンレスc++
セミコロンレスc++セミコロンレスc++
セミコロンレスc++
 
エンジニアと健康
エンジニアと健康エンジニアと健康
エンジニアと健康
 
女の子になれなかった人のために
女の子になれなかった人のために女の子になれなかった人のために
女の子になれなかった人のために
 
Pietで競プロしよう
Pietで競プロしようPietで競プロしよう
Pietで競プロしよう
 
もし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったらもし太陽のコアがIntelCoreだったら
もし太陽のコアがIntelCoreだったら
 
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
C# ゲームプログラミングはホントにメモリのことに無頓着でいいの?
 
ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会ドット絵でプログラミング!難解言語『Piet』勉強会
ドット絵でプログラミング!難解言語『Piet』勉強会
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
 
DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」DTM練習会2017第1.5回 「伴奏の付け方」
DTM練習会2017第1.5回 「伴奏の付け方」
 
hideya流 テストプレイ観察術
hideya流 テストプレイ観察術hideya流 テストプレイ観察術
hideya流 テストプレイ観察術
 
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
 
Altseed
AltseedAltseed
Altseed
 
C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回C#でゲームを作る2016 第8回
C#でゲームを作る2016 第8回
 
C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回C#でゲームを作る2016 第7回
C#でゲームを作る2016 第7回
 

Recently uploaded

「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
kitamisetagayaxxx
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
ARISE analytics
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
sugiuralab
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
Yuki Miyazaki
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
Osaka University
 

Recently uploaded (10)

「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptxiMacwoSu_Gong_de_barabaranishitaHua_.pptx
iMacwoSu_Gong_de_barabaranishitaHua_.pptx
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
【JSAI2024】LLMエージェントの人間との対話における反芻的返答の親近感向上効果_v1.1.pdf
 
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
ヒアラブルへの入力を想定したユーザ定義型ジェスチャ調査と IMUセンサによる耳タッチジェスチャの認識
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
無形価値を守り育てる社会における「デー タ」の責務について - Atlas, Inc.
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
協働AIがもたらす業務効率革命 -日本企業が押さえるべきポイント-Collaborative AI Revolutionizing Busines...
 

ECMAScript没proposal追悼式