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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Livesense Inc.
PRO
April 23, 2014
Technology
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ラムダ計算に基づいた純粋関数型言語の実装~設計と実装~ #TechLunch
2011/06/08(水) @ Livesense TechLunch
発表者:塩足 拓也
Livesense Inc.
PRO
April 23, 2014
More Decks by Livesense Inc.
See All by Livesense Inc.
Rubyはただの⾔語に⾮ず
livesense
PRO
0
450
28新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
110
27新卒_総合職採用_会社説明資料
livesense
PRO
0
6.2k
27新卒_Webエンジニア職採用_会社説明資料
livesense
PRO
0
11k
株式会社リブセンス・転職会議 採用候補者様向け資料
livesense
PRO
0
520
株式会社リブセンス 会社説明資料(報道関係者様向け)
livesense
PRO
1
1.7k
データ基盤の負債解消のためのリプレイス
livesense
PRO
0
650
26新卒_総合職採用_会社説明資料
livesense
PRO
0
13k
株式会社リブセンス会社紹介資料 / Invent the next common.
livesense
PRO
2
70k
Other Decks in Technology
See All in Technology
「休む」重要さ
smt7174
6
1.6k
Webアプリ認証の全体像 / The Big Picture of Web App Authentication
kitano_yuichi
1
430
Playwright × AI Agent でE2Eテストはどう変わるか AI駆動テストの可能性と実用検証の結果
taiga7543
2
810
AI工学特論: MLOps・継続的評価
asei
6
1.3k
データと地図で読む 大井町の「かわるもの、かわらないもの」
yoshiyama_hana
0
160
AI、CDK と協働する Full TypeScript アプリケーション開発 / Full TypeScript Application with AI and CDK
geekplus_tech
2
480
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
480
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
1
1.1k
AIが当たり前の組織で エンジニアはどう育つか
nishihira
1
990
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
『モデル + ハーネス』で読み解く AIエージェント入門
oracle4engineer
PRO
2
170
OPENLOGI Company Profile for engineer
hr01
1
74k
Featured
See All Featured
Docker and Python
trallard
47
4k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
230
Ethics towards AI in product and experience design
skipperchong
2
330
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Un-Boring Meetings
codingconduct
0
350
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
510
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
How to make the Groovebox
asonas
2
2.3k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
410
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
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 ソースコード参照
次回予告 ラムダ式を用いて自然数を定義(チャーチ数)