INFORMATICA - LINGUAGGI: RICERCHE COMPLEMENTARI

DEFINIZIONE FORMALE DI LINGUAGGIO

Un linguaggio è un insieme di parole costruite utilizzando i simboli ammessi dall'alfabeto, che si legano insieme per formare le frasi.
Un linguaggio è quindi definito dal suo vocabolario e dall'insieme delle frasi che si possono formare.
Se il linguaggio ammette un numero finito di frasi, la descrizione del linguaggio può essere fatta per enumerazione, cioè elencando tutte le frasi possibili.
In generale però i linguaggi sono infiniti, ammettono cioè un numero infinito di frasi anche per un vocabolario molto limitato.
La descrizione del linguaggio allora può essere fatta stabilendo le regole che indicano come si possono formare le frasi valide. L'insieme di queste regole viene detto grammatica.
La grammatica di un linguaggio si può definire descrivendo:
- i simboli terminali, cioè le parole del vocabolario del linguaggio;
- i simboli non terminali, cioè le parole che servono per descrivere il linguaggio, ma che fanno parte di un altro linguaggio (chiamato metalinguaggio);
- lo scopo del linguaggio, un simbolo non terminale che rappresenta la categoria più complessa;
- l'insieme delle regole con cui si possono associare simboli terminali e non terminali ai simboli non terminali.
Per es. "articolo", "nome", "verbo" sono simboli non terminali, parole descrittive; "il", "gatto", "mangia" sono parole del linguaggio, simboli terminali.
La possibilità di sostituire un articolo alla parola articolo è una regola di riscrittura.

ALCUNE DEFINIZIONI

alfabeto = un insieme di simboli con cui si possono comporre le parole.
vocabolario = insieme delle parole ammesse che è un sottoinsieme dell'insieme di tutte le parole componibili con i simboli dell'alfabeto (cioè non tutte le parole che si possono comporre hanno un significato in quel linguaggio).
frase = un insieme finito di parole. La lunghezza di una frase è data dal numero di parole che la compongono.

LA NOTAZIONE DI BACKUS NAUR

La notazione di Backus Naur, chiamata anche notazione BNF (Backus-Naur-Form), permette di descrivere un linguaggio basandosi sulla sua definizione formale.
Si utilizza un metalinguaggio, le cui parole vengono chiamate simboli non terminali.
La notazione usata per la decrizione utilizza i simboli:> racchiudono i simboli non terminali del linguaggio;
::= è il simbolo di equivalenza che serve per descrivere le regole di riscrittura che associano a simboli terminali altri simboli non terminali o terminali;
| serve per indicare che più possibili definizioni sono in alternativa;
{ } le parentesi graffe indicano che il contenuto può essere ripetuto un numero arbitrario di volte (anche nessuna).
Un elenco di simboli segnala semplicemente la concatenazione dei simboli stessi.

I DIAGRAMMI SINTATTICI

I diagrammi sintattici rappresentano un metodo grafico di descrizione dei linguaggi, usato solitamente per la descrizione del linguaggio Pascal.
Questo metodo utilizza dei grafi per descrivere le regole di riscrittura di un linguaggio.
Si utilizzano dei simboli rettangolari per rappresentare i simboli non terminali e dei simboli circolari (o ellittici) per rappresentare i simboli terminali; ognuno di questi è un nodo del grafo; i simboli non terminali devono essere definiti in altri grafi.
I simboli sono collegati da archi che indicano dei possibili cammini; un nodo incontrato sul percorso fornisce una parola della frase.
Un'alternativa viene rappresentata da più archi che escono da un nodo. Una ripetizione viene indicata da un percorso ciclico.
Per formare una frase si entra nel grafo da sinistra; se si incontra una biforcazione si sceglie uno dei due percorsi; se si incontra un simbolo terminale lo si inserisce nella frase; se si trova un simbolo non terminale bisogna passare ad esaminare il grafo che lo definisce.

LA SINTASSI E LA SEMANTICA DI UN LINGUAGGIO

La sintassi è l'insieme delle regole della grammatica con cui si possono costruire le frasi.
L'analisi sintattica permette di stabilire se una frase è formata secondo le regole del linguaggio; i programmi traduttori prima di tradurre una frase dal linguaggio di programmazione al linguaggio macchina ne fanno l'analisi sintattica per verificarne la correttezza; se ci sono errori formali la traduzione non può avvenire.
La semantica è il significato che le frasi possono assumere; per i linguaggi naturali la semantica risulta molto complessa, tanto che a volte il significato di una frase comune può essere frainteso.
Per i linguaggi di programmazione la semantica risulta più semplice e può essere definita descrivendo le azioni che la CPU deve compiere durante l'esecuzione di ciascuna istruzione (semantica operazionale).

LA PORTABILITA' DEI PROGRAMMI

La portabilità di un programma è la possibilità di far girare lo stesso programma su macchine diverse senza doverlo modificare (o comunque con pochissime modifiche).
I programmi scritti in un linguaggio sono trasportabili da una macchina all'altra se su ogni macchina è disponibile il compilatore o l'interprete per quel linguaggio.

EVOLUZIONE DEI LINGUAGGI DI PROGRAMMAZIONE

I linguaggi di programmazione si possono classificare in generazioni secondo il momento in cui si sono evoluti e le modalità che li caratterizzano.
- prima generazione: linguaggio macchina;
il linguaggio macchina permette di utilizzare soltanto i simboli del sistema di numerazione binario e richiede di indicare tutti gli indirizzi di memoria in modo assoluto.
- seconda generazione: linguaggi assembler;
I linguaggi Assembler permettono di utilizzare dei nomi simbolici predefiniti per i codici operativi delle istruzioni e definibili dal programmatore per i nomi delle variabili e le etichette delle istruzioni, senza la necessità di conoscerne gli indirizzi di memoria.
Rimane comunque una corrispondenza biunivoca tra le istruzioni in Assembler e quelle linguaggio macchina.
- terza generazione: linguaggi ad alto livello;
I linguaggi ad alto livello offrono istruzioni complesse che permettono di descrivere la soluzione del problema in termini più vicini alla descrizione verbale.
Rientrano in questa categoria i linguaggi più noti: Basic, Pascal, Fortran, Cobol ecc.
- quarta generazione: linguaggi orientati a problemi particolari.
Rientrano in questa categoria linguaggi nati per risolvere classi particolari di problemi, come la gestione di data base, problemi di simulazione ecc.
- quinta generazione; linguaggi logici, funzionali, ad oggetti;
A questa categoria appartengono linguaggi sviluppati in tempi più recenti, utilizzati soprattutto per problemi riguardanti il campo dell'intelligenza artificiale come Prolog, Lisp e Smalltalk.
Chiudi

Outlet Offerte Sconti Promozioni Risparmiare sugli Acquisti di prodotti e Servizi in Internet

Gigacenter Store-Vente privee-Show room prive-La ruota della fortuna-Outlet Pił Style-Offerte Outlet Store-Sconti Outlet Offerte-Spartoo Shoes-Private Outlet-Saldi Privati-Sold Outlet-Offerte del GiornoBuoni sconto-Saldi Sconti-Offerte Viaggio-Acquisti + Guadagni

 

eXTReMe Tracker

Shiny Stat

free counters