Concept

Occam (langage)

Résumé
Le langage de programmation Occam est un langage de programmation adapté à l'architecture parallèle, apparu en 1983. Il a été 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 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 pour ce langage, mais il était possible d'utiliser Parallel C ou d'autres outils. L'éditeur du TDS permettait le pliage de code, ce qui était très innovant. 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.). Une expression est terminée par une fin de ligne. Plusieurs expressions peuvent être regroupées dans un bloc dont toutes les lignes commencent à la même indentation. La communication entre processus parallèles se fait avec des "canaux" définis par l'expression "CHAN OF". Ces canaux sont implémentés par les liens bidirectionnels série rapides (2 Mb/s, 4 liens/Transputer, communication indépendante du CPU). Un processus envoie des données sur le canal avec "!" tandis qu'un autre processus reçoit les données avec "?", l'émission et la réception étant synchrones : keyboard ? c screen ! c SEQ introduit une liste d'expressions qui sont évaluées en séquence, l'une après l'autre.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.