Il Linguaggio di Programmazione Miranda
Clicca sotto per andare direttamente ad una sezione specifica:
Storia |
Caratteristiche Rilevanti del Linguaggio |
Aree della sua Applicazione |
Programmi Campione
Link correlate |
Referenze stampate |
Ringraziamenti
Storia
Miranda fu sviluppata nel 1985-86 da David Turner, ed è attualmente
in commercio presso la Research Software Ltd. d'Inghilterra.
Miranda fu il successore dei linguaggi funzionali SASL e KRC.
Con Miranda, l'obiettivo era la produzione di una versione commerciale di un
linguaggio standard, non stretto, e puramente funzionale.
Per renderlo commercialmente "viable", si è dovuto far sì che
l'ambiente di sviluppo sia molto flessibile e facile da usare.
Caratteristiche Rilevante del Linguaggio
- Miranda, Un Linguaggio Non Stretto e Puramente Funzionale
- Non Stretto:
Nei linguaggi funzionali non stretti, i parametri di una funzione
non vengono valutati finché non siano realmente richieste all'interno
delle funzioni chiamate. Dunque, qualunque parametro può essere passato
ad una funzione e, finche non viene richiesto in quella funzione, il
parametro non verrà valutato.
Questo è conosciuto anche come valutazione pigra, ed il principale vantaggio
dell'utilizzo di questo metodo è che permette di passare ad una funzione
delle strutture di dati con un numero infinito di elementi.
- Puramente Funzionale:
I linguaggi puramente funzionale fanno tutta la loro elaborazione
attraverso l'applicazione di funzioni.
Gli effetti collaterali, come l'assegnamento distruttivo ed i cicli,
non sono neanche forniti nel linguaggio, e di conseguenza tutti i
programmi devono aderire strettamente all'approccio funzionale alla
programmazione.
- Caratteristiche di un Linguaggio Funzionale
-
Sviluppa un modello semantico pulito e semplice che utilizza la
funzione come elemento base dell'elaborazione.
-
L'ordine d'esecuzione è irrelevante.
-
Rispetto ai linguaggi imperativi, quelli funzionali:
-
Permettono una rappresentazione più concisa (un più alto livello di astrazione).
-
Riducono il tempo di sviluppo.
- Le Strutture Basilari di Dati
-
Liste - definite come un insieme omogeneo di valori con tipo.
La lista, come struttura di dati, è una caratteristica potentissima
di Miranda. Permette l'eleborazione sulle liste in modo veloce e semplice,
e permette di maneggiare delle liste infinite.
-
Tuple - una sequenza non omogenea di valori che si possono adoperare
per realizzare dei tipo enumerati o perfino per formare dei tipi compessi
di dati come i record.
Aree di Applicazione
I principali utilizzi di Miranda sono:
- la creazione rapida di prototipi
- l'insegnamento della programmazione funzionale
- come linguaggio per le specificazioni
- la ricerca sulla programmazione funzionale
- come strumento di programmazione di utilizzo generale
Programmi campione
- QuickSort
sort [] = []
sort (a:x) = sort [ b | b <- x; b<=a ]
++ [a] ++
sort [ b | b <- x; b>a ]
- Fattoriale
fatt 0 = 1
fatt (n+1) = (n+1)*fatt n
- La Funzione di Ackermann
ack 0 n = n+1
ack (m+1) 0 = ack m 1
ack (m+1) (n+1) = ack m (ack (m+1) n)
Link pertinenti
Referenze Stampate
-
Thompson, Simon. "Laws in Miranda." ACM Communications, Vol. 2,
Iss. 3, 1986
Ringraziamenti
Dr. David Turner, il creatore di Miranda, fornì gran parte delle
inforazioni usate per la creazione di questa pagina.
Miranda è un marchio di Research Software Limited d'Europa.
Ultima modifica: 3:29 PM il 16/12/1997
Creata da: Stacey Miller & Tony Vitale
Tradotto da: Martin Guy <martinwguy@gmail.com>