- 個人部門 入選作品
- 最優秀賞『プログラミング言語「Spinel」』
- 優秀賞『Atomoo』(えいとむー)
- 入賞『Future Network Communicator』
- 入賞『block!block!』
- 入賞『Cube3(Cube neo)』
最優秀賞『プログラミング言語「Spinel」』
作品紹介 | |
---|---|
表彰理由 | オブジェクト指向プログラミング言語と、その開発・実行環境。既存の言語と比較して簡易でありながらも、その機能は本格的であり、複雑なプログラムも作成できる。難易度の高いプログラミング言語とその開発・実行環境を一人で作り上げたのは素晴らしい。開発環境はシンプルで使いやすくなるよう工夫されている。実行速度を最適化する機能等も備えているなど、本格的で実用性も高く、今後のさらなる発展が期待できる。 |
作品名 | プログラム言語「Spinel(スピネル)」 |
制作者 | 岩手県立水沢高等学校 理数科 3年 高橋 平 |
作品ジャンル | プログラム言語 |
作品概要 | プログラム言語「Spinel(スピネル)」は、平成17年U-20プログラミングコンテストで優秀賞を受賞したプログラム言語「Frontier」の後継言語です。 最適化層の実装、ジャンプ命令の使用による更なる高速化と、より便利な構文を追加し、Frontierよりも強力なオブジェクト指向を取り入れながらも、型の概念を取り除き、わかりやすいマニュアルを作成することで、プログラミング経験のない初心者でも比較的簡単に扱えるようにしました。さらに、Webアプリケー ション開発に特化したランタイムも付属しているので、CGIなどの開発も可能です。 Spinelでより強力になったオブジェクト指向は、Frontierにはなかった「カプセル化」を備えています。また、型がないために完全な「多態性」を実装することはできませんでしたが、実行時に型を決めるため、多態性を意識しなくてもある程度の多態性を持たせることができました。 また、Frontierにはない新しい構文「手続き変数」は、変数内に処理内容を記述し、実行時に動的に呼び出すことができる構文で、これにより独自の制御構文を作成するといったことも可能になりました。Frontierで目標とした「初心者向け」を残したまま、より強力な機能が加わったプログラム言語、それがSpinelです。 |
開発言語、ツール | Delphi 6 Personal 他多数 |
プログラムソースの規模 | 多分10000行くらいだと思います。全部含めて(ライブラリなど)なら15000行くらいでしょうか。 |
構想から 完成までの期間 |
作成期間は6ヶ月。長い目で見ればFrontierから続いているので2年くらいでしょうか。 |
制作者からのコメント | |
---|---|
こだわりポイント ・独自のアイデア |
Spinelの大きな特徴は、Frontierよりも最大約190倍もの高速な処理が可能な点です。インタプリタに対する命令を簡略化し、内部で複雑な処理をすることで、記述するソースの量を減らし、処理速度を大幅に向上させました。さらに、Frontierでは実行時に命令などをすべて登録していましたが、Spinelではジャンプ命令を実装することで不必要な処理を実行しなくても実行が可能となり、これも高速化に繋がっています。 さらに、プログラムをブロック単位で区切ることで変数の管理が楽になり検索速度も向上し、最適化層を実装することでコンパイル時に生成された無駄なソースを削除し、定数式は事前に計算するようにしました。 また、Frontierより強力に実装されたオブジェクト指向もSpinelの特徴の一つです。「継承」はもちろん、「カプセル化」も実装し、ある程度の「多態性」も備えています。さらに、Spinelで新しく加わった「手続き変数」も特徴といえるでしょう。処理内容を引数として渡すことができると、独自の制御構文を作成することも可能となり、柔軟な処理が可能となります。 CGI等のWebアプリケーション開発に特化したCUI版のSpinelも付属しています。 あまり安定していないため本格的な使用はできませんが、自分のパソコンでWebアプリケーションのテストをするにはもってこいです。もちろんGUI版のSpinelと同じように使うことができるので、CGIの原理を学ぶのにもぴったりです。 忘れてはいけないのが、Frontierから継承した「使いやすさ」でしょう。パソコンの設定も不要で、実行ボタン一つで簡単に実行できます。また、実行形式ファイルを作成することも可能ですので、画像ファイルなどをまとめたり、Spinelランタイムがない環境で作ったソフトを動かすことも可能です。 |
応募したきっかけ | 前回の受賞 |
プログラム開発歴 | プログラミングは中3の夏休みくらい。本格的にはじめたのは...Frontierの開発なので2年。 |
指導者の有無 | 勝手に思っている人ならいます。指導者というか、自分がここに至るきっかけを作ってくれた人。 |
どうやって 勉強したか |
独学。本があまりないのでインターネットを使用。 |
受賞の感想 | 第27回U-20プロコンへの参加を決めたのは、2005年の11月でした。当初は別のソフトを作っていましたが、Frontier(*)に未練があったため時間がないと知りながらも少しずつ改良しました。 しかし、改良だけでは対応し切れなかったため新しく作り直しました。半年という短い開発期間でSpinelをある程度完成させ、さらには最優秀賞を受賞することができ、非常に驚いています。自分の作ったものを他人に評価してもらう機会はあまりないので、とてもいい経験になったと思います。 (*)第26回コンテストで入賞したプログラミング言語「Frontier」。高橋さんは2年連続受賞。 |
最後に | Spinelは頻繁にバージョンアップされ、作品受賞当時にあったバグなどは修正され、新しい機能も加わっています。最新版はSpinel公開ページ(http://www.diced.jp/~notes/)にて公開しています。また、今後の更新情報の通知やサポートなども行っていく予定です。 |