プログラミングツール
ソフトウェア開発 |
---|
中心となる活動 |
パラダイムとモデル |
方法論とフレームワーク |
開発支援 |
プラクティス |
ツール |
標準と機関 |
用語集 |
プログラミングツールは、コンピュータなどのプログラミングに使う、ツールと呼ばれるコンピュータ・プログラム類のことである。この記事ではもっぱら、コンピュータ・プログラミング用のツールについて扱う。
歴史
[編集]プログラマブルなコンピュータの登場と同時に、プログラミングを支援するコンピュータ・プログラムというものも作られ始めた。コンパイラやインタプリタといった、プログラミング言語処理系などもツールに含めることもある(言語処理系以外の、専ら支援するツールのみを指すこともある)。ごく原始的なものの例としては、紙テープやパンチカードなどを2組用意し、それぞれの内容が同じであることを確認することで、入力ミスがないかどうかチェックする、といったようなものがあった(これはごく単純なため、ハードウェアによるものもあった)。
1970年代初期には、UNIXが grep、awk といったツールを多用し、それらをパイプで連結して使ったことでよく知られるようになった。ソフトウェアツールという言葉は、ブライアン・カーニハンらの同名の著書(日本語版は『ソフトウェア作法』)に由来する。しかしこれらは、プログラミングツールというよりは、本来あらゆるデータ処理の対象に使えるものであり、そのためプログラミングにも使える、と言ったほうが正しい(そもそもUNIXの開発された動機のいくつかのうちの一つに、ベル研内の、特許などをはじめとした書類のデータ処理のためだったのである。roffなどがUNIXの標準ツールだったのはそういう由来による)。こういったツールは、単純で軽量なものを組み合せて使う、という所に本領がある。
一方、UNIXとはまた異なる文化として、LISPやSmalltalkの文化があった。特にSmalltalkでは、クラスブラウザによりクラスライブラリを簡単に追いかけることができることや、その場その環境のプログラムを書き換える、といったことができた。そのGUI環境の表面だけは、後にMacintoshが引き継ぐが、そのような自由な環境という精神はむしろ引き継がれなかった。
統合開発環境 (IDE) は、元々は、シングルタスク環境であったパーソナルコンピュータにおいて、1個のアプリケーションで編集・コンパイルのフロントエンド・デバッガ等、各種の作業を行えるようにしたものから始まっている。前述のSmalltalkのような環境を、パーソナルコンピュータでなんとか実現しようとしたもの、と見ることもできる。その後パーソナルコンピュータでも、Windowsや、あるいはUNIXライクOS(Linuxなど)が使えるようになると、例えばEclipseなど、より洗練された(Smalltalkのそれに近い)環境などが現れたが、MS-DOS以来の伝統を残すVisual Studioなどもまだ使われている(しかし近年、Windows以外のバージョンを中心に、その中身はXamarin Studioに置き換わりつつある)。
分類
[編集]とりあえず適当に例を挙げる。
ツール一覧
[編集]ソフトウェアツールには様々な形態がある。
- バグ管理システム: gnats、Bugzilla、Trac、JIRA、LibreSource、SharpForge
- ビルドツール: make、automake、Apache Ant、SCons、Rake、cmake、qmake
- コード網羅率: gcov、EMMA
- コード共有サイト: Freshmeat、Krugle、SourceForge.net、ByteMyCode
- コンパイラ、リンケージエディタ: GNUツールチェーン、gcc、Microsoft Visual Studio、CodeWarrior、Xcode、ICC
- デバッガ: gdb、GNU Binutils、Valgrind
- 逆アセンブラ: リバースエンジニアリングツール
- ドキュメンテーションジェネレータ: Doxygen、help2man、POD、Javadoc、Pydoc/Epydoc
- 形式手法: 数学に基づく仕様記述・開発・検証の技法
- GUIインタフェースジェネレータ: Qt Designer、Cocoa InterfaceBuilber、Windows Forms Visual Studio
- ライブラリインタフェースジェネレータ: SWIG
- メモリ使用量/リーク/破壊検出: dmalloc、Electric Fence、DUMA、Insure++。
- パーサジェネレータ: Lex、Yacc、Parsec
- 性能解析(プロファイラ)
- リファクタリングブラウザ
- バージョン管理システム: Bazaar、BitKeeper、Bonsai、ClearCase、CVS、Git、GNU arch、Mercurial、Monotone、RCS、SCCS、SourceSafe、Subversion、LibreSource Synchronizer
- スクリプト言語: AWK、Perl、Python、REXX、Ruby、シェル、Tcl
- 検索: grep、find
- コード重複検出: CCFinderX
- 自動プログラミングツール
- 静的コード解析: lint、Splint、PMD、Findbugs、AdLint
- テキストエディタ: Emacs、vi、vim
- インスペクタ: プログラム実行中のデータ内容などを表示して確認するツール。
- トレーサ: プログラムの実行経路を表示して確認するツール。
IDE
[編集]統合開発環境 (IDE) は、多数のツールの機能を組み合わせて1つのパッケージにしたものである。一般に、あるプロジェクト内のファイル群の内容を検索するなどといった単純な作業をより簡単にできる。
IDE は企業レベルのアプリケーションの開発によく使われる。
以下に主なIDEを挙げる。
- Delphi
- C++ Builder
- Microsoft Visual Studio
- Xcode
- IBM Rational Application Developer
- Eclipse
- NetBeans
- IntelliJ IDEA
- WinDev
- Code::Blocks
関連項目
[編集]参考文献
[編集]- Software Development Tools for Petascale Computing Workshop 2007
- CASE Tools
- CASE tool index[リンク切れ]
- UML CASE tools
- Agile CASE Tool
- Kernighan, Brian W.; Plauger, P. J. (1976年), Software Tools, Addison-Wesley, pp. 352, ISBN 020103669X