Darwin (programming language)

{{distinguish|Darwin (programming game)}}

{{Infobox programming language

| file_ext=.drw

| paradigm=imperative, structured, object-oriented

| released=1991

| designer=Gaston Gonnet

| typing=Dynamic, Strong

| influenced_by=Maple

}}

Darwin is a closed source{{cite journal| title=Darwin v2.0: an interpreted computer language for the biosciences | year=2000 | doi=10.1093/bioinformatics/16.2.101 | s2cid=1531041 | last1=Gonnet | first1=G. H. | last2=Hallett | first2=M. T. | last3=Korostensky | first3=C. | last4=Bernardin | first4=L. | journal=Bioinformatics | volume=16 | issue=2 | pages=101–103 | pmid=10842729 | doi-access=free | hdl=20.500.11850/422531 | hdl-access=free }} programming language developed by Gaston Gonnet and colleagues at ETH Zurich.{{cite web |url=https://www.inf.ethz.ch/personal/gonnet/ | title=Personal page of Gaston Gonnet |accessdate=2017-11-10}}{{citation|title=Gaston Gonnet Oral history interview, 16–18 March, 2005, Zurich, Switzerland|first=Thomas|last=Haigh|year=2005|publisher=Society for Industrial and Applied Mathematics|location=Philadelphia, PA|url=http://history.siam.org/oralhistories/gonnet.htm}} It is used to develop the OMA orthology inference software,{{cite web|url=https://omabrowser.org/standalone/ |title=OMA Standalone |accessdate=2017-11-10}} which was also initially developed by Gonnet.{{cite web|url=https://omabrowser.org/oma/about/ |title=OMA: web-based database interface for orthology prediction |accessdate=2017-11-10}} The language backend consists of the kernel, responsible for performing simple mathematical calculations, for transporting and storing data and for interpreting the user's commands, and the library, a set of programs which can perform more complicated calculations.{{cite web |url=https://www.inf.ethz.ch/personal/gonnet/DarwinManual/DarwinManual.html |title=The Darwin Manual |accessdate=2017-11-10}} The target audience for the language is the biosciences, so the library consisted of routines such as those to compute pairwise alignments, phylogenetic trees, multiple sequence alignments, and to make secondary structure predictions.

Example Code

One would write the Hello World program as:

printf('Hello, world!\n');

The following procedure calculates the factorial of a number:

factorial := proc ( n )

if (n=0) then

return(1);

else

return(n * factorial(n-1));

fi;

end:

See also

References