next up previous contents
Next: Exploring the Basics Up: The DARWIN Manual © Previous: List of Figures

An Introduction to Darwin

A programming language allows users to instruct a computer how to accomplish tasks. Languages come in a multitude of flavours and each tend to have general areas where they are used most often. The ancient language FORTRAN is widely used in scientific computation, COBOL became established as the language of choice for business applications, the relatively new language JAVA is becoming a de facto standard with the Internet, and MAPLE is a popular language for symbolic computation. Darwin is a programming language especially tailored to the wants and needs of the bioinformatics researcher. A computer scientist could classify Darwin as a partially interpreted language: one gives commands directly to the Darwin environment, the commands are evaluated and the results returned to the user. In a sense, it acts as a sort of calculator.

The Darwin system consists of two parts

the kernel, and
the library.
The kernel is responsible for performing simple mathematical calculations, for transporting and storing data and for interpretating the user's commands. In some sense, the kernel is the heart and brain of Darwin. Chapters [*] through [*] focus mainly on the built-in commands and routines offered by the kernel.

The library is a set of programs which detail to the kernel how to perform more complicated computations. The Darwin library is already quite extensive containing programs to compute pairwise alignments, phylogenetic trees, multiple sequence alignments, and to make secondary structure predictions. Chapter [*] - Point Accepted Mutations and Dayhoff Matrices through Chapter [*] - Molecular Weight Traces provide a tour of these libraries by showing how the tools they contain may be used to solve ``real''problems from bioinformatics.

Two of the big strengths of the Darwin system are (1) the ability for users to extend existing libraries by tailoring routines to better suit their particular needs and (2) the ability to write completely new libraries for their own favourite problems not yet included in the system. Part [*] provides the necessary tools to accomplish both. During our exposition of the language, we have attempted to use examples which a user would normally encounter when handling genetic data. We have forsaken completeness for clarity as there are some rather esoteric commands and routines which only a seasoned veteran would require. Their explanation here would only serve to ``clutter'' the reader's understanding and detract from the main intentions of the chapter. Readers requiring more extensive knowledge about routines are referred to the Part [*] - The Reference Guide which contains a complete description of the libraries.

next up previous contents
Next: Exploring the Basics Up: The DARWIN Manual © Previous: List of Figures
Gaston Gonnet