Enviar pesquisa
Carregar
20150227 オープンソースカンファレンス Tokyo 2015 Spring
•
Transferir como PPTX, PDF
•
6 gostaram
•
3,167 visualizações
Ryuichi Ueda
Seguir
2015年2月27日@明星大学 GlueLangの開発動機と機能紹介
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 35
Baixar agora
Recomendados
Rx Showcase
Rx Showcase
Takaaki Suzuki
Rx入門
Rx入門
Takaaki Suzuki
how to port * to BitVisor
how to port * to BitVisor
icchy
20150201 シェル芸勉強会LT GlueLangについて(シェル書いてますが何か?)
20150201 シェル芸勉強会LT GlueLangについて(シェル書いてますが何か?)
Ryuichi Ueda
20141213 第14回シェル芸勉強会イントロ
20141213 第14回シェル芸勉強会イントロ
Ryuichi Ueda
2014/08/02 第12回シェル芸勉強会イントロ
2014/08/02 第12回シェル芸勉強会イントロ
Ryuichi Ueda
20150418 第16回シェル芸勉強会スライド
20150418 第16回シェル芸勉強会スライド
Ryuichi Ueda
Particle Filter on Episode
Particle Filter on Episode
Ryuichi Ueda
Recomendados
Rx Showcase
Rx Showcase
Takaaki Suzuki
Rx入門
Rx入門
Takaaki Suzuki
how to port * to BitVisor
how to port * to BitVisor
icchy
20150201 シェル芸勉強会LT GlueLangについて(シェル書いてますが何か?)
20150201 シェル芸勉強会LT GlueLangについて(シェル書いてますが何か?)
Ryuichi Ueda
20141213 第14回シェル芸勉強会イントロ
20141213 第14回シェル芸勉強会イントロ
Ryuichi Ueda
2014/08/02 第12回シェル芸勉強会イントロ
2014/08/02 第12回シェル芸勉強会イントロ
Ryuichi Ueda
20150418 第16回シェル芸勉強会スライド
20150418 第16回シェル芸勉強会スライド
Ryuichi Ueda
Particle Filter on Episode
Particle Filter on Episode
Ryuichi Ueda
ロボットシステム学2015第2回
ロボットシステム学2015第2回
Ryuichi Ueda
ロボットシステム学2015年第14回
ロボットシステム学2015年第14回
Ryuichi Ueda
確率ロボティクス第11回
確率ロボティクス第11回
Ryuichi Ueda
確率ロボティクス第八回
確率ロボティクス第八回
Ryuichi Ueda
確率ロボティクス第12回
確率ロボティクス第12回
Ryuichi Ueda
確率ロボティクス第六回
確率ロボティクス第六回
Ryuichi Ueda
確率ロボティクス第三回
確率ロボティクス第三回
Ryuichi Ueda
第21回シェル芸勉強会イントロ
第21回シェル芸勉強会イントロ
Ryuichi Ueda
確率ロボティクス第二回
確率ロボティクス第二回
Ryuichi Ueda
確率ロボティクス第13回
確率ロボティクス第13回
Ryuichi Ueda
オープンソースとロボット
オープンソースとロボット
Ryuichi Ueda
Elasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させる
nobu_k
機械学習を利用したちょっとリッチな検索
機械学習を利用したちょっとリッチな検索
nobu_k
電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!
Ryuichi Ueda
AAをつくろう!
AAをつくろう!
Takami Sato
本日の怪物曲線 2016/6/18
本日の怪物曲線 2016/6/18
Hexomino Hexomino
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
Ryosuke Okuta
最近のDQN
最近のDQN
mooopan
シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門
icchy
jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
Ryuichi Ueda
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
博文 斉藤
Eclipse xtext 紹介
Eclipse xtext 紹介
Akira Tanaka
Mais conteúdo relacionado
Destaque
ロボットシステム学2015第2回
ロボットシステム学2015第2回
Ryuichi Ueda
ロボットシステム学2015年第14回
ロボットシステム学2015年第14回
Ryuichi Ueda
確率ロボティクス第11回
確率ロボティクス第11回
Ryuichi Ueda
確率ロボティクス第八回
確率ロボティクス第八回
Ryuichi Ueda
確率ロボティクス第12回
確率ロボティクス第12回
Ryuichi Ueda
確率ロボティクス第六回
確率ロボティクス第六回
Ryuichi Ueda
確率ロボティクス第三回
確率ロボティクス第三回
Ryuichi Ueda
第21回シェル芸勉強会イントロ
第21回シェル芸勉強会イントロ
Ryuichi Ueda
確率ロボティクス第二回
確率ロボティクス第二回
Ryuichi Ueda
確率ロボティクス第13回
確率ロボティクス第13回
Ryuichi Ueda
オープンソースとロボット
オープンソースとロボット
Ryuichi Ueda
Elasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させる
nobu_k
機械学習を利用したちょっとリッチな検索
機械学習を利用したちょっとリッチな検索
nobu_k
電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!
Ryuichi Ueda
AAをつくろう!
AAをつくろう!
Takami Sato
本日の怪物曲線 2016/6/18
本日の怪物曲線 2016/6/18
Hexomino Hexomino
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
Ryosuke Okuta
最近のDQN
最近のDQN
mooopan
シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門
icchy
jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
Ryuichi Ueda
Destaque
(20)
ロボットシステム学2015第2回
ロボットシステム学2015第2回
ロボットシステム学2015年第14回
ロボットシステム学2015年第14回
確率ロボティクス第11回
確率ロボティクス第11回
確率ロボティクス第八回
確率ロボティクス第八回
確率ロボティクス第12回
確率ロボティクス第12回
確率ロボティクス第六回
確率ロボティクス第六回
確率ロボティクス第三回
確率ロボティクス第三回
第21回シェル芸勉強会イントロ
第21回シェル芸勉強会イントロ
確率ロボティクス第二回
確率ロボティクス第二回
確率ロボティクス第13回
確率ロボティクス第13回
オープンソースとロボット
オープンソースとロボット
Elasticsearchと機械学習を実際に連携させる
Elasticsearchと機械学習を実際に連携させる
機械学習を利用したちょっとリッチな検索
機械学習を利用したちょっとリッチな検索
電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!
AAをつくろう!
AAをつくろう!
本日の怪物曲線 2016/6/18
本日の怪物曲線 2016/6/18
Deep Learningを用いたロボット制御
Deep Learningを用いたロボット制御
最近のDQN
最近のDQN
シェル芸初心者によるシェル芸入門
シェル芸初心者によるシェル芸入門
jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
jus & USP友の会共催 シェルワンライナー勉強会@関西(第11回シェル芸勉強会)
Semelhante a 20150227 オープンソースカンファレンス Tokyo 2015 Spring
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
博文 斉藤
Eclipse xtext 紹介
Eclipse xtext 紹介
Akira Tanaka
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling report
Akira Tanaka
OSC Tokyo/Spring NETMF 170311
OSC Tokyo/Spring NETMF 170311
Atomu Hidaka
LibreOfficeの最新動向 in OSC 2015 Hiroshima
LibreOfficeの最新動向 in OSC 2015 Hiroshima
Masataka Kondo
Introduction to VSCode
Introduction to VSCode
Yuki Igarashi
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Jun-ichi Sakamoto
Recent Information about LibreOffice
Recent Information about LibreOffice
Masataka Kondo
Net fringejp2016
Net fringejp2016
Yusuke Fujiwara
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Hironori Washizaki
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after story
Makoto Takizawa
2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source
Yoshiyuki Nakamura
TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介
Takeo Imai
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
slankdev
コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015
Ryo Nakamaru
OSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼン
Masanori Itoh
Automatic Summarization
Automatic Summarization
Hitoshi Nishikawa
OpenDaylight最新技術動向
OpenDaylight最新技術動向
Satoshi Hieda
EclipseCon NA 2015 report
EclipseCon NA 2015 report
Akira Tanaka
(KOF2017) LibreOffice development activities: QA and Translation
(KOF2017) LibreOffice development activities: QA and Translation
iCRAFT Corp. (アイクラフト株式会社)
Semelhante a 20150227 オープンソースカンファレンス Tokyo 2015 Spring
(20)
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
Eclipse xtext 紹介
Eclipse xtext 紹介
EclipseCon Europe 2019 modeling report
EclipseCon Europe 2019 modeling report
OSC Tokyo/Spring NETMF 170311
OSC Tokyo/Spring NETMF 170311
LibreOfficeの最新動向 in OSC 2015 Hiroshima
LibreOfficeの最新動向 in OSC 2015 Hiroshima
Introduction to VSCode
Introduction to VSCode
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
はじめよう TypeScript - 入門から実践まで - 素の JavaScript とはさようなら!
Recent Information about LibreOffice
Recent Information about LibreOffice
Net fringejp2016
Net fringejp2016
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
Pythonを含む多くのプログラミング言語を扱う処理フレームワークとパターン、鷲崎弘宜、PyConJP 2016 招待講演
OpenDocument interoperability test workshop after story
OpenDocument interoperability test workshop after story
2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source
TVMの次期グラフIR Relayの紹介
TVMの次期グラフIR Relayの紹介
OSC2016 Tokyo/Spring セミナー資料
OSC2016 Tokyo/Spring セミナー資料
コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015
OSC 2011 Tokyo/Spring OpenStackプレゼン
OSC 2011 Tokyo/Spring OpenStackプレゼン
Automatic Summarization
Automatic Summarization
OpenDaylight最新技術動向
OpenDaylight最新技術動向
EclipseCon NA 2015 report
EclipseCon NA 2015 report
(KOF2017) LibreOffice development activities: QA and Translation
(KOF2017) LibreOffice development activities: QA and Translation
Mais de Ryuichi Ueda
第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
Ryuichi Ueda
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
Ryuichi Ueda
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー
Ryuichi Ueda
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話
Ryuichi Ueda
移動ロボットのナビゲーション
移動ロボットのナビゲーション
Ryuichi Ueda
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
Ryuichi Ueda
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
Ryuichi Ueda
bash(の変な使い方)update
bash(の変な使い方)update
Ryuichi Ueda
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
Ryuichi Ueda
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Ryuichi Ueda
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
Ryuichi Ueda
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
Ryuichi Ueda
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
Ryuichi Ueda
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
Ryuichi Ueda
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
Ryuichi Ueda
Robot frontier lesson3 2018
Robot frontier lesson3 2018
Ryuichi Ueda
Robot frontier lesson2 2018
Robot frontier lesson2 2018
Ryuichi Ueda
Robot frontier lesson1 2018
Robot frontier lesson1 2018
Ryuichi Ueda
第34回シェル芸勉強会
第34回シェル芸勉強会
Ryuichi Ueda
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
Ryuichi Ueda
Mais de Ryuichi Ueda
(20)
第27回ロボティクスシンポジアスライド
第27回ロボティクスシンポジアスライド
シェル・ワンライナー160本ノック
シェル・ワンライナー160本ノック
日本ロボット学会第139回ロボット工学セミナー
日本ロボット学会第139回ロボット工学セミナー
シェル芸勉強会と会場の話
シェル芸勉強会と会場の話
移動ロボットのナビゲーション
移動ロボットのナビゲーション
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
PythonとJupyter Notebookを利用した教科書「詳解確率ロボティクス」の企画と執筆
第45回シェル芸勉強会オープニングスライド
第45回シェル芸勉強会オープニングスライド
bash(の変な使い方)update
bash(の変な使い方)update
第41回シェル芸勉強会 午後オープニング
第41回シェル芸勉強会 午後オープニング
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
Searching Behavior of a Simple Manipulator only with Sense of Touch Generated...
20181113_子ども夢ロボット&トーク
20181113_子ども夢ロボット&トーク
第37回シェル芸勉強会イントロ
第37回シェル芸勉強会イントロ
シェル芸勉強会にみる、コミュニティを通じたIT学習
シェル芸勉強会にみる、コミュニティを通じたIT学習
ROSチュートリアル ROBOMECH2018
ROSチュートリアル ROBOMECH2018
poster of PFoE used in ICRA 2018
poster of PFoE used in ICRA 2018
Robot frontier lesson3 2018
Robot frontier lesson3 2018
Robot frontier lesson2 2018
Robot frontier lesson2 2018
Robot frontier lesson1 2018
Robot frontier lesson1 2018
第34回シェル芸勉強会
第34回シェル芸勉強会
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
第32回信号処理シンポジウム「Raspberry PiとROSを使ったロボットシステム」
Último
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Último
(11)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
20150227 オープンソースカンファレンス Tokyo 2015 Spring
1.
次世代スクリプティング言語 GlueLangの開発 USP友の会/AIIT 上田隆一
2.
contents • 背景 • GlueLangを使う話 •
GlueLangを開発する話 • おわりに Feb. 27, 2015 OSC 2015 Tokyo/Spring 2
3.
GlueLang • Glue: Good
enough Language for Unix Environment (後付け) • 「Unix環境用のまあまあ使える言語」 – スクリプティング専用言語 – 言語と言っているが、基本的にはシェル Feb. 27, 2015 OSC 2015 Tokyo/Spring 3
4.
開発体制 • 上田(USP友の会/産業技術大学院大学) • USP友の会GlueLang部会 •
研究費 – 産業技術大学院大学から競争的資金(H26年度) • 研究テーマ – 「シェルに代わりうるテキスト処理のためのグルー言語開発」 Feb. 27, 2015 OSC 2015 Tokyo/Spring 4
5.
どんなものか • コードの例 Feb. 27,
2015 OSC 2015 Tokyo/Spring 5 書き方: Python, Haskell風 中間ファイルの 扱いを簡単に 処理のほとんどを コマンドに依存
6.
開発の動機 • プロセスの外には様々なリソース • 既存の言語はちゃんと使いこなせているだろうか? –
基本的にはCPUがひとつでプロセス内の処理に特化 Feb. 27, 2015 OSC 2015 Tokyo/Spring 6 プロセスの外の世界 プロセス ポート ファイル 共有メモリ DB ... プロセス内の世界 メモリ スレッド
7.
例: Pythonでポートに文字を送信 • いろいろ準備が大変 –
勉強にはなるけど • ソケットって「オブジェクト」なの? – メモリの中でデータ構造を作る仕組みが通用するか? Feb. 27, 2015 OSC 2015 Tokyo/Spring 7 注意: 動作確認してません
8.
こういうことをしていないか? • こっちの方が構造的によい Feb. 27,
2015 OSC 2015 Tokyo/Spring 8 プロセスの外の世界 プログラム (プロセス内の世界) ポート シェル(プロセスの外の世界) プログラム (プロセス内の世界) aaaa!!!print redirect
9.
プロセスの外に出られる言語は無いのか • 既存の関数型言語 – 期待できるがもうちょっと簡単にならないか –
型のある言語の場合、「型」が邪魔になるかもしれない • シェル – まさに「プロセスやプロセス外のリソースを操る」存在 – しかし、様々な「闇」 Feb. 27, 2015 OSC 2015 Tokyo/Spring 9
10.
シェルの闇1: 古い • dash:
C言語雑技団 Feb. 27, 2015 OSC 2015 Tokyo/Spring 10 dashのコード(C言語です) • bash:ザ・レジェンド bashのコード(C言語です)
11.
シェルの闇2: シェルお局の存在 • シェルの歴史 –
ベル研究所の「ソフトウェアツール」の根幹 その後... – システム管理ツールとしての時代が長い • ごく狭い世界のコンベンションで語られがち – 「-eを付けない奴は素人」、「POSIXが―」、 「処理を関数に分けろ」 – 用途がだんだんシュリンクしていく • システム管理に使うのはよいのではあるが Feb. 27, 2015 OSC 2015 Tokyo/Spring 11
12.
シェルの闇3: よくわからない比較 • 「シェルスクリプト{汚い,
古い, xxx}ので、 別の言語の方が好き」 – そもそも用途がかなり違う。比べるなよ。 • シェル側が他の言語に擦り寄っているのも一因 – 配列 – 計算 – for, while, if, ... Feb. 27, 2015 OSC 2015 Tokyo/Spring 12
13.
シェルの闇4: 対話 v.s.
スクリプト • インタフェースとしてはいくつかのシェルは 申し分ないレベル • スクリプト言語としては・・・? – インタフェースとしての機能とバッティング • 短い記号「>, |, <, $#...」があまり説明的でない – 個人的には野暮ったいと感じる – スクリプティング専用のシェルがほしい Feb. 27, 2015 OSC 2015 Tokyo/Spring 13
14.
次世代シェルスクリプト言語って何? • 次のような機能を持つシェル用言語を想定 – コマンドやリソースを操作する用途であることの強調 –
エラーがあったらちゃんと止まる – リソースの管理 • リソース = ファイル • 中間ファイルを変数のように利用可能に – スッキリ読みやすい(評価しようがないので私の主観で) • Pythonのように • 変な記号が少ない Feb. 27, 2015 OSC 2015 Tokyo/Spring 14
15.
そういう方針で作ったのでデモ Feb. 27, 2015
OSC 2015 Tokyo/Spring 15 ※お詫び: http://www.ospn.jp/osc2015- spring/modules/eguide/event.php?eid=89 でシステム管理や科学計算の例と書きましたが、 構成上断念しました。
16.
まずはインストール • 環境 – C++11のコンパイラ(clang、gcc)があるUnix環境 –
テスト環境 • Macの新しいやつ • Ubuntu 14.04 • ダウンロード – $ git clone https://github.com/ryuichiueda/GlueLang – $ cd GlueLang – $ make – (/usr/local/binにぶち込んでよい人はsudo make install) Feb. 27, 2015 OSC 2015 Tokyo/Spring 16
17.
リテラル • 文字列しかない • シングルクォートで囲む –
bashのシングルクォートとほぼ同義 – 例外: ハイフン、数字から始まる場合は省略可 • リテラルを書くとechoされる Feb. 27, 2015 OSC 2015 Tokyo/Spring 17 コードの例 実行結果
18.
コマンドの呼び出し • 細かい設定 or
ズボラな設定ができるように • 細かい/ズボラの使い分け – 特殊なコマンドパッケージにはprefixをつける等書き分け – コマンドパッケージシステム Feb. 27, 2015 OSC 2015 Tokyo/Spring 18 細かい設定 ズボラ設定
19.
コマンドの接続 • パイプ: 書いて目立つようにHaskellの「>>=」を拝借 –
注意: モナドだとかそういう議論をするつもりはない • 「>>」でグループ化 Feb. 27, 2015 OSC 2015 Tokyo/Spring 19 例: 文字の数を数えるプログラム
20.
中間ファイル • 簡単に作れる • きれいに作れる •
スクリプト終了時に消す • 左側にファイルが来る – 処理の流れが見やすい – データ処理の場合、 中間ファイルを 作るところが処理の 区切り Feb. 27, 2015 OSC 2015 Tokyo/Spring 20
21.
エラーで止める • bashの-e相当 – パイプライン中の終了ステータスでも –
中間ファイルを掃除して現状回復 Feb. 27, 2015 OSC 2015 Tokyo/Spring 21 実行
22.
文字列 • ファイルとほとんど同じ • 連結機能 Feb.
27, 2015 OSC 2015 Tokyo/Spring 22
23.
if文 • 次のように書く • (エラーが起きても処理を続行するときにも使用) Feb.
27, 2015 OSC 2015 Tokyo/Spring 23
24.
where節 • あるジョブ(パイプライン)でのみ使う中間ファイルや 文字列を作成 Feb. 27,
2015 OSC 2015 Tokyo/Spring 24
25.
繰り返し • eachline – while
read ...相当 – 例: サブルーチン(proc)に一行ずつ引数でデータを引き渡し Feb. 27, 2015 OSC 2015 Tokyo/Spring 25
26.
バックグラウンドジョブ • ジョブに名前をつけることができる Feb. 27,
2015 OSC 2015 Tokyo/Spring 26
27.
GlueLangの開発 Feb. 27, 2015
OSC 2015 Tokyo/Spring 27
28.
GlueLangのコード • C++11で記述 – オブジェクト指向で –
マクロ排除 • 現在のところ、MacでもLinux(Ubuntu)でも動作 • コードの癖(ごめんなさい) – 今のところ試行錯誤中のため・・・ • ゲッタやセッタをあまり定義していないのでpublic変数多め • コメント少ない Feb. 27, 2015 OSC 2015 Tokyo/Spring 28
29.
ソースコードの構造 • 4つの基本クラス – Feeder:
スクリプトの読み込みとパース – Element: スクリプトの要素 • 派生クラス: Script, Job, Pipeline, ... • 各派生クラスが自身に対応する構文解析器(parse関数)と 実行器(exec関数)を所持 – Data: データ • 派生クラス: DataFile, DataStr, DataJob, DataProc – Environment: パスやデータの管理 Feb. 27, 2015 OSC 2015 Tokyo/Spring 29
30.
文法 • Scriptクラスのparse関数、add関数をたどっていくと 分かるようになっている(と思う) • LL法、再帰下降パーサ •
言語の拡張BNF(一部) – スクリプト = {import文}, { procの定義 | ジョブ | if文 } ; – ジョブ = [file name = | str name =], パイプライン, {">>" パイプライン}; – パイプライン = 命令, {">>=", 命令}; – 命令 = 文字列操作| eachline | proc |内部コマンド|外部コマンド ; Feb. 27, 2015 OSC 2015 Tokyo/Spring 30
31.
実装が怪しいもの(助けて!) • シグナル処理 – よく分かってない •
文字列を生成するときの処理 – 名前付きパイプを使ってしまった • その他いろいろ – エラー処理の見落とし等 Feb. 27, 2015 OSC 2015 Tokyo/Spring 31 import PATH str a = seq 1 10 >>= grep 5 echo a コマンドの出力が 名前付きパイプを通って str aにバインドされる (どう考えても冗長だし 外から突かれる)
32.
普及までの遠い道のり • ドキュメント – マニュアル、チュートリアル、きれいなウェブサイト •
信頼性 – 非同期な部分のテスト • パッケージシステム+その周辺 – 単なるコマンドのコレクションなので他の言語より簡単だが・・・ • 作者の改良 – ほどほどに社交的になってきたがまだ内向的 Feb. 27, 2015 OSC 2015 Tokyo/Spring 32
33.
考えられる展開 • 複数の計算機の制御 – procをリモートに送り込んでsshで実行する処理のラッピング •
子供向けのGUIの開発 – プロセスをつなぐ、ファイルをつなぐという発想は ブロックを組み立てるタイプの子供用プログラミング環境と 相性がよい Feb. 27, 2015 OSC 2015 Tokyo/Spring 33
34.
現時点でのコントリビュータ • @ryo1kato氏 – 最初のプルリク •
Yoshihiro Tanaka氏 – vim用シンタックスハイライター作成 – https://github.com/CORDEA/vim-glue • @bsdhack氏 – シグナル処理等の相談役 Feb. 27, 2015 OSC 2015 Tokyo/Spring 34
35.
ということで • ご協力を – どんな作業があるのか私から聞き出してくれるだけでも ありがたく –
GitHubで(英語) – USP友の会GlueLang部会 • https://www.facebook.com/groups/780590598679602/ Feb. 27, 2015 OSC 2015 Tokyo/Spring 35
Baixar agora