Computer Languages

B Bass and T Nixon, Environment Canada, Toronto, ON, Canada © 2008 Elsevier B.V. All rights reserved.

The Computational Platform: Hardware, Operating Compiled and Interpreted Languages

Systems, and Libraries Imperative and Declarative Languages

Low- and High-Level Languages Other Language Types

Procedural Languages Choosing a Language

Object-Oriented Languages Further Reading

Knowledge of a computer language or multiple languages is normally not considered to be an essential component of ecological education or of an ecologist's toolbox. This is most likely due to the range of other courses and methods required for research, the strong emphasis on field work and the availability of a an ever-increasing amount of off-the-shelf software. Thus, for many ecologists the study of computer languages and programming may not be warranted, but it is essential for developing customized simulations, analyses, and presentations of information. Although the complexity of ecosystems is difficult to represent in computer code, which in turn is usually based on a first abstraction to mathematics, a good simulation model provides an efficient method for testing scenarios. Simulation models are particularly useful when field work or experimentation is too expensive to repeat in multiple locations or over multiple time periods and the basic processes are understood well enough to be represented mathematically and hence in a computer language.

The simulation of ecological processes is becoming increasingly important to other fields, such as climatology and adaptation science. Modelers are realizing that increasingly more sophisticated representations of the land surface are critical in developing future climate change scenarios, studying biophysical sensitivities and adaptations to climate change. The green roof community is also developing sophisticated simulation models for heat and moisture fluxes, as green roof field sites are very expensive to set up. Although most of the traditional statistical methods that are required for ecological research do not require any knowledge of programming, new methods or nonstatistical analyses may require customized software whether it is for methods such as Q-analysis, which is based on abstract algebra, eigenvector analysis of customized simulations, or for classification methods based on neural nets. Knowledge of computer languages is also useful for developing interfaces so that other researchers can access a range of experimental results or a database.

Since the emergence of the first computer systems, new programming languages have emerged fairly consistently in order to deal with a wide array of computational tasks and challenges. The development of new languages has been driven mainly by the need to bridge the semantic gap between human and machine. A computer system is driven entirely by sequences of binary coded instructions, whereas humans tend to organize their work around tasks and objectives. Programming languages are all attempts at some form of median language that can be both easily comprehended and articulated by a programmer, and unambiguously translated into the requisite binary sequences for a computer. Computer scientists have engaged numerous different paradigms for organizing conceptual semantic human thinking into machine-comprehensible formats.

There are a number of distinctions which computer scientists use to categorize the many different programming languages and the different programming philosophies which they represent. Table 1 outlines

Table 1 Computer programming languages grouped by category

Low-level and high-level languages

Low-level Assembly, BASIC, FORTRAN

Mid-level C

Procedural and object-oriented

Procedural BASIC, FORTRAN, Pascal, C

Object-oriented C + +, Java, Python

Compiled and interpreted languages

Compiled Assembly, BASIC, C/C++, FORTRAN

Interpreted Perl, MATLAB

Hybrid Java, Python, .Net

Imperative and declarative languages Imperative BASIC, C/C + +, Java, FORTRAN

Functional LISP, Scheme, ML, OCaml, Haskell

Logical Prolog some of the most important categories used to classify different computer languages. These categories are by no means exhaustive, neither are they mutually exclusive.

The languages in Table 1 are included as they represent the most commonly used computer languages for simulation and other applications that might be required in ecology or typify a particular approach to programming that may merit further exploration in the future.

Four example programs are included in subsequent sections. They each generate a sequence of the first 20 values of the common population-growth model

P (t) = Poert for one or two sets of parameters. This model relates the size of a population at a particular time P(t) to the initial size of the population P0, as an exponential growth over a period of time t, with a growth factor of r.

10 Ways To Fight Off Cancer

10 Ways To Fight Off Cancer

Learning About 10 Ways Fight Off Cancer Can Have Amazing Benefits For Your Life The Best Tips On How To Keep This Killer At Bay Discovering that you or a loved one has cancer can be utterly terrifying. All the same, once you comprehend the causes of cancer and learn how to reverse those causes, you or your loved one may have more than a fighting chance of beating out cancer.

Get My Free Ebook

Post a comment