EiffelBase, The Kernel
In addition to basic concepts close to the language level, the Kernel covers such common needs as input and output, storage and retrieval of objects on persistent storage, fine control over exception handling and memory management, and access to operating system facilities. The kernel can be divided into 5 logical clusters of classes:
- The first cluster contains the universal class defining facilities accessible to all other classes: ANY . Every developer-defined class is a descendant of this class.
- The second cluster includes classes whose facilities are directly related to language concepts:
- Classes describing the basic types: BOOLEAN , CHARACTER , INTEGER , REAL and DOUBLE
- Arrays: class ARRAY
- Tuples: class TUPLE
- Strings: class STRING
- Basic facilities: class BASIC_ROUTINES
- STD_FILES offers basic mechanisms, sufficient for simple input and output.
- FILE describes the notion of sequential file, viewed as a sequence of characters and fully integrated in the data structure library.
- DIRECTORY gives properties of directories (files serving as collections of other files).
- Class EXCEPTIONS (complemented by UNIX_SIGNALS for Unix-type platforms) provides control over the exception handling mechanism, in particular for applications that need to handle different types of exception in different ways.
- Similarly, classes MEMORY and GC_INFO provide ways to control the garbage collector and tailor it to specific needs.
- Class ARGUMENTS gives access to the command-line arguments.