Home / Indice sezione
 www.icosaedro.it 

M2 Report

<= FrontespizioCaratteristiche =>
Frontespizio
Introduzione
Caratteristiche
Un semplice esempio
Moduli
Sezione IMPORT
Sezione CONST
Sezione TYPE
Tipo FORWARD
Sezione VAR
Sezione FUNCTION
Sezione BEGIN
Stringhe letterali
Sottostringhe
Commenti
Costanti predefinite
Variabili predefinite
Funzioni predefinite
Istruzione di assegnamento
Istruzione per la chiamata di funzione
Ordine di valutazione degli argomenti attuali
Istruzione IF
Istruzione SWITCH
Istruzione FOR
Istruzione WHILE
Istruzione REPEAT
Istruzione LOOP
Istruzione TRY
Istruzione RAISE ERROR
Istruzione RETURN
Espressioni logiche
Espressioni intere
Espressioni reali
Espressioni stringa
Espressioni tra tipi strutturati
Regole di scope
M2 per programmatori C
M2 per programmatori Java
Rappresentazione dei dati in memoria
Keywords
Messaggi di errore a runtime
Sintassi
 

Introduzione

M2 è un linguaggio procedurale fortemente tipizzato molto somigliante a linguaggi come Pascal, Modula 2 e Oberon. Da questi linguaggi M2 trae la semplicità della sintassi e lo stile ordinato con i quali redigere i sorgenti dei programmi. Tutte le parole chiave del linguaggio sono scritte in lettere maiuscole. Ai più questa potrà sembrare una inutile imposizione. Eppure questo stile aiuta a cogliere al volo la struttura di un programma perché le parole in caratteri maiuscoli contornano il codice e lo evidenziano. Vediamo nel seguito le principali caratteristiche di M2.

Immediato come un linguaggio di scripting

Coloro che hanno esperienza di altri linguaggi compilati di uso corrente come il C e il Java troveranno quanto sia semplice in M2 manipolare strutture dati dinamiche, stringhe e array. In nessun caso viene richiesto al programmatore di occuparsi di cose tediose come l'allocazione della memoria e il controllo della lunghezza delle stringhe. Ogni struttura dinamica viene allocata automaticamente non appena se ne fa uso e rilasciata quando non più utilizzata. In questo senso M2 offre la stessa immediatezza d'uso di un linguaggio di scripting interpretato, ma senza rinunciare al rigore dei controlli che diventano possibili in un linguaggio fortemente tipizzato e compilato.

Programmazione in grande

Dunque un linguaggio procedurale che favorisce la strutturazione dei programmi in funzioni, e i gruppi di funzioni in moduli riutilizzabili. Non sono necessarie operazioni arcane e complicate per creare moduli di libreria e per utilizzarli. La dichiarazione stessa del modulo ne definisce la natura, e istruisce il compilatore sul come utilizzarlo. Al programmatore non resta che scegliere un buon nome per la propria nuova creazione, sia esso un modulo di libreria o un programma completo, e al resto pensa il compilatore.

Efficiente

Ma la vera natura di M2 è che si tratta di un cross-compiler verso il linguaggio C, universalmente riconosciuto come il più efficiente linguaggio di programmazione dopo il linguaggio assembly. Il compilatore M2, infatti, non fa altro che tradurre il sorgente scritto nel linguaggio M2 nel sorgente perfettamente equivalente scritto nel linguaggio C. Tutte le operazioni difficili, tediose e pericolose, come l'allocazione della memoria e il controllo degli indici degli array, vengono eseguito da M2. L'integrazione con il C è tale che molte librerie di sistema distribuite con il compilatore sono redatte in gran parte direttamente in linguaggio C. Spesso torna utile utilizzare porzioni di condice C per interfacciarsi a librerie disponibili solo per questo linguaggio.

Nel prossimo capitolo riassumiamo le principali caratteristiche di M2.

 
<= FrontespizioCaratteristiche =>

Umberto Salsi

Contatto
Mappa
Home / Indice sezione