Download An Eclipse-Based Integrated Development Environment for Curry

Transcript
1 Introduction
In the last decades, the computer has become an essential part of modern societies. More
and more tasks are delegated to computer systems for reason of speed, efficiency, security,
costs, and other advantages over different solutions. To satisfy all these expectations,
the development process of such systems has to be efficient and affordable. Generally,
they consist of hardware which is controlled by software. Hence, the software plays a
key role for the success of computer systems.
At the beginning of every software project, a programming languages has to be chosen that should be used for the development. Programming languages can be used to
specify instructions which are executed by a machine, particularly a computer. They
usually abstract from machine instructions to ease the work of developers. This level
of abstraction differs from one language to another. High level programming languages
promise a lot of advantages over programming languages of lower levels, including the
following: Shortened development time, higher readability and maintainability of code,
and less error-proneness. Hence, a basic step for every software project is to choose the
right programming language(s) to use. Generally, this choice is significantly influenced
and restricted by particular project conditions, especially the target platform(s). Another factor is the existing tooling for a programming language. There are often various
tools for widely used programming languages which simplify the use of the corresponding language and raise productivity of software developers, often they are combined into
an integrated development environment (IDE). Additionally, the need for tool support
rises with the number of developers working together on large software projects. Modern
IDEs simplify the work of developers in various ways including fast navigation through
code, code completion, and instant error notification.
This thesis deals with tool support for Curry. Curry is a declarative programming
language aiming to combine functional and logic programming paradigms. It is developed by an international initiative intended to provide common platform for research,
teaching, and application of integrated functional logic languages. Curry is a high level
language and, hence, may be a good choice for software projects. Chapter 3 lists the existing tools for Curry and identifies their shortcomings compared to modern IDEs. The
result shows that the tooling for Curry can and, having the importance of tool support
in mind, should be improved. The objective of this thesis is to provide a modern IDE
for Curry oriented towards the Eclipse Java IDE1 . It will be called Curry IDE in the
1
The Eclipse Java IDE is described in Chapter 3
1