[ Reference Manual | Alphabetic Index ]


ISO Prolog compatibility library


reexport iso_light



This library provides an implementation of Standard Prolog as defined in ISO/IEC 13211-1 (Information Technology, Programming Languages, Prolog, Part 1, General Core, 1995) and the technical corrigenda ISO/IEC 13211-1 TC1 (2007) and TC2 (2012). The library is provided in source form.

There are libraries for three degrees of compatibility:

A blend of ISO and ECLiPSe functionality. All ISO features are available, plus such ECLiPSe features that do not significantly conflict with ISO. But as some of these extensions go beyond what the letter of the standard allows, and because error checking may be less strict than required by ISO, this is not a fully compliant mode.
The same as 'iso', with the exception of error handling. This is sufficient for code that does not rely on a particular form of error terms being thrown by built-in predicates.
This aims to be fully ISO compliant, and represents the 'strict mode' required by the standard.
For more details on ISO compliance, see library(iso_strict).


The effect of this compatibility library is (with minor exceptions) local to the module where it is loaded. An ISO-program should always be contained in a separate module, starting with a directive like
    :- module(myisomodule, [], iso).
Here, the last argument of the module/3 directive indicates the language. It is not advisable to use ":-lib(iso)" or ":-ensure_loaded(library(iso))" within an eclipse_language module, because this would lead to import conflicts between the different versions of built-in predicates.

Alternatively, in order to use ISO-Prolog without having different modules, one can invoke eclipse with a "-L iso" command line option, or set the ECLIPSEDEFFAULTLANGUAGE environment variable to 'iso'. This will launch eclipse with a default module accepting 'iso' language instead of the usual 'eclipse_language'.


The main differences of this extended iso-language compared to the default eclipse_language are the following:


ISO's idiosyncratic char_conversion features is not implemented.


See Also

library(multifile), library(iso_strict), library(iso_light)
Generated from iso.eci on 2017-02-24 10:06