Movatterモバイル変換


[0]ホーム

URL:


TM
Uploaded byTaku Miyakawa
4,066 views

言語設計者が意味論を書くときに考えていたこと

All about Kink semantics

Embed presentation

Download to read offline
 @miyakawa_taku JJUG幹事 SI屋で賃労働 オレオレJVM言語Kinkを作っていますhttps://bitbucket.org/kink/kink 尾上部屋の里山関のファンです自己紹介1
2Kinkとは!こんなの↓ プロトタイプベースのオブジェクト指向言語 JVM上で動く言語処理系だ! 仕様策定者: 宮川 拓 実装者: 宮川 拓 ユーザ: 宮川 拓
言語設計者が意味論を書く時に考えていた事2015-04-18 渋谷JVM LT宮川 拓
4はいけい去年の7月から12月ごろに掛けて、Kinkの意味論を一通り書き直しました例示によるゆるふわ意味論では無理が出てきた 何が正しいか分からない……
5Kinkの意味論http://doc.kink-lang.org/kink/manual-ja/language/semantics.html
言語の意味論の分類 表示的意味論 プログラムの項の集合を他のなにかの集合にマッピングする意味論 操作的意味論 あるプログラムがどんな風に動くか、を記述する意味論 公理的意味論 なんか難しくてよく分からん6
7Kinkのプログラム意味論(にゅー)二段階に分けてます1. 表示的意味論2. 操作的意味論
表示的意味論の部分8:Var = 42¥env::Var.op_set(42)env; varref Var; dup;emptylist; num 42;add; flip; deref op_set; call正規化仮想的なスタックマシン (KSM)の命令列に変換
env 環境をpushvarref Varpopした値の変数参照を作ってpushdup popした値をpush, pushemptylist 新しい空のリストをpushnum 42 数値をpushadd値をpop, リストをpopして末尾に値を追加したリストをpush操作的意味論の部分9
10意味論書いてみて分かったこと Kinkのことがよく理解できた! 「ブロックから関数を生成」は、よりプリミティブなふたつの命令に分解できる 処理系のバグが見つけられた! 最適化前と最適化後で、関数呼び出しの処理順序が変わってしまっていた
11教訓みんなもプログラム意味論を書こう!

Recommended

PDF
コルーチンの実装について
PDF
Kotlinこんなん出ましたけど
PDF
Kotlinのwebフレームワーク探訪
PDF
KuromojiをKotlinで動かす
PDF
Kotlinソースコード探訪
PDF
Kotlin as an AltJS
PDF
Kotlinメジャーver リリースを前に
PPTX
開発チームにKotlinを導入した話
PDF
KotlinでWebアプリ開発
PDF
Kotlinあるある言いたい
PDF
Humble Object Patternな話
PPTX
Spring boot劇的ビフォーアフター
PDF
なるべくコードを書かないAndroid開発
PDF
Middleman Guides & How to Learn
PDF
「やっぱり怖かったPerl」In Kichijoji.pm #2
PDF
KotlinつかってQiitaクライアント作った時の話
PDF
IM飲み会2010 Sekka開発秘話
PDF
Androidの世界を離れて異文化留学してみた
PDF
普段C#を使っている僕から見たKotlin
PPTX
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
PPTX
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
PDF
Perlbeginnes 9 lt_ytnobody
PDF
Graph Algorithms Part 1
PDF
入門core.async
 
PDF
楽して JVM を学びたい #jjug
PDF
Java SE 9の紹介: モジュール・システムを中心に
PDF
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
PDF
エスイーのしごと
PPTX
やっとわかったタイピングスピード向上のコツ
PDF
たとえ日本人同士でも必要な異文化理解力

More Related Content

PDF
コルーチンの実装について
PDF
Kotlinこんなん出ましたけど
PDF
Kotlinのwebフレームワーク探訪
PDF
KuromojiをKotlinで動かす
PDF
Kotlinソースコード探訪
PDF
Kotlin as an AltJS
PDF
Kotlinメジャーver リリースを前に
PPTX
開発チームにKotlinを導入した話
コルーチンの実装について
Kotlinこんなん出ましたけど
Kotlinのwebフレームワーク探訪
KuromojiをKotlinで動かす
Kotlinソースコード探訪
Kotlin as an AltJS
Kotlinメジャーver リリースを前に
開発チームにKotlinを導入した話

What's hot

PDF
KotlinでWebアプリ開発
PDF
Kotlinあるある言いたい
PDF
Humble Object Patternな話
PPTX
Spring boot劇的ビフォーアフター
PDF
なるべくコードを書かないAndroid開発
PDF
Middleman Guides & How to Learn
PDF
「やっぱり怖かったPerl」In Kichijoji.pm #2
PDF
KotlinつかってQiitaクライアント作った時の話
PDF
IM飲み会2010 Sekka開発秘話
PDF
Androidの世界を離れて異文化留学してみた
PDF
普段C#を使っている僕から見たKotlin
PPTX
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
PPTX
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
PDF
Perlbeginnes 9 lt_ytnobody
KotlinでWebアプリ開発
Kotlinあるある言いたい
Humble Object Patternな話
Spring boot劇的ビフォーアフター
なるべくコードを書かないAndroid開発
Middleman Guides & How to Learn
「やっぱり怖かったPerl」In Kichijoji.pm #2
KotlinつかってQiitaクライアント作った時の話
IM飲み会2010 Sekka開発秘話
Androidの世界を離れて異文化留学してみた
普段C#を使っている僕から見たKotlin
Kids, Ruby, Fun! ぼくたち、 Rubyプログラミング少年団! 〜小学生からはじめる Ruby プログラミング〜
CLR/H #clrh104 あなたのアプリにスパイスを! ~ コグニティブと対話 Botのプチレシピ
Perlbeginnes 9 lt_ytnobody

Viewers also liked

PDF
Graph Algorithms Part 1
PDF
入門core.async
 
PDF
楽して JVM を学びたい #jjug
PDF
Java SE 9の紹介: モジュール・システムを中心に
PDF
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
PDF
エスイーのしごと
PPTX
やっとわかったタイピングスピード向上のコツ
PDF
たとえ日本人同士でも必要な異文化理解力
PDF
エスイーが要件定義でやるべきたったひとつのこと
PDF
Hadoop jobbuilder
PDF
Kink の宣伝
PDF
Kink: invokedynamic on a prototype-based language
PDF
Kink: プロトタイプベースの俺々 JVM 言語
PDF
Matrix Multiplication in Strassen Algorithm
PPTX
良いコードとは
PDF
Summary of "Hacking", 0x351-0x354
PDF
擬似乱数生成器の評価
PPTX
JVM言語を使ってみようの歌
PDF
JDK9 新機能 (日本語&ショートバージョン) #jjug
PPTX
Java でつくる 低レイテンシ実装の技巧
Graph Algorithms Part 1
入門core.async
 
楽して JVM を学びたい #jjug
Java SE 9の紹介: モジュール・システムを中心に
渋谷JVM#1 Immutable時代のプログラミング言語 Clojure
エスイーのしごと
やっとわかったタイピングスピード向上のコツ
たとえ日本人同士でも必要な異文化理解力
エスイーが要件定義でやるべきたったひとつのこと
Hadoop jobbuilder
Kink の宣伝
Kink: invokedynamic on a prototype-based language
Kink: プロトタイプベースの俺々 JVM 言語
Matrix Multiplication in Strassen Algorithm
良いコードとは
Summary of "Hacking", 0x351-0x354
擬似乱数生成器の評価
JVM言語を使ってみようの歌
JDK9 新機能 (日本語&ショートバージョン) #jjug
Java でつくる 低レイテンシ実装の技巧

More from Taku Miyakawa

PDF
Javaのログ出力: 道具と考え方
PDF
金勘定のためのBigDecimalそしてMoney and Currency API
PDF
Quasar: Actor Model and Light Weight Threads on Java
PDF
ラムダと invokedynamic の蜜月
PDF
Java Quine Golf
PDF
Processing LTSV by Apache Pig
PDF
Java 7 invokedynamic の概要
PDF
Java オブジェクトの内部構造
PDF
Kink: developing a programming language on the JVM
Javaのログ出力: 道具と考え方
金勘定のためのBigDecimalそしてMoney and Currency API
Quasar: Actor Model and Light Weight Threads on Java
ラムダと invokedynamic の蜜月
Java Quine Golf
Processing LTSV by Apache Pig
Java 7 invokedynamic の概要
Java オブジェクトの内部構造
Kink: developing a programming language on the JVM

言語設計者が意味論を書くときに考えていたこと


[8]ページ先頭

©2009-2025 Movatter.jp