Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ラムダ計算に基づいた純粋関数型言語の実装~設計と実装~ #TechLunch
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Livesense Inc.
April 23, 2014
Technology
0
380
ラムダ計算に基づいた純粋関数型言語の実装~設計と実装~ #TechLunch
2011/06/08(水) @ Livesense TechLunch
発表者:塩足 拓也
Livesense Inc.
April 23, 2014
Tweet
Share
More Decks by Livesense Inc.
See All by Livesense Inc.
27新卒_総合職採用_会社説明資料
livesense
0
3.5k
27新卒_Webエンジニア職採用_会社説明資料
livesense
0
7.7k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
0
270
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
1
1.7k
データ基盤の負債解消のためのリプレイス
livesense
0
570
26新卒_総合職採用_会社説明資料
livesense
0
13k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
2
57k
26新卒_Webエンジニア職採用_会社説明資料
livesense
1
13k
中途セールス職_会社説明資料
livesense
0
300
Other Decks in Technology
See All in Technology
新規事業×QAの挑戦:不確実性を乗りこなす!フェーズごとに求められるQAの役割変革
hacomono
PRO
0
180
欠陥分析(ODC分析)における生成AIの活用プロセスと実践事例 / 20260320 Suguru Ishii & Naoki Yamakoshi & Mayu Yoshizawa
shift_evolve
PRO
0
390
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
240
DMBOKを使ってレバレジーズのデータマネジメントを評価した
leveragestech
0
250
Phase10_組織浸透_データ活用
overflowinc
0
1.6k
契約書からの情報抽出を行うLLMのスループットを、バッチ処理を用いて最大40%改善した話
sansantech
PRO
2
260
Why we keep our community?
kawaguti
PRO
0
220
形式手法特論:SMT ソルバで解く認可ポリシの静的解析 #kernelvm / Kernel VM Study Tsukuba No3
ytaka23
1
790
君はジョシュアツリーを知っているか?名前をつけて事象を正しく認識しよう / Do you know Joshua Tree?
ykanoh
4
120
Physical AI on AWS リファレンスアーキテクチャ / Physical AI on AWS Reference Architecture
aws_shota
1
130
Datadog で実現するセキュリティ対策 ~オブザーバビリティとセキュリティを 一緒にやると何がいいのか~
a2ush
0
120
Phase07_実務適用
overflowinc
0
1.8k
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.3k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
240
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Language of Interfaces
destraynor
162
26k
Are puppies a ranking factor?
jonoalderson
1
3.2k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
130
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
230
Why Our Code Smells
bkeepers
PRO
340
58k
Become a Pro
speakerdeck
PRO
31
5.9k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
650
Transcript
ラムダ計算に基づいた純粋関数型 言語の実装 2011/06/08 Takuya Shiotari ~設計と実装~
Agenda Lambda calculus Design • Front end UML
• Back end UML Implementation • Lexer(Scanner) • Parser • Term • ...
Lambda calculus 基礎数学論の一分野 1930年代にAlonzo ChurchとStephen Cole Kleeneによって考案
コンパイラの意味論や型理論で利用 LISP、ML、Haskellなどの関数型プログラミング言語の基礎 1つの変換規則(関数適用)と1つの関数定義規則(ラムダ抽 象)のみを持つ、最小のプログラミング言語 チューリングマシンと等価な数理モデル
関数の定義と実行を抽象化した計算モデル Lambda calculus <expr> ::= <identifier> | (“λ” <identifier> “.”
<expr>) | (<expr> <expr>) 変数 ラムダ抽象 関数適用 ラムダ抽象 → 関数定義 f(x) = x 関数適用 → 関数に引数を適用 f(3)
関数の定義と実行を抽象化した計算モデル Lambda calculus <expr> ::= <identifier> | (“λ” <identifier> “.”
<expr>) | (<expr> <expr>) 変数 ラムダ抽象 関数適用 ラムダ抽象 → 関数定義 f(x) = x 関数適用 → 関数に引数を適用 f(3)
Lambda calculus 束縛変数(Bound Variable) ラムダ抽象によって束縛(bound)された変数 (λ x . x)のxは自由変数
(λ x . y)のyは束縛変数 (λ x . (λ y . (x y))) (λ x . y) 自由変数(Free Variable) ラムダ抽象によって束縛(bound)されていない変数 例 FV(x) = {x}, where x is a variable FV(λx.M) = FV(M) \ {x} FV(M N) = FV(M) ∪ FV(N)
Lambda calculus -reduction(evaluation) rule - α-conversion β-reduction 束縛変数は自由変数やその他の束縛変数と重複しないように名前 を書き換える ラムダ計算の式を実行すること
Desigin - front end UML - Lexer Parser Term VariableTerm
ApplicationTerm Term <create> Core <use> Visitor <use> <use> SymbolTable <use>
Design - back end UML - CodeGenerator Term Core Visitor
<use> <use> SymbolTable <use> <use>
Implementation ソースコード参照
次回予告 ラムダ式を用いて自然数を定義(チャーチ数)