* 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できると思います。 -[Q] どうしてもEssenにかかわりたいです。何か裏技はありませんか? --[A] 実はあります。それはセキュリティキャンプでもほぼ同じ条件で募集していますので、そちらにも応募すればいいのです!もし両方に受かってしまった場合は、キャンプをキャンセルするといいでしょう。文面は使いまわしでいいです。というか全く同じでも問題ありません。そうすれば、さすがの私でも同一人物の応募だと気づきますので、両方に合格させるようなことはしないで、両方に受かりそうになった時はキャンプのほうを落とします(キャンプの選考のほうが後なので、両方に受かるのならキャンプを通してくれ、っていうのは、ちょっと危険な要望です。キャンプにすごい人が殺到したら、両方で落ちてしまうかもしれないので・・・)。 --[注] セキュリティキャンプでは年齢制限や「学生であること」が追加で課される条件ですので、これをクリアできない場合はsechack365しかありません・・・。 -[Q] Essenにかかわるとどんないいことがありますか? --[A] Essenは現在、開発を開始したばかりのフェーズにあります。この段階から関われば、初期開発メンバーに名を連ねることが可能です。川合は今までいくつかの開発をやってきたことがあり、それらは大成功ではないにせよ、小さな成功は収めています。その実績からいえば、Essenが大成功して従来のプログラミング言語を蹴散らすようなことは起きないと思いますが、でも何の成果も上がらないという可能性は低いように思います。いや、もしかしたらこれが川合の人生の最大の代表作になる可能性はあります(可能性だけですけどね)。・・・まあ一番ありそうなのは、Essenがまた小さく成功して、その成果が他の言語に取り込まれる、くらいでしょうか。そしてその取り込まれる際には、Essenを詳しく知る初期開発メンバーがとても注目されるでしょう。・・・私は、自分がやったことと他人に手伝ってもらったことを厳密に区別しますので、あなたを貢献をうばうようなことはしません。また就職の際に自分の貢献を明らかにするような推薦状を書いてくれと言われれば、もちろん事実に反しない範囲でですが、喜んで協力します。それが私にできる、貢献に対するせめてもの恩返しだと思うからです。 -[Q] 代表作なんかないです・・・ --[A] ここでいう代表作っていうのは、世間に公開したものがあったらそれを書いてね、という意味では「ない」のでご安心ください。自分がこの言語で作ったものの中で、一番よくできたのは○○です、ちなみにかくかくしかじかの内容です、って書いてくれたら十分です!・・・誤解しやすい書き方でごめんなさい。 -(つづく) * こめんと欄 -初めまして失礼します。セキュキャンはどのトラックならEssenに関われるというのは有るのでしょうか? -- ''abc'' SIZE(10){2018-04-25 (水) 22:46:07} #comment