Submit Search
gopher-lua
7 likes
5,663 views
Takuya Ueda
gopher-lua
Technology
Read more
1 of 23
Download now
Downloaded 17 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
More Related Content
What's hot
(20)
PDF
GAE/GoでLINE Messaging API を使う
Takuya Ueda
PDF
ライブコーディング・Androidのライブラリを作ってみよう
Masataka Kono
PDF
Cloud Functionsの紹介
Takuya Ueda
PDF
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
PDF
Namespace API を用いたマルチテナント型 Web アプリの実践
Takuya Ueda
PDF
Cloud functionsの紹介
Takuya Ueda
PDF
GoによるiOSアプリの開発
Takuya Ueda
PDF
What is "Go" Gopher?
Ryuji Iwata
PDF
Hello GoDoc!
laco0416
PDF
Rubyでアプリ開発(2013 0430)
Shinichirou Nakamura
PDF
オススメの標準・準標準パッケージ20選
Takuya Ueda
PDF
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
Masataka Kono
PDF
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
PDF
Google Assistant関係のセッションまとめ
Takuya Ueda
PDF
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Hirokazu Fukami
PDF
Go Friday 傑作選
Takuya Ueda
PDF
ちょっとさわってみるGo言語ハンズオン
Satoshi Noda
PDF
Rubykaigi09 Webでるりまを検索するn個の方法
Hiroaki NAKADA
PDF
Introduce the activities of gdg kobe 130917
Yasutaka Kawamoto
PDF
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
GAE/GoでLINE Messaging API を使う
Takuya Ueda
ライブコーディング・Androidのライブラリを作ってみよう
Masataka Kono
Cloud Functionsの紹介
Takuya Ueda
エディタの壁を越えるGoの開発ツールの文化と作成法
Takuya Ueda
Namespace API を用いたマルチテナント型 Web アプリの実践
Takuya Ueda
Cloud functionsの紹介
Takuya Ueda
GoによるiOSアプリの開発
Takuya Ueda
What is "Go" Gopher?
Ryuji Iwata
Hello GoDoc!
laco0416
Rubyでアプリ開発(2013 0430)
Shinichirou Nakamura
オススメの標準・準標準パッケージ20選
Takuya Ueda
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
Masataka Kono
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
Google Assistant関係のセッションまとめ
Takuya Ueda
Goのパッケージ構成で 試行錯誤してみた話 ~ Gocon 2015 Summer
Hirokazu Fukami
Go Friday 傑作選
Takuya Ueda
ちょっとさわってみるGo言語ハンズオン
Satoshi Noda
Rubykaigi09 Webでるりまを検索するn個の方法
Hiroaki NAKADA
Introduce the activities of gdg kobe 130917
Yasutaka Kawamoto
今日から始めるGopher - スタートGo #0 @GDG名古屋
Takuya Ueda
Similar to gopher-lua
(19)
PPTX
社内勉強会1 go lang
Tsuyoshi Nakamura
PDF
Goでwebアプリを開発してみよう
Takuya Ueda
PPTX
Goはじめました
Masanori Masui
PDF
スッとGoを取り入れる
Yusuke Wada
PDF
Slide
Moriyuki Arakawa
PDF
Gitoriousをubuntu 10.04 LTSへインストール
Kiyoshi SATOH
PPTX
Go言語ってどんな言語? 導入実績や気になるトレンド
Atsushi Yasuda
PDF
Flutterやってみよう
Ryuto Yasugi
PDF
Go一緒にいかが?
Ryuji Iwata
PDF
先取り Go1.5
Preferred Networks
PDF
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
Fumiya Sakai
PDF
Fuel phpをcomposerに本気で対応させた時の話
Keishi Hosoba
PPTX
Clojureの世界と実際のWeb開発
Tsutomu Yano
PDF
GoでMinecraftっぽいの作る
京大 マイコンクラブ
PDF
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
PDF
私なりのGo言語のご紹介
Ryuji Iwata
PDF
今日から始める Go言語 と appengine
a know
PDF
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
parrotstudio
PDF
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
Kohei Taniguchi
社内勉強会1 go lang
Tsuyoshi Nakamura
Goでwebアプリを開発してみよう
Takuya Ueda
Goはじめました
Masanori Masui
スッとGoを取り入れる
Yusuke Wada
Slide
Moriyuki Arakawa
Gitoriousをubuntu 10.04 LTSへインストール
Kiyoshi SATOH
Go言語ってどんな言語? 導入実績や気になるトレンド
Atsushi Yasuda
Flutterやってみよう
Ryuto Yasugi
Go一緒にいかが?
Ryuji Iwata
先取り Go1.5
Preferred Networks
Go言語で色々試行錯誤して フレームワークもどきを作ってみた話
Fumiya Sakai
Fuel phpをcomposerに本気で対応させた時の話
Keishi Hosoba
Clojureの世界と実際のWeb開発
Tsutomu Yano
GoでMinecraftっぽいの作る
京大 マイコンクラブ
Rubyist started to learn Groovy - things important to leran new LL
Uchio Kondo
私なりのGo言語のご紹介
Ryuji Iwata
今日から始める Go言語 と appengine
a know
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
parrotstudio
オブジェクト指向プログラマが今関数型言語を学ばないといけない理由
Kohei Taniguchi
Ad
More from Takuya Ueda
(18)
PDF
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
PDF
WebAssembly with Go
Takuya Ueda
PDF
GAE/Goとsyncパッケージ
Takuya Ueda
PDF
静的解析を使った開発ツールの開発
Takuya Ueda
PDF
そうだ、Goを始めよう
Takuya Ueda
PDF
マスター・オブ・goパッケージ
Takuya Ueda
PDF
メルカリ カウルのマスタデータの更新
Takuya Ueda
PDF
Go1.8 for Google App Engine
Takuya Ueda
PDF
Static Analysis in Go
Takuya Ueda
PDF
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
PDF
エキスパートGo
Takuya Ueda
PDF
Go静的解析ハンズオン
Takuya Ueda
PDF
Goにおける静的解析と製品開発への応用
Takuya Ueda
PDF
Gopher Fest 2017参加レポート
Takuya Ueda
PDF
条件式評価器の実装による管理ツールの抽象化
Takuya Ueda
PDF
Mobile Apps by Pure Go with Reverse Binding
Takuya Ueda
PDF
Goでかんたんソースコードの静的解析
Takuya Ueda
PDF
GAE/GoでWebアプリ開発入門
Takuya Ueda
Goにおけるバージョン管理の必要性 − vgoについて −
Takuya Ueda
WebAssembly with Go
Takuya Ueda
GAE/Goとsyncパッケージ
Takuya Ueda
静的解析を使った開発ツールの開発
Takuya Ueda
そうだ、Goを始めよう
Takuya Ueda
マスター・オブ・goパッケージ
Takuya Ueda
メルカリ カウルのマスタデータの更新
Takuya Ueda
Go1.8 for Google App Engine
Takuya Ueda
Static Analysis in Go
Takuya Ueda
メルカリ・ソウゾウでは どうGoを活用しているのか?
Takuya Ueda
エキスパートGo
Takuya Ueda
Go静的解析ハンズオン
Takuya Ueda
Goにおける静的解析と製品開発への応用
Takuya Ueda
Gopher Fest 2017参加レポート
Takuya Ueda
条件式評価器の実装による管理ツールの抽象化
Takuya Ueda
Mobile Apps by Pure Go with Reverse Binding
Takuya Ueda
Goでかんたんソースコードの静的解析
Takuya Ueda
GAE/GoでWebアプリ開発入門
Takuya Ueda
Ad
Recently uploaded
(7)
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
PDF
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
PDF
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
PDF
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
20250711JIMUC総会IBM Automation_Platform最新情報_Connpass公開版.pdf
ChikakoInami1
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
20250717_Devin×GitHubCopilotで10人分の仕事は出来るのか?.pdf
Masaki Yamakawa
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