• [^] # Re: peut etre que...

    Posté par (site web personnel) . En réponse au journal Un langage pour les nuls? Le langage D!. Évalué à 0.

    Pourquoi, il n'y aurait pas intérêt ?

    Imagine, l'initialisation du système :

    section PUBLIC

    - main <-
    (

    SYSTEM.make;

    MEMORY.print_capacity;

    FILE_SYSTEM.make;

    VIDEO.auto_make;

    INTERFACE.make VIDEO;
    INTERFACE.connect_to MOUSE;
    INTERFACE.connect_to KEYBOARD;
    INTERFACE.connect_to TIMER;

    put_logo;

    CLOCK.make;

    PANEL.make;

    INTERFACE.run;

    VIDEO.close;

    die_with_code exit_success_code;
    );


    Un objet "drive" :

    section INHERIT

    + parent_controler:CONTROLER := CONTROLER;

    section DRIVER

    //
    // Creation.
    //

    - create ctrl:CONTROLER drive drv:USMALLINT :SELF <-
    ( + result:SELF;

    result := SELF.clone;
    result.make ctrl drive drv;
    result
    );

    - make ctrl:CONTROLER drive drv:USMALLINT <-
    (
    parent_controler := ctrl;
    n_drive := drv;
    read_status;
    // Init cache 256Ko.
    1.to 64 do { j:INTEGER;
    first := SECTOR.create first;
    };
    );

    Et le controleur disque lui même, que l'on peut spécialiser par héritage :

    section PUBLIC

    + port_base:USHORTINT;

    //
    // Creation.
    //

    - create port_b:USHORTINT :SELF <-
    ( + result:SELF;

    result := SELF.clone;
    result.make port_b;
    result
    );

    - make port_b:USHORTINT <-
    (
    port_base := port_b;
    );

    //
    // Deferred.
    //

    - n_drive:USMALLINT <- deferred;

    - nbr_sector:UINTEGER <- deferred;

    - nbr_cylinder:UINTEGER <- deferred;

    - nbr_head:UINTEGER <- deferred;

    - step:UINTEGER <- deferred;

    - cursor:UINTEGER <- deferred;

    - is_removable:BOOLEAN <- deferred;

    - is_read_only:BOOLEAN <- deferred;

    //
    // Services
    //

    - size:UINTEGER <-
    // Size drive (sector)
    (

    Tu le spécialises ensuite en créant un ide_controler.
    Dans le bas de ton arbre d'héritage, tu met les différents type de FS que tu veux.
    Avantage ?
    Pas de couche de virtualisation...

    C'est quand même mieux que du c avec des pointeurs, non ?

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker