Regole per programmare in Occam

tramite: O2O
Difficoltà: media
17

Introduzione

Occam è un linguaggio di programmazione sviluppato dall'azienda INMOS per i suoi modelli di microprocessori con architetture parallele. Ideati negli anni Ottanta da una modesta azienda inglese, gli INMOS Transputer rappresentarono l'avanguardia della computazione parallela per circa un decennio, disponibili in modelli a 16-bit, 32-bit e con virgola mobile a 64-bit. Tuttavia, nonostante il costo relativamente basso, le elevate prestazioni e la facilità di programmazione, i Transputer non riuscirono mai a diventare uno standard universale fra le CPU o fra i microcontrollori. Attualmente, i derivati di tali microprocessori vengono comunemente impiegati nei televisori, nei navigatori satellitari e nelle macchine fotografiche digitali.

In questa guida vedremo le caratteristiche principali del linguaggio Occam, nonché le regole e la corretta sintassi per programmare in Occam.

27

Programmazione a basso livello

Il nome del linguaggio di programmazione deriva dal concetto filosofico del Rasoio di Occam, secondo il quale gli sviluppatori di Occam hanno eliminato ogni istruzione superflua, ottenendo così un linguaggio a basso livello similmente all'Assembly. L'Occam è basato sul modello CSP (Communicating Sequential Processes), ovvero sfrutta le meccaniche di scambio dei messaggi nei sistemi a concorrenza, dove un programma concorrente è rappresentato da una rete di processi, ognuno con le sue variabili cooperanti con lo scambio esplicito di messaggi.

37

La sintassi

La sintassi nel linguaggio di Occam è molto semplice, essendo composta da un numero esiguo di istruzioni, ma tuttavia è composta da regole rigorose: in particolare, a differenza di quanto accade comunemente nei linguaggi ad alto livello, in Occam gli spazi così come l'indentatura sono significativi. Altro fattore importante è l'operatore di assegnamento, rappresentato dai due punti seguiti dal simbolo uguale (:=), mentre per quanto riguarda somma e moltiplicazione si usano i normali più (+) e asterisco (*).

Continua la lettura
47

I canali

Nonostante il linguaggio di programmazione sia di per sé molto semplice, basandosi sul modello CSP, il programmatore ha il difficile compito di gestire la comunicazione fra i singoli processi e la loro decomposizione. Di conseguenza ciò avviene con l'invio di messaggi (P! X) e la ricezione di essi (P? Y) attraverso determinati canali. Nella fattispecie, nel linguaggio Occam la comunicazione avviene definendo il canale, seguito da uno spazio e dall'operatore punto esclamativo (!) per inviare un messaggio, o punto interrogativo (?) per riceverlo, seguito quindi da uno spazio e dalla variabile, in questo modo:
canale1! C
canale2? C

57

Struttura di controllo SEQ

Le strutture di controllo del linguaggio di programmazione Occam si basano su quelle della programmazione strutturata, nonostante esse siano state riadattate per la computazione parallela. La struttura di controllo SEQ elabora una serie di istruzioni eseguite in sequenza (modalità generalmente implicita, ma che in Occam deve essere specificata), in questo modo:
SEQ
x := x + 1
y := x * 2
Com'è stato specificato nel paragrafo dedicato alla sintassi generale, è importante inserire gli spazi quando sono necessari, e in questo caso anche le indentature alle stringhe delle operazioni per determinare che fanno parte della struttura SEQ.

67

Struttura di controllo PAR

La struttura di controllo PAR determina invece, com'è intuibile, l'esecuzione delle istruzioni in parallelo, cioè in contemporanea, attraverso una sintassi identica al SEQ. Tuttavia il PAR prevede anche l'uso di una forma complessa analoga al ciclo for, ovvero un ciclo con un contatore, le cui operazioni vengono svolte sempre in parallelo, secondo la seguente sintassi:
PAR i=0 FOR 5
INT n
c[i]? N[i]

77

Struttura di controllo ALT

La struttura di controllo ALT rappresenta infine il concetto di comando di guardia del CSP, secondo cui una guardia è la combinazione di un valore booleano con un'istruzione di input o output. A ciascuna guarda viene associata un'istruzione da eseguire se la guardia ha successo, come nel seguente esempio:
ALT
count1 < 100 & c1? Data
SEQ
count1 := count1 + 1
merged! Data
count2 < 100 & c2? Data
SEQ
count2 := count2 + 1
merged! Data
status? Request
SEQ
out! Count1
out! Count2
Ad ogni struttura di controllo, naturalmente, deve essere usata la corretta indentatura per favorire l'adeguato annidamento delle istruzioni.

Potrebbe interessarti anche

Segnala contenuti non appropriati

Tipo di contenuto
Devi scegliere almeno una delle opzioni
Descrivi il problema
Devi inserire una descrizione del problema
Si è verificato un errore nel sistema. Riprova più tardi.
Verifica la tua identità
Devi verificare la tua identità
chiudi
Grazie per averci aiutato a migliorare la qualità dei nostri contenuti

Guide simili

Internet

Come creare un modulo Drupal

Per creare un semplice modulo in Drupal basterà seguire poche, semplici ma necessarie regole, senza dover essere degli esperti smanettoni. Quella del “come si crea un modulo per Drupal? ” è la domanda che spesso viene fatta e spesso la risposta...
Internet

Come creare nuove tassonomie su Wordpress

Molti pensano Wordpress sia solamente una piattaforma di blogging, data la presenza di posts, tags e categorie, in gergo "tassonomie". Quello che pochi sanno, è che quest'ultime possono essere rimpiazzate o arricchite da tipologie personalizzate di tassonomia,...
Programmazione

Come programmare con Arduino

Arduino è una piattaforma opensource hardware e software, facilmente programmabile, che permette di creare circuiti per molte applicazioni, soprattutto nel campo della robotica e dell'automazione. Il prodotto è italiano e fu sviluppato ad Ivrea nel...
Programmazione

Come programmare in Standard C++

Programmare è un atto che presuppone una conoscenza abbastanza ampia della materia, ma anche un approccio piuttosto individuale alla disciplina, perché ogni sviluppatore sceglie gli strumenti che gli sono più congeniali. Tuttavia, nel tempo alcuni...
Windows

Come contare il numero di parole in un testo

Chi utilizza il proprio pc per scrivere dei testi di varia natura deve a volte fare i conti con diverse problematiche. Fra queste ultime, sicuramente quella con la quale ci si deve fare spesso i conti, è il numero di battute e di parole limitato. Per...
Programmazione

Regole per programmare in Ruby

Il linguaggio di programmazione chiamato Ruby è basato su una piattaforma open source assolutamente dinamico, caratterizzato da una sintassi semplice e produttivo, naturalmente facile da leggere ed agevole da scrivere. Creato in Giappone, Ruby è caratterizzato...
Programmazione

Regole per programmare in Rust

I linguaggi di programmazione fanno parte dell'universo informatico sin dagli inizi. Tutti noi ricorderemo sicuramente il vecchio prompt dei comandi sul nostro primo PC. Si apriva una finestrella nera in cui dovevamo digitare specifiche espressioni, spesso...
Programmazione

Come programmare in Python su Ubuntu

Python è un linguaggio di programmazione general-purpose ad altissimo livello. Esso viene utilizzato quotidianamente negli ambiti più diversi, come la creazione di progetti professionali molto importanti che consentono di ottenere un feedback immediato,...
I presenti contributi sono stati redatti dagli autori ivi menzionati a solo scopo informativo tramite l’utilizzo della piattaforma www.o2o.it e possono essere modificati dagli stessi in qualsiasi momento. Il sito web, www.o2o.it e Arnoldo Mondadori Editore S.p.A. (già Banzai Media S.r.l. fusa per incorporazione in Arnoldo Mondadori Editore S.p.A.), non garantiscono la veridicità, correttezza e completezza di tali contributi e, pertanto, non si assumono alcuna responsabilità in merito all’utilizzo delle informazioni ivi riportate. Per maggiori informazioni leggi il “Disclaimer »”.