* SecHack365 2018年度でのおすすめテーマの「Essenの開発」に関する説明 -(by [[K]], 2018.03.18) ** (1) -[基本事項] --まずEssenの開発理念に共感できるかどうか確認してください → [[page0004]] --EssenRev4はインタプリタ型のプログラミング言語です。また動作を高速にするために、JITコンパイラを内蔵します。 ---JITコンパイラ=インタプリタを高速化する手法で、実行時にコンパイルする方式。 ---単純なコンパイラ方式ではなく、JITコンパイル方式にする理由は、evalなどの構文を許容するためです。つまりEssenのプログラム内で、Essenのプログラム文字列を生成すれば、それをそのまま実行できるのです。 --EssenRev4は当面はWindows用のアプリケーションとして開発され、C言語のみで書かれる予定です。 -[要求スキル] --基本的には、受講者に合わせて課題を設定するので、高いスキルは要求しません。 --このサイトに書いてあることのうち、''約50%しか理解できなかった''、くらいでも問題ありません。 --とりあえずどんな言語でもいいので、一つくらいプログラミング言語をマスターして、何か作ったことがあれば十分です。それくらいのスキルがあれば、作りかけのEssenを試用して何かプログラムを作り、これは使いやすい、これは使いにくいと感想を言うくらいならできるはずですし、それだけでも非常に助かります。 --もしさらに実力があれば、EssenRev4をLinux向けに移植してもいいでしょうし、この機能が必要だから作ってみた、気に入ったら本家にマージしてくれ、ということも可能です。こうなるともはや共同開発者です。 --さらに上を目指すなら、EssenRev4は生ぬるいので、オレサマがもっといいものを作ってやるぜ!と競争を持ち掛けてもいいです。お互いにいいところをパクり合いながら、最強の言語を目指したいです。 ** (2) 進め方のイメージ -合格したら、できるだけ早くオンラインで連絡を取りたいと思っています。どんなふうにしたらいいのかを一日も早く考えたいので。 -それで最初はその時点での最新版のEssenRev4が手元の環境で動くかどうかのテストをしてもらいます。もし無事に動いたら、Essenではどんな命令が使えて、どんなことができるのかの簡単なドキュメントを作りますので、それを試してみてもらいたいです。 -それで「ここがわかりにくい」「これができたらもっといいのに」みたいな意見をもらいつつ、Essenはどんどんバージョンアップしていきますので、Essenで動くアプリを作ってください。・・・これを繰り返しているだけで、プログラミングスキルが徐々に上がっていくように工夫します。 -それをしている過程で、Essenのソースを読んで改造したくなったら、改造してみてください(したくならなくてもいいです)。改造にあたって、わからないことがあれば、それはいくらでも教えます。 -仮にEssenのアプリを作るだけで終わったとしても、それで何か面白いアプリができればそれは大いなる成果です(ここまではできるように積極的にサポートいたします!)。Essenはこんなことができる、こんなところを言語が助けてくれた、みたいなことを発表できるので、全く問題ありません(それにアプリづくりをしているうちにEssenに対して不満も出るはずで、それが受け入れられてEssenの改良につながったりするので、それもあなたの成果です)。 -Essenの共同開発者やEssenの競合ソフトウェアを作った場合も、もちろん文句なく大いなる成果です。 -そんなイメージで考えています。 ** (3) 簡単なQ&A -[Q] グループでの応募はできないけれど、開発が進行していくにつれて他の合格者と一緒にやりたいって思うことがあるかもしれないですよね。その場合、その人とグループを組んで開発をすることはできますか?またその場合にその人のテーマに合わせたりすることもあり得ると思うのですが、それもOKですか。 --[A] そういう状況になれば、OKできると思います。 -(つづく) * こめんと欄 #comment