22歳以下を対象とする作品提出型のプログラミングコンテスト「U-22プログラミング・コンテスト2019」(以降、U-22)の最終審査会が2019年10月20日、東京都千代田区の秋葉原コンベンションホールで開催された。最優秀賞に相当する経済産業大臣賞・総合を受賞したのは、開成中学校3年生の上原直人さん(写真1)。上原さんは本格的なプログラミング言語「Blawn」をわずかな期間で開発。会場は、「天才現る」といった雰囲気に包まれた。

写真1●自作のプログラミング言語「Blawn」を説明する上原直人さん

 U-22は今回で通算40回目となるコンテスト。406作品の応募があった。

 Blawnは簡易的なスクリプト言語などではなく、バックエンドにコンパイラ基盤「LLVM」を使う静的型付けのコンパイル言語。中学生がこのようなコンパイル言語を開発したこと自体驚きだが、会場をさらにざわつかせたのは、Blawnは上原さんが初めて作ったプログラミング言語であることと、その極めて短い開発期間だ。

 「Blawnの構想自体は(今年の)7月くらいからあったが、コンパイラを作るとなると構文解析などをやらなければならないので、そういったことを学び始めたのが7月半ば頃。実際に本格的にプログラムを書き始めたのは8月頃です」(上原さん)。

 Blawnは主にC++で開発されているが、C++を使い始めたのも「今年の7月とか、その前くらい」(上原さん)。C++は数あるプログラミング言語の中でも難易度が高いことで知られている。Blawnの実装では、字句解析器のflexと構文解析器のbisonを利用した。いずれもプログラミング言語を開発する際に使う、本格的なツールである。

 上原さんはBlawnの開発にあたって、“人間にとっての扱いやすさ”を最重視した。その結果、Blawnは構文の可読性が高く、型名の記述が不要で、安全なメモリー管理の仕組みを備える言語になった。また、「格納式」というユニークな機能も実装。これは「person <- bob」のように、「<-」演算子を使って、オブジェクトのディープコピーを簡単に行えるようにするもの。

 今後は、コルーチンの実装や、WebAssemblyによるWebブラウザ上での動作への対応、標準ライブラリの整備、拡充などに努めたいとしている。

 なお、上原さんはBoys and Girls, be ambitious! 賞、サイボウズ賞、Best Viewers賞も受賞し、四冠となった。他の受賞作品と受賞者/受賞チームは以下の通り。

■経済産業大臣賞・プロダクト
「LOCUS」(ゲーム)、眞部智也(ECCコンピュータ専門学校、写真2)

■経済産業大臣賞・テクノロジー
ブラウザ上で動作するDNCL処理系「Tetra」(学習&教育)、大門巧(東海大学、写真2)

■経済産業大臣賞・アイデア
「Capture the Elements」(学習&教育)、冨田晴生(Hope International Academy Okinawa、写真2)

写真2●経済産業大臣賞の受賞者と筧捷彦審査委員長。左から、眞部智也さん、上原直人さん、筧委員長、冨田晴生さん、大門巧さん

■経済産業省商務情報政策局長賞・プロダクト
「STEAM GEAR」(ゲーム)、O.M.T.Production(日本工学院八王子専門学校)
「mindPump」(ユーティリティ)、鵜狩慧久(九州工業大学)

■経済産業省商務情報政策局長賞・テクノロジー
「地下楼 The First Contact Demo」(ゲーム)、瀬戸徳(明治大学)
「とれつめ」(ゲーム)、布川陸(東北大学)

■経済産業省商務情報政策局長賞・アイデア
「Cell Sheet」(ユーティリティ)、Toast&Fried egg(電気通信大学)
「Satellite Traveler」(その他)、team01(日本工学院八王子専門学校)

■SOMPO賞
「mindPump」(ユーティリティ)、鵜狩慧久(九州工業大学)

■OBC賞
「HolodealCity」(ゲーム)、Rapture(日本工学院八王子専門学校)

■さくらインターネット賞
「Security Arise of Knowledge(SAoK)」(ゲーム)、電子遊戯部(新潟コンピュータ専門学校)

■日本事務器賞
「糸かけ曼荼羅色シミュレーター」(ユーティリティ)、河内誠悟(N高等学校)

■PCAクラウド賞
「FindYourBusDX」(その他)、酒井駿(Greenwich High School)

■フォーラムエイト賞
「ボコセル」(ゲーム)、なまこラーメン(HAL大阪)

■豆蔵ホールディングス賞
「コロボシ」(ゲーム)、A.L.F.A.Company(日本工学院八王子専門学校)