Occam (langage)

Occam (langage)

Le langage de programmation Occam est un langage de programmation adapté à l'architecture parallèle. Il fut développé par Inmos pour la programmation de ses architectures en parallèle Transputer, mais a également été porté sur d'autres plates-formes.

Le nom est un hommage à Guillaume d'Occam (parfois orthographié Ockham) et au principe méthodologique du rasoir d'Occam.

Le langage Occam est un langage procédural classique qui offre, outre l'exécution d'instructions séquentiellement (avec SEQ), l'exécution des instructions en parallèle (avec PAR) et même la mise en « parallèle asynchrone » de processus (avec ALT) pour une exécution non-déterministe d'un parmi plusieurs. L'exécution en PAR des processus se fait avec des rendez-vous, comme en Ada.

Occam contient aussi les « commandes gardées » de Edsger Dijkstra : un processus n'est lancé que si la valeur de sa garde, évaluée par le système, est vraie.

Le Transputer Development System (TDS) d'Inmos était l'outil de développement classique, mais il était possible d'utiliser Parallel C ou d'autres outils. L'éditeur du TDS était « foldé »[pas clair], ce qui était très innovant ; à l'heure actuelle, il n'existe encore aucun remplaçant valable.[réf. nécessaire]

Quelques notes sur les extraits de code ci-dessous :

  • En Occam l'indentation est significative, ce qui évite les marqueurs de début et de fin de blocs communs à d'autres langages héritant de Pascal et C (begin...end, {...}, loop...endloop etc.)
  • Les CHAN OF sont les « canaux », portés par les liens bidirectionnels série rapides (2Mbps, 4 liens/Transputer, communication indépendante du CPU)

Quelques exemples de code réel

PROC Passe1 ( CHAN OF ANY FromKeyboard, CHAN OF INT FromServer, CHAN OF ANY ToServer, CHAN OF ANY FromNetwork, ToNetwork,
              []CHAN OF Process FromMenu, CHAN OF FilerProtocol FromFiler, ToFiler, []INT UserWindow, SystemWindow,
              []INT ConfigData, freespace, VAL []BYTE parnomfic, parNumVersion, FicSorties, INT FicSortiesPtr )
-- Constantes de configuration disque
VAL WrkExt IS ".CPS":
VAL OutExt IS ".LIE":
VAL IntExt IS ".$$$":

VAL MaxCompressedRecordSize IS 45: -- taille avec compression CGA !!!
VAL kAccesSequentiel IS TRUE:
VAL theta1 IS 1.618 (REAL32):
-- Constantes estimees
VAL MaxTailleZone IS 9111833:
VAL MaxVilles2 IS INT ROUND ((REAL32 TRUNC MaxVilles)*theta1):
-- Variables
[ReadBufferSize]BYTE MyReadBuffer: 
INT FicPos, FicSize:     -- position dans, et nombre d'octets du, fichier
[80]BYTE FicRes1,
         FicInt:

-- Fonctions
BOOL FUNCTION EndOfFile() IS ( (FicPos+MyReadPtr) >= FicSize ) :
BOOL FUNCTION NotFini() IS ( (Result=0) AND (NOT EndOfFile()) ) :

PROC Erreur ( VAL []BYTE par )
  [82]BYTE loc:
  --BOOL poub:
  --INT len:
  SEQ
    --len:=82
    --InitTabByte(loc,' ')
    [loc FROM 0 FOR (SIZE par)]:=par
    [loc FROM (SIZE par) FOR 2]:="*c*n"
    --delete.string(len,loc,(SIZE par)  +  2,81  -  (SIZE par),poub)
    WriteInTextWindow(ToServer,SystemWindow,[loc FROM 0 FOR (SIZE par)  +  2]))
    --              previously UserWindow


autre exemple :

IF
  sgf.res <> 0
    SKIP
  TRUE
    IF
      compare.strings (ThfareKey, "99999999") <> 0
        SEQ
          ThfareKeyInt := AtoI (ThfareKey)
          ThfareOffsets [ThfareKeyInt] := Offset
      TRUE
        SKIP

Exemple de multiplexeur de canaux :

WHILE TRUE 
  VAR x;
  SEQ
    ALT
      c1 ? x
      c2 ? x
      c3 ? x


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Occam (langage) de Wikipédia en français (auteurs)

Игры ⚽ Поможем написать курсовую

Regardez d'autres dictionnaires:

  • Occam — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Ce terme peut faire référence : à Guillaume d Occam, philosophe anglais ; au langage de programmation OCCAM, dont le nom est une référence au… …   Wikipédia en Français

  • Occam — ● np. m. ● 1. ►LANG Langage de programmation permettant une programmation en parallèle. Évidemment inspiré du rasoir d Occam. Principalement utilisé sur les systèmes à Transputers (notamment des automates). ● 2. ►SPECIF Le rasoir d Occam , du nom …   Dictionnaire d'informatique francophone

  • Langage religieux — Religion Une religion est un ensemble de rites, croyances généralement théistes[Note 1], composé de règles (éthiques ou pratiques), de récits, de symboles ou de dogmes adoptés comme conviction par une société, un groupe ou une personne. Par… …   Wikipédia en Français

  • Guillaume d'Occam — Guillaume d Ockham Guillaume d Ockham Philosophe britannique Moyen Âge tardif Guillaume d Ockham d après le manuscrit de Summa Logicae, 1341 …   Wikipédia en Français

  • Guillaume d’Occam — Guillaume d Ockham Guillaume d Ockham Philosophe britannique Moyen Âge tardif Guillaume d Ockham d après le manuscrit de Summa Logicae, 1341 …   Wikipédia en Français

  • Wilhelm von Occam — Guillaume d Ockham Guillaume d Ockham Philosophe britannique Moyen Âge tardif Guillaume d Ockham d après le manuscrit de Summa Logicae, 1341 …   Wikipédia en Français

  • Rasoir d'Occam — Rasoir d Ockham Pour les articles homonymes, voir Rasoir d Occam (homonymie). Le rasoir d’Occam ou rasoir d’Ockham est un principe de raisonnement que l on attribue au frère franciscain et philosophe Guillaume d Ockham (XIVe siècle), mais… …   Wikipédia en Français

  • Style d'indentation — Le style d indentation décrit les différentes manières que les programmeurs utilisent pour faire ressortir un bloc de code. L indentation se définit par la manière d arranger les blocs de code, mais surtout par le nombre d espaces utilisés à… …   Wikipédia en Français

  • Bénéfice de la science — Science Pour les articles homonymes, voir Science (homonymie). Prométhée apportant le feu a …   Wikipédia en Français

  • Confiance en la science — Science Pour les articles homonymes, voir Science (homonymie). Prométhée apportant le feu a …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”