Utente:Link~itwikibooks/Sandbox

Le Basi

modifica

Iniziamo con un esempio molto semplice: un programma che stampa su console la stringa "Hello, World!":

with Ada.Text_IO;
procedure hello is
begin
	Ada.Text_IO.Put_Line("Hello, World!");
end hello;

L'istruzione with aggiunge il package Ada.Text_IO al programma. Questo package è presente in ogni compilatore Ada e contiene tutte le funzionalità necessarie all'I/O testuale. l'istruzione with rende disponibili le dichiarazioni di Ada.Text_IO alla procedura Hello, includendo quindi i tipi, i sottoprogrammi, e tutto ciò che è stato dichiarato per uso pubblico in Ada.Text_IO. In Ada possiamo paragonare i package a delle cassette per attrezzi: Text_IO, ad esempio, fornisce una raccolta di utilissimi strumenti per l'I/O testuale, racchiusi in un modulo di facile accesso.

Esaminiamo il resto del programma. Analizziamo la procedura main: come possiamo notare, in Ada non ha bisogno di essere chiamata "main", qualsiasi nome va bene (in questo caso, ad esempio si chiama Hello). In seguito troviamo la chiamata a funzione Ada.Text_IO.Put_Line che scrive il testo fornitogli in input sul file di output.

Purtroppo, ci si accorge facilmente che l'istruzione with rende il contenuto del package visibile atraverso selezione, ovvero abbiamo bisogno di specificare ogni volta la provenienza della procedura indicando il nome del package. In programmi molto semplici come questo, possiamo accettarlo, ma in programmi più complessi, come possiamo fare? è necessaria una scorciatoia. A questo punto abbiamo due opzioni:

  • rinominare il package.
  • l'istruzione use.

vediamoli più nel dettaglio:

"Hello World!" con package rinominato

modifica

Rinominando il package è possibile fornire un nome più corto.

with Ada.Text_IO;

procedure Hello is
   package IO renames Ada.Text_IO;
begin
   IO.Put_Line("Hello, world!");
   IO.New_Line;
   IO.Put_Line("I am an Ada program with package rename.");
end Hello;

"Hello World!" con istruzione use

modifica

L'istruzione use rende l'accesso al package diretto.

with Ada.Text_IO;

procedure Hello is
   use Ada.Text_IO;
begin
   Put_Line("Hello, world!");
   New_Line;
   Put_Line("I am an Ada program with package use.");
end Hello;