Submit Search
Upload
gopher-lua
•
7 likes
•
5,652 views
Takuya Ueda
Follow
gopher-lua
Read less
Read more
Technology
Report
Share
Report
Share
1 of 23
Download now
Download to read offline
Recommended
GoCon_summer
GoCon_summer
Takuya Ueda
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
Takuya Ueda
Goだけでモバイルアプリを作る
Goだけでモバイルアプリを作る
Takuya Ueda
過去に自作したGoプロダクトの紹介 - Goオールスターズ
過去に自作したGoプロダクトの紹介 - Goオールスターズ
Shogo Ichinose
go.mobile で Android 開発
go.mobile で Android 開発
Hiroshi Kurokawa
Go mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろう
Takuya Ueda
粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
goパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現する
Takuya Ueda
Recommended
GoCon_summer
GoCon_summer
Takuya Ueda
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
Takuya Ueda
Goだけでモバイルアプリを作る
Goだけでモバイルアプリを作る
Takuya Ueda
過去に自作したGoプロダクトの紹介 - Goオールスターズ
過去に自作したGoプロダクトの紹介 - Goオールスターズ
Shogo Ichinose
go.mobile で Android 開発
go.mobile で Android 開発
Hiroshi Kurokawa
Go mobileでモバイルアプリを作ろう
Go mobileでモバイルアプリを作ろう
Takuya Ueda
粗探しをしてGoのコントリビューターになる方法
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
goパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現する
Takuya Ueda
GAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使う
Takuya Ueda
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
Masataka Kono
Cloud Functionsの紹介
Cloud Functionsの紹介
Takuya Ueda
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践
Takuya Ueda
Cloud functionsの紹介
Cloud functionsの紹介
Takuya Ueda
GoによるiOSアプリの開発
GoによるiOSアプリの開発
Takuya Ueda
What is "Go" Gopher?
What is "Go" Gopher?
Ryuji Iwata
Hello GoDoc!
Hello GoDoc!
laco0416
Rubyでアプリ開発(2013 0430)
Rubyでアプリ開発(2013 0430)
Shinichirou Nakamura
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
Masataka Kono
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
Takuya Ueda
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Hirokazu Fukami
Go Friday 傑作選
Go Friday 傑作選
Takuya Ueda
ちょっとさわってみるGo言語ハンズオン
ちょっとさわってみるGo言語ハンズオン
Satoshi Noda
Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法
Hiroaki NAKADA
Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917
Yasutaka Kawamoto
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
社内勉強会1 go lang
社内勉強会1 go lang
Tsuyoshi Nakamura
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
Takuya Ueda
More Related Content
What's hot
GAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使う
Takuya Ueda
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
Masataka Kono
Cloud Functionsの紹介
Cloud Functionsの紹介
Takuya Ueda
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践
Takuya Ueda
Cloud functionsの紹介
Cloud functionsの紹介
Takuya Ueda
GoによるiOSアプリの開発
GoによるiOSアプリの開発
Takuya Ueda
What is "Go" Gopher?
What is "Go" Gopher?
Ryuji Iwata
Hello GoDoc!
Hello GoDoc!
laco0416
Rubyでアプリ開発(2013 0430)
Rubyでアプリ開発(2013 0430)
Shinichirou Nakamura
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
Masataka Kono
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
Takuya Ueda
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Hirokazu Fukami
Go Friday 傑作選
Go Friday 傑作選
Takuya Ueda
ちょっとさわってみるGo言語ハンズオン
ちょっとさわってみるGo言語ハンズオン
Satoshi Noda
Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法
Hiroaki NAKADA
Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917
Yasutaka Kawamoto
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
What's hot
(20)
GAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使う
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
Cloud Functionsの紹介
Cloud Functionsの紹介
エディタの壁を越えるGoの開発ツールの文化と作成法
エディタの壁を越えるGoの開発ツールの文化と作成法
Namespace API を用いたマルチテナント型 Web アプリの実践
Namespace API を用いたマルチテナント型 Web アプリの実践
Cloud functionsの紹介
Cloud functionsの紹介
GoによるiOSアプリの開発
GoによるiOSアプリの開発
What is "Go" Gopher?
What is "Go" Gopher?
Hello GoDoc!
Hello GoDoc!
Rubyでアプリ開発(2013 0430)
Rubyでアプリ開発(2013 0430)
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Go Friday 傑作選
Go Friday 傑作選
ちょっとさわってみるGo言語ハンズオン
ちょっとさわってみるGo言語ハンズオン
Rubykaigi09 Webでるりまを検索するn個の方法
Rubykaigi09 Webでるりまを検索するn個の方法
Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917
今日から始めるGopher - スタートGo #0 @GDG名古屋
今日から始めるGopher - スタートGo #0 @GDG名古屋
Similar to gopher-lua
社内勉強会1 go lang
社内勉強会1 go lang
Tsuyoshi Nakamura
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
Takuya Ueda
Goはじめました
Goはじめました
Masanori Masui
スッとGoを取り入れる
スッとGoを取り入れる
Yusuke Wada
Slide
Slide
Moriyuki Arakawa
Gitoriousをubuntu 10.04 LTSへインストール
Gitoriousをubuntu 10.04 LTSへインストール
Kiyoshi SATOH
Go言語ってどんな言語? 導入実績や気になるトレンド
Go言語ってどんな言語? 導入実績や気になるトレンド
Atsushi Yasuda
Flutterやってみよう
Flutterやってみよう
Ryuto Yasugi
Go一緒にいかが?
Go一緒にいかが?
Ryuji Iwata
先取り Go1.5
先取り Go1.5
Preferred Networks
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
Fumiya Sakai
Fuel phpをcomposerに本気で対応させた時の話
Fuel phpをcomposerに本気で対応させた時の話
Keishi Hosoba
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
Tsutomu Yano
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
京大 マイコンクラブ
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
私なりのGo言語のご紹介
私なりのGo言語のご紹介
Ryuji Iwata
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine
a know
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
parrotstudio
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
Kohei Taniguchi
Similar to gopher-lua
(19)
社内勉強会1 go lang
社内勉強会1 go lang
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
Goはじめました
Goはじめました
スッとGoを取り入れる
スッとGoを取り入れる
Slide
Slide
Gitoriousをubuntu 10.04 LTSへインストール
Gitoriousをubuntu 10.04 LTSへインストール
Go言語ってどんな言語? 導入実績や気になるトレンド
Go言語ってどんな言語? 導入実績や気になるトレンド
Flutterやってみよう
Flutterやってみよう
Go一緒にいかが?
Go一緒にいかが?
先取り Go1.5
先取り Go1.5
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
Fuel phpをcomposerに本気で対応させた時の話
Fuel phpをcomposerに本気で対応させた時の話
Clojureの世界と実際のWeb開発
Clojureの世界と実際のWeb開発
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
Rubyist started to learn Groovy - things important to leran new LL
Rubyist started to learn Groovy - things important to leran new LL
私なりのGo言語のご紹介
私なりのGo言語のご紹介
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
More from Takuya Ueda
Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
WebAssembly with Go
WebAssembly with Go
Takuya Ueda
GAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
Takuya Ueda
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
Takuya Ueda
そうだ、Goを始めよう
そうだ、Goを始めよう
Takuya Ueda
マスター・オブ・goパッケージ
マスター・オブ・goパッケージ
Takuya Ueda
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
Takuya Ueda
Go1.8 for Google App Engine
Go1.8 for Google App Engine
Takuya Ueda
Static Analysis in Go
Static Analysis in Go
Takuya Ueda
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
エキスパートGo
エキスパートGo
Takuya Ueda
Go静的解析ハンズオン
Go静的解析ハンズオン
Takuya Ueda
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
Takuya Ueda
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポート
Takuya Ueda
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
Takuya Ueda
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
Takuya Ueda
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
Takuya Ueda
GAE/GoでWebアプリ開発入門
GAE/GoでWebアプリ開発入門
Takuya Ueda
More from Takuya Ueda
(18)
Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
WebAssembly with Go
WebAssembly with Go
GAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
そうだ、Goを始めよう
そうだ、Goを始めよう
マスター・オブ・goパッケージ
マスター・オブ・goパッケージ
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
Go1.8 for Google App Engine
Go1.8 for Google App Engine
Static Analysis in Go
Static Analysis in Go
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
エキスパートGo
エキスパートGo
Go静的解析ハンズオン
Go静的解析ハンズオン
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポート
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
Mobile Apps by Pure Go with Reverse Binding
Mobile Apps by Pure Go with Reverse Binding
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
GAE/GoでWebアプリ開発入門
GAE/GoでWebアプリ開発入門
Recently uploaded
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Recently uploaded
(12)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
gopher-lua
1.
GoでOSXのアプリを 書く 2015/03/11(水) @Gonosy.go#11
2.
というのは嘘で (gopher-jsも面白いけど) http://qiita.com/tenntenn/items/4b9587120176c2d4b454
3.
gopher-luaを 使ってみた 2015/03/11(水) @Gonosy.go#11
4.
自己紹介 上田拓也 KLab株式会社 仕事: Luaと戦う仕事 趣味: Go言語, JS, Lua twitter
: @tenntenn
5.
gopher-luaってなんなの?
6.
gopher-luaとは ● 完全にGoで書かれたLuaの実装 ○ 作者のブログ ○
https://github.com/yuin/gopher-lua ● GoからLuaが実行できる ● gopher-lua/ast を使うとASTも使える ● goyaccが使われてる
7.
Luaってなんなの?
8.
Lua ● C言語をホストとして、組み込まれる目的で使わ れるスクリプト言語 ● 動作が早い、移植しやすい ●
拡張言語として使われる ○ Redis, nginx, .... ● ゲームエンジン+Lua ○ cocos2d-x, Playground, ...
9.
私とLua ● Luaを使って開発をしている ● Luaの開発環境をもっとよりよくしたい ○
デバッガ ■ https://github.com/tenntenn/lupe ○ lint ■ https://github.com/tenntenn/lualin
10.
gopher-luaの使い方
11.
実行 L := lua.NewState() defer
L.Close() err := L.DoString(`print("hello")`) if err != nil { panic(err) }
12.
実行 func Double(L *lua.LState)
int { lv := L.ToInt(1) L.Push(lua.LNumber(lv * 2)) return 1 } func main() { L := lua.NewState() defer L.Close() L.SetGlobal("double", L.NewFunction(Double)) } 1番目の引数をint として受け取る 戻り値をpushする グローバル変数にセット
13.
AST chunk, err :=
parse.Parse(f, fn) if err := nil {panic(err)} for _, s := range chunk { if fs, ok := s.(*ast.FuncDefStmt); ok { if fe, ok := fs.Name.Func.(*ast.IdentExpr); ok { fmt.Print(fe.Value) } } } AST([]ast.Stmt)を取得 関数名を取得 関数宣言? 識別子
14.
Go+Luaの利点
15.
Luaを使って拡張できる ● ユーザスクリプト ○ Redisやnginxなど用途 ●
ゲームエンジン ○ コストの高いコアな処理はGoに任せる ○ ゲーム部分はLuaで柔軟に書く
16.
Luaを使って設定ファイルを書く -- config.lua return { host
= “localhost”, port = 8080, }
17.
Luaを使って設定ファイルを書く -- config.lua local config
= {} for i = 0, 4 do table.insert(config, { host = “localhost”, port = 8080 + i, }) end return config もちろんforも使える
18.
Luaのソースファイルを解析 ● ASTが取れる ● Cで書きたくない ●
LuaだとLua自体に親和性があってよいが ○ コマンドラインの処理やファイルの処理が面倒 ○ 正規表現?がいまいち
19.
luaのlintを作った
20.
lualin ● luaのlint ● 機能 ○
変数名や関数名のチェック ○ グローバル変数の有無 ■ local忘れるとグローバル変数になる ○ 拡張可能なルール
21.
実行例
22.
今後の展望 ● luaでルールを増やせるようにする ● ASTだけではできないことに対応 ○
インデント ○ アンチパターンの検出
23.
まとめ ● gopher-luaの紹介 ● lualinの紹介
Download now