| Home / Indice sezione | www.icosaedro.it | ![]() |
|
| |||
| 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 | IntroduzioneM2 è 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 scriptingColoro 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 grandeDunque 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. EfficienteMa 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. | |||
| ||||
| Umberto Salsi | Contatto | Mappa | Home / Indice sezione |