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