SlideShare a Scribd company logo
Goでプログラミング言語
(の途中まで)を
作ろう
esehara shigeo
お前
誰だ
esehara shigeo
ただのWeb系プログラマー
(Python使い)
Webプログラマーに
ありがちな中二病
Lisp
※皆様がいるカンファレンスはGo Conです。安心してください。
Lispが持つ病
1. 関数型言語カッコイイ!
2. 関数型言語の元祖といえばLisp!カッ
コイイ!(括弧なだけに)
3. コンピューターサイエンス、Artifact
Intelligenceの分野でも活躍!
Awesome!
4. Lispが使いこなせると構文木も自由自
在!
Lispは
もっとも美しい
言語
※皆様がいるカンファレンスはGo Conです。安心してください。
全ての言語は
S式を
信じられない
人間によって作ら
れる
「Lispはエリート向けの言語」
LL系プログラマーに
ありがちな中二病
C言語
※皆様がいるカンファレンスはGo Conです。安心してください。
C言語が持つ病
1. 「Lightweight Languageって所詮富豪
プログラミングだよねー」
2. 「Lightweight Languageって所詮ポイ
ンタとかメモリアドレスとか知らないんで
しょ」
3. 「Lightweight Languageってコンパイル
のこととか所詮わからないんでしょ」
屈辱ッ!
でもC言語は
つらぽよ……
そんな貴方の
ための!!
Go
※皆様がいるカンファレンスはGo Conです。安心してください。
前置きは
ここまで
そもそもプログラミング言語
処理ってなに?
How to Create Your Own
Programming Language

http://createyourproglang.com/
“The book I want to read.”
プログラミング言語処理の流れ

『Create your own language』より
字句解析(Tokenize)
とは?
文字のカタマリ
によって
その文字が
何に属するのか
を分析する
例: Haskell 2010 Language Report
literal -> integer | float | char | string
digit -> ascDigit | uniDigit
ascDigit -> 0 | 1 | … | 9
uniDigit -> any Unicode descimal decit
decimal -> digit{digit}
integer -> decimal
Goで

字句解析器を作ろう
packageに
あるよ!
>
Tips: 困ったら公式のGoのpackageのソースを読みましょう
go/scanner
使える

http://www.oki-osk.jp/esc/golang/lisp.html
とはいえ、
このSourceを入れ替えて
使うのはつらいので
自動
生成
Ragel :: State Machine Compiler
Ragel compiles executable
finite state machines from
regular languages. Ragel
targets C, C++, ObjectiveC, C#, D, Java, Ruby,
OCaml and

Go.
そして
Rust班も頑張ってる(まだ非公式)
Ragelの書きかた
# ---- Literal ---string = ("'" . (any - "'")* . "'")
    |('"' . (any - '"')* . '"');
integer = digit+;
atom = (alpha (alpha | digit)* );
# ---- Operator ---operator = "+" | "-" | "*" | "/";
main := |*
atom => {
material := Ore{
Token: ATOM,
Value: data[ts:te],
}
material.Research()
ores = append(ores, material)
};

String => {
material := Ore{
Token: STRING,
Value: data[ts:te],
}
material.Research()
ores = append(ores, material)
};
….
二つの流れ

どの文字の規則を
トークンとして定義するか?
トークンをどのように
管理するか?
文字の規則とトークン
# ---- Literal ---string = ("'" . (any - "'")* . "'")
    |('"' . (any - '"')* . '"');
integer = digit+;
atom = (alpha (alpha | digit)* );
# ---- Operator ---operator = "+" | "-" | "*" | "/";
Ragelによる図式化
トークンの処理
main := |*
atom => {
material := Ore{
Token: ATOM,
Value: data[ts:te],
}
material.Research()
ores = append(ores, material)
};
トークンの管理方法

type Ore struct {
Token Token // int
Name string
}
トークンの定義
const(
//Special Token
ILLEGAL Token = iota
EOF
COMMENT
begin_define_literal
ATOM
STRING
INTEGER
end_define_literal
………
)

参考: go/token
このように作った
トークンの順序を
構文解析する
Goで

構文解析器を作ろう
toolに
あるよ!
>
go tool yacc
Yacc is a version of yacc for Go.
It is written in Go and generates parsers written in Go.
(公式より)
yaccとは?

Yet Another
Compiler Compiler
go yaccの書きかた
%type <val> ATOM, STRING, OPERATOR, BINDER, DEFINE
%type <val> ARG
%type <val> action, Expression
%type <values> StringExpression, AtomExpression
%%

%{
package casting
import (
"fmt"
"..
/miner"
)
%}
%union {
tok int
val interface{}
values Val
box Box
}
%token ATOM STRING
%token ARG
%token OPERATOR BINDER DEFINE
%token ROUNDPAREN_O ROUNDPAREN_C

action:
ATOM {
var v Value
v = Box{Type: ATOM, Value: $1,}
yylex.(*lex).NewBox(v)
}
| Expression {
if val, ok := $1.(Val); ok {
yylex.(*lex).root = val
}
}
...
何してるの?

トークンの順序を
解釈しやすいように再構築
利用するトークンの定義

%token ATOM STRING
%token ARG
%token OPERATOR
%token BINDER DEFINE
%token ROUNDPAREN_O
ROUNDPAREN_C
ここで一つ
問題が
Ragelで宣言したトークンと
go yaccで宣言したトークンは
お互いどういう対応に
なってるかを知らない
対応させましょう
var oretokens = [...]int {
miner.ATOM: ATOM,
miner.STRING: STRING,
miner.OPERATOR: OPERATOR,
miner.BINDER: BINDER,
miner.ROUNDPAREN_O: ROUNDPAREN_O,
miner.ROUNDPAREN_C: ROUNDPAREN_C,
}
func toToken(ore miner.Ore) int {
return oretokens[ore.Token]
}
もう一つ
問題が
Go yaccで宣言したトークンが
どのような型になってるべきか
を教えてないといけない
トークンの型定義
%union {
tok int
val interface{}
values Val
box Box
}
%type <val> ATOM, STRING, OPERATOR, BINDER,
DEFINE
%type <val> ARG
%type <val> action, Expression
%type <values> StringExpression, AtomExpression
あとは
抽象構文木を
作成しよう
抽象構文木とは

http://en.wikipedia.org/wiki/Abstract_syntax_tree
抽象構文木 =
Node =
配列の入れ子
例
Goで

抽象構文木を歩こう
packageに
あるよ!
>
Tips: 困ったら公式のGoのpackageのソースを読みましょう
go/ast
Package ast declares the types used to represent
syntax trees for Go packages. (公式より)
※実はPythonにも標準パッケージとしてあります
ネタが尽
きました
おまけ
関数宣言の
管理
関数宣言の管理とGlobal Environment

http://www-inst.eecs.berkeley.edu/~cs61a/sp12/book/
Global
Environment
は一つ
シングルトン
だ!
トークンの型定義
type Env interface{}
type envs []Env
var environment envs
type EnvValue struct {
Name string
Val Env
}
func AccessEnv() *envs {
return &environment
}
DEMO
Go languageで大切なこと
標準Package
の
ソースは
宝の山
さしずめこんな感じ
ご清聴
ありがとう
ございました
https://github.com/
esehara/Perid

More Related Content

What's hot

マスター・オブ・goパッケージ
マスター・オブ・goパッケージマスター・オブ・goパッケージ
マスター・オブ・goパッケージ
Takuya Ueda
 
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
Takuya Ueda
 
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine今日から始める Go言語 と appengine
今日から始める Go言語 と appengine
a know
 
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
Takuya Ueda
 
エキスパートGo
エキスパートGoエキスパートGo
エキスパートGo
Takuya Ueda
 
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri
Yoshifumi Yamaguchi
 
マスター・オブ・reflectパッケージ II
マスター・オブ・reflectパッケージ IIマスター・オブ・reflectパッケージ II
マスター・オブ・reflectパッケージ II
Takuya Ueda
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
 
tse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティtse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティ
Atsuo Ishimoto
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語Go
Yoshifumi Yamaguchi
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
Takuya Ueda
 
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
Takuya Ueda
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
Yasutaka Kawamoto
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App Engine
Takuya Ueda
 
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
Yoshifumi Yamaguchi
 
マスター・オブ・Reflectパッケージ
マスター・オブ・Reflectパッケージマスター・オブ・Reflectパッケージ
マスター・オブ・Reflectパッケージ
Takuya Ueda
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方Yosuke Furukawa
 
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋Takuya Ueda
 
KMC Font Project 3 - FontForgeで欧文書体製作
KMC Font Project 3 - FontForgeで欧文書体製作KMC Font Project 3 - FontForgeで欧文書体製作
KMC Font Project 3 - FontForgeで欧文書体製作
k maztani
 
Pynyumon03 LT
Pynyumon03 LTPynyumon03 LT
Pynyumon03 LT
drillan
 

What's hot (20)

マスター・オブ・goパッケージ
マスター・オブ・goパッケージマスター・オブ・goパッケージ
マスター・オブ・goパッケージ
 
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
 
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine今日から始める Go言語 と appengine
今日から始める Go言語 と appengine
 
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
Goroutineとchannelから始めるgo言語@初心者向けgolang勉強会
 
エキスパートGo
エキスパートGoエキスパートGo
エキスパートGo
 
20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri20130824 Lightweight Language "Go" @LL matsuri
20130824 Lightweight Language "Go" @LL matsuri
 
マスター・オブ・reflectパッケージ II
マスター・オブ・reflectパッケージ IIマスター・オブ・reflectパッケージ II
マスター・オブ・reflectパッケージ II
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 
tse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティtse - Pythonによるテキスト整形ユーティリティ
tse - Pythonによるテキスト整形ユーティリティ
 
20130316 プログラミング言語Go
20130316 プログラミング言語Go20130316 プログラミング言語Go
20130316 プログラミング言語Go
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
 
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App Engine
 
20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)20130228 Goノススメ(BPStudy #66)
20130228 Goノススメ(BPStudy #66)
 
マスター・オブ・Reflectパッケージ
マスター・オブ・Reflectパッケージマスター・オブ・Reflectパッケージ
マスター・オブ・Reflectパッケージ
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
 
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
 
KMC Font Project 3 - FontForgeで欧文書体製作
KMC Font Project 3 - FontForgeで欧文書体製作KMC Font Project 3 - FontForgeで欧文書体製作
KMC Font Project 3 - FontForgeで欧文書体製作
 
Pynyumon03 LT
Pynyumon03 LTPynyumon03 LT
Pynyumon03 LT
 

Similar to Goで言語処理系(の途中まで)を作ろう

おとなのテキストマイニング
おとなのテキストマイニングおとなのテキストマイニング
おとなのテキストマイニング
Munenori Sugimura
 
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているF#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているpocketberserker
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
Nobuhisa Koizumi
 
つくっておぼえる!仮想マシン〜直前で実装編〜
つくっておぼえる!仮想マシン〜直前で実装編〜つくっておぼえる!仮想マシン〜直前で実装編〜
つくっておぼえる!仮想マシン〜直前で実装編〜
Eric Sartre
 
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
 
Lombok ハンズオン
Lombok ハンズオンLombok ハンズオン
Lombok ハンズオン
Hiroto Yamakawa
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
Taketo Sano
 
Exgettextの話
Exgettextの話Exgettextの話
Exgettextの話k1complete
 
Scalaで学ぶ関数型超入門
Scalaで学ぶ関数型超入門Scalaで学ぶ関数型超入門
Scalaで学ぶ関数型超入門
Yuichiro Takahashi
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語R
Shuyo Nakatani
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
mitim
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
Masahiro Wakame
 
Erlangご紹介 websocket編
Erlangご紹介 websocket編Erlangご紹介 websocket編
Erlangご紹介 websocket編
Masatoshi Itoh
 
パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"
Keisuke Takahashi
 
言語処理系入門1
言語処理系入門1言語処理系入門1
言語処理系入門1
Kenta Hattori
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行monglee
 
Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回
Jun Ohtani
 
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクトOpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
uchan_nos
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
masahitojp
 

Similar to Goで言語処理系(の途中まで)を作ろう (20)

おとなのテキストマイニング
おとなのテキストマイニングおとなのテキストマイニング
おとなのテキストマイニング
 
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているF#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
 
つくっておぼえる!仮想マシン〜直前で実装編〜
つくっておぼえる!仮想マシン〜直前で実装編〜つくっておぼえる!仮想マシン〜直前で実装編〜
つくっておぼえる!仮想マシン〜直前で実装編〜
 
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
 
Lombok ハンズオン
Lombok ハンズオンLombok ハンズオン
Lombok ハンズオン
 
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフトobjc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
 
Exgettextの話
Exgettextの話Exgettextの話
Exgettextの話
 
Scalaで学ぶ関数型超入門
Scalaで学ぶ関数型超入門Scalaで学ぶ関数型超入門
Scalaで学ぶ関数型超入門
 
普通のプログラミング言語R
普通のプログラミング言語R普通のプログラミング言語R
普通のプログラミング言語R
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 
ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3ng-japan 2015 TypeScript+AngularJS 1.3
ng-japan 2015 TypeScript+AngularJS 1.3
 
Erlangご紹介 websocket編
Erlangご紹介 websocket編Erlangご紹介 websocket編
Erlangご紹介 websocket編
 
パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"パーフェクト"Elixir情報収集"
パーフェクト"Elixir情報収集"
 
言語処理系入門1
言語処理系入門1言語処理系入門1
言語処理系入門1
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
 
Introduction to Erlang/OTP
Introduction to Erlang/OTPIntroduction to Erlang/OTP
Introduction to Erlang/OTP
 
Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回Lucene gosenの紹介 solr勉強会第7回
Lucene gosenの紹介 solr勉強会第7回
 
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクトOpeLa: セルフホストなOSと言語処理系を作るプロジェクト
OpeLa: セルフホストなOSと言語処理系を作るプロジェクト
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 

Recently uploaded

【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 

Recently uploaded (14)

【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 

Goで言語処理系(の途中まで)を作ろう