Exploiting ECLiPSe Features

## 22.3 Exploiting ECLiPSe Features

When rewriting existing applications as well as when writing new programs, it is useful to bear in mind important ECLiPSe features which can make programs easier to write and/or faster:

- The maximum performance is obtained when calling nodbgcomp/0 at the beginning of the session, before compiling any program and loading any libraries.
- ECLiPSe arrays and global variables (setval/2, getval/2) are usually more suitable to store permanent data than assert/1 is, and are usually faster.
- ECLiPSe has a number of language extensions which make programming easier, see chapter 5.
- The predicates get_flag/2, get_flag/3, get_file_info/3, get_stream_info/3, get_var_info/3 give a lot of useful information about the system and the data.
- The ECLiPSe macros often help to solve syntactic problems (see chapter 12).
- The TkECLiPSe GUI provides many features that should make developing programs easier than with the traditional tty interface.
- It is worth familiarising oneself with the debugger's features, see chapter 14.
- ECLiPSe is highly customizable, even problems which seemingly require modification of the ECLiPSe sources can very often be solved at the Prolog level.