(本件に関するIPAのプレスリリース)
http://www.ipa.go.jp/about/press/20120508.html
Android用に販売中のSHOT04-NOKOGI RiderとInvaderBlock2の検査をしてみようかと。
これらのソフトは、Android用ですが、だいたい(9割9分ぐらいの割合で)C言語で作られています。
起動部分とか、Android特有の部分だけJavaで、残りは全部Cという感じ。
本当は、全部Cで作ることもできる仕組み(NativeActivity)もありますが、色々と不便だったので、Android特有部分については(仕方なく)Javaで書いておきました。
IPAが配布しているソースコード検査ソフトはLinux用のソフトウェアですが、VMWarePlayerで再生できるイメージ形式でも配布されていました。これなら、セットアップの手間が省けて簡単です。
しかし、無料ソフトということで結構制約が厳しい。
次のような制約があるようです。
① C 言語(ANSI C)で記述されたソースコード
② x86 アーキテクチャ向けに記述されたソースコード
③ 100ファイル以下で構成されるプログラムのソースコード
④ 構造体を使用していないソースコード
⑤ goto文を使用していないソースコード
しかし、④の構造体がダメというのは、無理・・・
(Cですが)データ構造についてはオブジェクト指向で設計しているので、構造体だらけです。
あと、⑤のgotoも沢山使っています。
当然ながらスパゲッティではないですが、gotoを使うことで、異常系処理を簡潔に記述するのに役立つので、プロの開発現場でも普通に使います。むしろ、頑なにgotoを使わない人が作ったプログラムの方が、メモリリークとかのバグを作り込みやすい傾向があったりします。
情報系の大学や専門学校なんかでは、軽々しく「gotoはダメ!」みたいな教え方をしている所がありますが、それは正確ではありません。(正しくは、「gotoは構造化プログラミングを保った上で適切に使え!」です)
という訳で、残念ながら利用は断念します。
④と⑤がダメってことは、商用のプログラムでは、ほぼ使い物になりませんね。
こういうツールで商売している業者さんも居るので、そういう方面への配慮かな?
IPAのホームページでの紹介のノリも「学習用途!」みたいな感じですし。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。