[go: nahoru, domu]

Occam

język programowania
To jest stara wersja tej strony, edytowana przez Jotempe (dyskusja | edycje) o 21:27, 26 lut 2007. Może się ona znacząco różnić od aktualnej wersji.

occam -- język programowania, opracowany w roku 1983 przez firmę INMOS, a będący praktyczną implementacją formalizmu CSP (Communicating Sequential Processes[1]). Język opracowany został i był przede wszystkim wykorzystywany jako narzędzie programowania transputerów. Nazwa pochodzi od nazwiska Williama Ockhama, kojarzonego z "brzytwą Ockhama".

occam jest językiem proceduralnym. Charakterystyczną jego cechą jest wsparcie dla programowania współbieżnego. Program w occamie uruchamia typowo wiele procesów, które mogą się między sobą komunikować za pośrednictwem nazwanych kanałów komunikacyjnych. Komunikacja za pośrednictwem kanałów jest synchroniczna -- komunikujące się procesy mogą kontynuować wykonanie dopiero, gdy wymiana danych zakończy się. Kanały zapewniają więc również synchronizację procesów.

W implementacji transputerowej język wyposażony jest w możliwość zdefiniowania rozmieszczenia procesów na sieci procesorów, z wykorzystaniem połączeń pomiędzy nimi jako kanałów komunikacyjnych.

occam jest językiem świadomie minimalistycznym i bardzo formalnie zdefiniowanym. Zabronione są wszelkie konstrukcje, które mogłyby prowadzić do niejednoznaczności działania programu (np. równoległe procesy nie mogą modyfikować żadnych wspólnych lokacji pamięci, do których mają dostęp). Umożliwia to formalne dowodzenie poprawności programów napisanych w tym języku.

  1. Communicating Sequential Processes, C.A.R. Hoare. Prentice Hall International Series in Computer Science, 1985. ISBN 0-13-153271-5 (0-13-153289-8)

Szablon:Język programowania stub