Ada/Basi

Wikibooks, manuali e libri di testo liberi.
< Ada

Le Basi[modifica]

"Hello World!"[modifica]

"Hello, World!"[modifica]

Per dare un' idea generale della sintassi di un linguaggio è tradizione illustrare un programma che stampa la frase "Hello, World!". In Ada si presenta così:

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;

Caratteristiche di stile[modifica]

  • I commenti iniziano con i due caratteri -- (meno meno) e terminano a fine riga. Tutte queste righe non saranno considerate in fase di compilazione
  • Il linguaggio Ada permette l'overloading che, come vedremo più avanti, sono uno strumento potente a disposizione del programmatore.
  • Il compilatore Ada non fa distinzione fra maiuscole e minuscole, quindi Ada, ada, ADA, sono tutte e tre identiche fra loro. Ada si dice, per questo, che non è case sensitive ma è case unsensitive.