next up previous contents
Next: Differences with centralized frameworks Up: Programming for the GPU Previous: Programming for the GPU   Contents


Programming language

The framework is implemented in Delphi/Kylix [18], a Pascal dialect. Delphi compiles Pascal source code for the Windows architecture and Kylix does the same for for Linux. However, the produced object files are targeted to the Intel architecture only. Another disadvantage is that only Borland produces Delphi/Kylix.

Delphi/Kylix offers advantages as well; it is a standard, common RAD tool (Rapid Application Development) used in industry, where robustness, simplicity and speed, both in development and use, are a vital requirement for companies. Delphi and its Linux counterpart use a component system that allow a deeper encapsulation of data and methods than the normal object oriented model does (for another programming language that uses components, see JavaBeans[22]). Once written, components look like visual icons with properties and events. For example, a click on an icon's event automatically generates the method call in the correct object. The task left to the developer is to add the lines of code for the method itself.

Pascal is well-known for its friendly compiler messages, too. Semantic type-checks avoid passing wrong arguments to subroutines. In particular, integers and pointers cannot be exchanged arbitrarily. Range-checking on arrays at runtime ensure that the program never violates its address space. The debugger, helped by the exception handling mechanism, is able to track down the wrong line of source code in most of the cases.

A broad range of Open Source components is available and interfaces to common libraries like OpenGL is provided. Good programmed components with good debugging capabilities allow developers to get complex and robust applications running quickly.

In short, the availability of Java to run on multiple architectures is sacrificed in exchange for a RAD-tool with comparable object oriented features, but able to generate compiled code like C++ does.


next up previous contents
Next: Differences with centralized frameworks Up: Programming for the GPU Previous: Programming for the GPU   Contents
Tiziano Mengotti 2004-03-27