Successivo: , Su: Concetti fondamentali   [Contenuti][Indice]


D.1 Quel che fa un programma

Al livello più fondamentale, il compito di un programma è di elaborare alcuni dati in input e produrre dei risultati. Si veda la Figura D.1.

Flusso generico di un programma

Figura D.1: Flusso generico di un programma

Il “programma” nella figura può essere sia un programma compilato127 (come ls), sia un programma interpretato. In quest’ultimo caso, un programma direttamente eseguibile dal computer, come awk, legge il programma, e quindi usa le istruzioni in esso contenute per elaborare i dati.

Quando si scrive un programma, esso è composto normalmente dai seguenti insiemi di istruzioni di base, come si vede nella Figura D.2:

Fasi di un programma generico

Figura D.2: Fasi di un programma generico

Inizializzazione

Queste sono le cose da fare prima di iniziare la reale elaborazione dei dati, per esempio controllare gli argomenti con cui è stato invocato il programma, inizializzare dei dati di cui si potrà aver bisogno per la successiva elaborazione, e così via. Questa fase corrisponde alla regola BEGIN di awk (vedi la sezione I criteri di ricerca speciali BEGIN ed END).

Nella preparazione di una torta, questa fase corrisponde a quella di tirar fuori tutti i contenitori in cui mischiare gli ingredienti, e la teglia in cui cuocerla, e nell’assicurarsi di avere a disposizione tutti gli ingredienti necessari.

Elaborazione

Questa fase è quella in cui si svolge il lavoro vero e proprio. Il programma legge i dati, raggruppati in “pezzi logici”, e li elabora secondo necessità.

In quasi tutti i linguaggi di programmazione, la lettura dei dati va gestita manualmente, controllando dopo ogni lettura se è rimasto ancora qualcosa d’altro da leggere. Il paradigma criterio di ricerca–azione di awk (vedi la sezione Per iniziare con awk) gestisce automaticamente la parte di lettura dati.

Nella preparazione di una torta, l’elaborazione corrisponde all’attività vera e propria: rompere le uova, mescolare la farina, l’acqua e gli altri ingredienti, e quindi mettere la torta a cuocere nel forno.

Pulizia

Una volta elaborati tutti i dati, ci sono attività da svolgere prima di aver finito. Questa fase corrisponde alla regola END di awk. (vedi la sezione I criteri di ricerca speciali BEGIN ed END).

Dopo che la torta è stata tirata fuori dal forno, va fatta raffreddare e avvolta in una pellicola trasparente per evitare che qualcuno la assaggi, e inoltre vanno lavati i contenitori e le posate.

Un algoritmo è la descrizione dettagliata della procedura necessaria per svolgere un compito o per elaborare dati. Lo si può paragonare alla ricetta per preparare una torta. I programmi sono il modo con cui un algoritmo viene eseguito da un computer. Spesso è compito del programmatore sia sviluppare un algoritmo, sia programmarlo.

I “pezzi logici” nominati precedentemente sono chiamati record (registrazioni), in analogia con le registrazioni del personale di una ditta, degli studenti di una scuola, o dei pazienti di un dottore. Ogni record è composto di molte parti, per esempio nome, cognome, data di nascita, indirizzo, e così via. Le parti di cui è composto un record sono chiamate campi del record.

L’atto di leggere i dati è noto come input, e quello di generare risultati è, come facilmente prevedibile, chiamato output. Spesso i due sono riuniti sotto il nome di “input/output” e, ancor più spesso, con l’abbreviazione “I/O”. (In inglese “input” e “output” sono spesso usati come verbi, nel gergo informatico, al posto di leggere e scrivere.)

awk gestisce la lettura dei dati, come anche la divisione in record e campi. Lo scopo del programma dell’utente è di dire ad awk cosa fare con i dati. Questo vien fatto descrivendo modelli da ricercare nei dati e azioni da eseguire qualora si siano trovati questi modelli. Questa caratteristica dei programmi awk, di essere guidati-dai-dati, di solito li rende più facili sia da scrivere che da leggere.


Note a piè di pagina

(127)

I programmi compilati sono normalmente scritti in linguaggi di programmazione di livello più basso, come C, C++, o Ada, e quindi tradotti, o compilati, in una forma che il computer può eseguire direttamente.


Successivo: , Su: Concetti fondamentali   [Contenuti][Indice]