I mattoncini di YARPP :)

YARPP è scritto facendo uso di una serie di funzioni elementari che ho sviluppato nel tempo e richiede YARPP stesso per essere generato. Nel capitolo "Building Yarpp" sarnno descritte in dettaglio la modalita di "generazione" di YARPP a partire dall'ultima release di se stesso.

Nella scrittura delle routine elementari ho cercato di seguire alcune regole per avere un codice "pulito". Le principali regole sono le seguenti:
  • tutte le routine sono strutturate come Rexx Procedure e quindi le variabili sono locali alle routine stesse;
  • l'uso delle Rexx Procedure che è stato fatto è quello delle funzioni. Ogni azione elementare è fatta con una funzione e funzioni più complesse sono "costruite" a partire da quelle elementari;
  • all'interno del codice ci sono statement di inclusione condizionale delle eventuali altre routine necessarie;
  • essendo il Rexx quasi un linguaggio non tipizzato, si è fatto uso nella definizione delle variabili della notazione ungherese;
  • ogni funzione è documentata con una scheda che ne riassume le caratteristiche, ne indica le modalità di chiamata e ne specifica i valori ritornati ed il loro significato;
  • ogni funzione è in grado di produrre un livello di debug che al minimo mostra i valori in ingresso ed i valori ritornati. (per alcune funzioni veramente elementari questo non e' vero);
  • ho sviluppato un classe di funzioni specifiche per il debug. Con l'utilizzo di tali funzioni è possibile implementare livelli crescenti di debug (da 1 a 9) e registrare l'output ance su file.
  • ho cercato, dove possibile, di:
    • rendere sicuro l'input;
    • rendere sicuro l'output;
    • rendere sicuri i dati trattati;
    • rendere sicuri gli algoritmi;
Nonostante tutto sono cosciente che si può essere sicuri solo della non scorrettezza di un programma, ma non della sua correttezza.

Con l'occasione, man mano che pubblicherò il codice lo rivedrò per ripulirlo.
Ogni commento, suggerimento, critica sono graditi e saranno tenuti in seria considerazione.

Vedremo ora quali sono le funzioni definite per YARPP.

[Home] [Index] [Usage] [Environment variable] [pre-processor] [funzioni] [debug]

Nessun commento: