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:

  1. 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.
  2. The second cluster includes classes whose facilities are directly related to language concepts:
  3. The third cluster provides input and output facilities:
    • 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).
  4. The fourth cluster makes it possible to store object structures on persistent storage and retrieve them later. This facility can also be used to transmit object structures through pipes or over a network.
  5. The last cluster provides access to internal properties of the compiler and environment, useful for applications that need some fine-tuning of the basic mechanisms:
    • 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.