50. Cos'è il "metalinguaggio"? Metalinguaggio è una parola composta dai termini meta e linguaggio. Il prefisso meta- deriva dal greco meta, significa dopo, oltre ed ha dato origine a molte parole. La più famosa è metafisica che infatti vuol dire "ciò che è al di là della fisica". Il titolo venne dato ai libri di Aristotele che seguivano il suo trattato sulla fisica. Cioè prima scrisse testi sulla realtà fisica e poi sulle realtà che sono al di là delle apparenze materiali. Dunque con metafisica noi intendiamo argomenti superiori, di pura filosofia. Similmente con metamatematica intendiamo ciò che è più elevato rispetto alla matematica e che è infatti la sua logica generale. 

In informatica troviamo le parole:

  • metadati  = sono informazioni che definiscono i dati. Ad esempio i descrittori degli archivi e dei data base sono metadati. 
  • metalinguaggio = è un linguaggio più elevato che infatti ne definisce un altro.

 

Di solito un metalinguaggio definisce i linguaggi di programmazione. Il più famoso è noto come Notazione di Backus-Naur (BNF). I due, l'americano John Backus e l’europeo Peter Naur, adattarono al software un metalinguaggio ideato in precedenza da Noam Chomsky per la lingua inglese. Lo illustriamo brevemente per far capire con un caso pratico i contenuti di un metalinguaggio.

BNF si basa sui seguenti quattro simboli:

::= che significa "viene definito come"
| che separa elementi alternativi
{} che vuol dire "è una sequenza di uno o più elementi"
[ ] che vuol dire "concorrono uno o più elementi riportati"

Per chiarire il loro uso che appare assai strano a chi lo vede la prima volta, imagginiamo di inventare un nuovo linguaggio di programmazione. Questo è infatti lo scopo del metalinguaggio: preparare un linguaggio di programmazione. Nel nuovo linguaggio stabiliamo che l'identificatore sia il nome di un campo, di una variabile ecc. il quale potrà contenere liberamente lettere e cifre. Gli aggiungiamo però la restrizione che deve cominciare con una lettera. Ad esempio il programmatore potrà chiamare una variabile A3 ma non 3A. Poiché l'identificatore contiene cifre e lettere dobbiamo cominciare a definire queste. Una cifra è 0 oppure 1, o 2, 3 .. 9 e dunque scriviamo:

cifra ::= |0|1|2|3|4|5|6|7|8|9|

La tabellina sopra riportate fa agevolmente interpretare questa riga che alla lettera vuol dire "cifra viene definita come 0 oppure 1 oppure 2 ecc". Poi stabiliamo che lettera sia una maiuscola qualsiasi:

lettera ::= |A|B|C|D| ..... |W|Z|

Quindi imponiamo che identificatore abbia come primo simbolo una lettera seguito da una sequenza di lettere oppure cifre:

identificatore ::= lettera {lettera|cifra}

L'interpretazione di questa riga è semplice usando quanto abbiamo spiegato sopra.

In conclusione la metaprogrammazione dell'identificatore comprende le tre righe (in bianco) sopra riportate. Con lo stesso metodo si prosegue per progettare tutte le parti del nuovo linguaggio dalle più semplici, come appunto cifra e lettera, alle più complesse come una macro-istruzione.

 

 

anno 2002


Il data base relazionale nasceva negli anni settanta al seguito di un vivace contributo proveniente da differenti discipline. Fino allora si erano preparati archivi strettamente funzionali alla programmazione, per la prima volta si tentava di mettere in piedi una struttura utile ad applicazioni le più diverse: linguistiche, fotografiche, statistiche, topografiche e quant'altro. Ecco perché studiosi di estrazione differente si interessarono al progetto. Tuttavia la loro eterogeneità e gli interessi personalistici nuocevano molto all'uniformità del tema. Dopo trenta anni ancora ci sono confusioni, sottovalutazioni, approssimazioni che spesso ho occasione di commentare. Nella spiegazione che segue mi sono limitato a rispondere ai suoi dubbi che riguardano:
  1. le tabelle componenti del data base
  2. il ruolo del DBMS

Data Base Relazionale

 

 

anno 2002

51. Ho trovato spiegazioni contraddittorie a proposito delle componenti del data base relazionale.



=