Other Development Tools


This chapter describes key tools for developing C and C++ programs under UNIX, but there are many other useful tools available.

Integrated development environments, or IDEs, generally provide a graphical user interface for source code editing, project management, and debugging. Visual Slickedit (http://www.slickedit.com/) is a commercially available IDE that runs on most UNIX systems. It supports workspaces and projects; is flexible enough to use external tools; and has a highly configurable editor, a graphical debugger, and a tagging system that lets you quickly browse through your code. Two freely available IDEs for Linux are Anjuta (http://www.anjuta.org/) and Kdevelop (http://www.kdevelop.org/). Anjuta is intended for GNOME development, and Kdevelop is intended for KDE development.

ddd (http://www.gnu.org/software/ddd/) is a GNU tool that provides a graphical user interface that builds on top of a command-line debugger. You can use it on top of gdb or dbx as well as debuggers for other languages like java, perl, and python. ddd allows you to view the source text and see breakpoints, and it has an interactive graphical data display.

There are many UNIX tools available for memory tracking and performance profiling. Valgrind (http://www.valgrind.org/) is an open-source memory tracking and performance profiling tool that is currently only supported on Linux, though it has experimental ports on other platforms. ElectricFence (http://perens.com/FreeSoftware/ElectricFence/) is a freely available memory bounds checker for Linux and UNIX. Purify (http://www.ibm.com/software/awdtoots/purify/unix/) does memory leak and corruption detection and is commercially available for both Linux and UNIX. Vtune (http://www.intet.com/cd/software/products/asmo-na/eng/υtune/υtin/index.htm) is a commercially available profiler that supports both event based sampling and call graph analysis for Linux.

If you need to build a graphical user interface for an X Window application, you will probably want to build on top of a widget toolkit. GTK+ (http://www.gtk.org/) and QT (http://www.trolltech.com/products/qt) are currently the most popular widget libraries. GTK+ is an open-source GNU project. It was used in building the GNOME desktop environment. QT is only freely available for open-source software. It was used in building KDE. If you are building 3D applications under UNIX, you will probably want to use OpenGL (http://www.opengl.org/).

DejaGnu (http://www.gnu.org/software/dejagnu/) is a testing framework. It helps you to build a test harness that allows you to run multiple tests on your programs. It supports both system and unit testing. DejaGnu tests are usually written in Expect using Tcl.

lex, flex, yacc, and GNU bison are tools that are useful if you are doing complex text interpretation such as writing your own source code compiler. lex and flex are tools that, given a specification file with regular expressions, will generate C source files that, when compiled, will perform lexical analysis. Lexical analysis takes an input string of characters and breaks it up into a series of symbols called tokens. You could use these tokens in your programs, but more often they are passed on to a parser. yacc and bison are tools that, given a grammar, will generate C source files that, when compiled, will parse tokens. A parser analyzes tokens and generates a structured tree from the tokens. This structured tree is most often used by a compiler to turn a program into assembly flex and bison are both open source. They are available from http://flex.sourceforge.net/ and http://www.gnu.org/software/bison/. Traditionally lex and yacc were proprietary, but their source is now available from: http://cυs.opensotaris.org/source/xref/on/usr/src/cmd/sgs/.




UNIX. The Complete Reference
UNIX: The Complete Reference, Second Edition (Complete Reference Series)
ISBN: 0072263369
EAN: 2147483647
Year: 2006
Pages: 316

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net