**********************************************************************
セッション:S2a
テーマ  :Zenは急げ!Zen言語完Zen理解ガイド
講師   :中林 智之 コネクトフリー株式会社
      帝都 久利寿 コネクトフリー株式会社
      井田 健太 コネクトフリー株式会社
日時   :2020/08/21(金) 10:00~11:10
参加人数 :40名
**********************************************************************


<コネクトフリーについて>
<講師紹介>
コネクトフリー株式会社
代表取締役 帝都久利寿

<ソフトウェアによる効率化>
東京駅は昔から毎日工事を行っている
駅の面積は変化していない
JRの業務がある中でなぜ工事をする余裕があるのか?
緑の窓口などの管理機能がソフトウェアによって小面積化
単位GDP獲得に必要な面積が小さくなっている

GDPの多くは人との関わりで発生
1平方メートルあたり14円
人とかかわるGDPは影響を受けやすい(コロナなど)

ソフトウェアがセキュアになれば世の中はどうなるか?
ファイナンス、契約など

潜在的な経済リスクによる障壁
アメリカの経済成長と比較して日本とドイツの成長率は抑制的
ソフトウェアの信頼性に対して障壁がある
80年代のソフトウェア開発環境が古い
現代的な方式を導入することで効率的に信頼できるソフトウェアが実現できる
組込み機器のマーケットは大きい
Google、Appleの扱うマーケット規模よりも非常に大きい
Zen言語などで改善する価値がある

--- 講師変更 -----


<講師紹介>
コネクトフリー株式会社
中林 智之

<アンケート: Zen言語をご存知ですか?>
ZenZen知らんかった     47%
知ってた(がZenZenわからん 43%
知ってた(チョットワカル  10%

<組込み開発の言語>
今まではC言語
高速、バイナリサイズ小、低電力
HW要件的に選ばざるをえない
これからはZen言語押し
安全性が高い(コンパイラがチェックしてくれる)
高速、バイナリサイズ小(C言語と同じぐらい)
C言語との相互運用性高い(C言語のヘッダ流用、関数呼び出しができる)
ビルドプロセスと標準ライブラリで移植性高い
<これまでの開発プロセス>
開発環境に合わせたアプリケーション
OS、ライブラリに依存
環境が変われば既存ライブラリのポーティングが必要
アプリケーションを書いたらOS、ベアメタル関係なく動いてほしい



C言語はファイルごとにコンパイル、最後にリンカでリンク
依存関係をコンパイラは知らない
Zen言語は依存関係を解析する
Topファイルを渡せば必要なファイルを取ってきてオブジェクト生成する
ファイル間の整合性チェック、最適化が可能
アプリケーションを書けば必要なファイルがコンパイルされる

それでもOSありとベアメタルありの間を埋める必要がある
組込み向けランタイム: ETHOS を開発
Zen言語の標準ライブラリの下に仮想化レイヤを導入
Hostプラットフォームごとに仮想化レイヤを差し替えればどのような環境でも動く

<デモ>
マルチターゲットで同じコードが動くデモを実施
PCとARMマイコンでグラフを書くでもが動作した

<ハンズオンを実施>
簡単なgrepコマンドを作ってみてZen言語を体験する
最初にHello worldでZen言語のビルドを試す
grepのサンプルソースを写経しながらZen言語を体験
コマンドライン引数の取得
ファイル読み書き
検索対象の単語検索
可変長配列
エラー処理
ハンズオンを一通り終了できたのが3割程度

<アンケート: Zen言語を完Zenに理解できましたか?>
完Zenに理解した 28%
完Zenに理解した 20%
完Zenに理解した 32%
完Zenに理解した 20%