| dbpprop:abstract
|
- occam is a concurrent programming language that builds on the Communicating Sequential Processes (CSP) process algebra, and shares many of its features. It is named after William of Ockham of Occam's Razor fame. occam is an imperative procedural language. It was developed by David May and others at INMOS, advised by Tony Hoare, as the native programming language for their transputer microprocessors, but implementations for other platforms are available. The most widely known version is occam 2; the occam 2 programming manual was put together by Steven Ericsson-Zenith and others at INMOS.
- Occam ist eine imperative, parallele Programmiersprache, die auf Communicating Sequential Processes aufbaut. Sie wurde um 1985 unter anderem von David May bei der Firma Inmos entwickelt und ist nach dem Philosophen und Logiker Wilhelm von Ockham benannt. Ihr Einsatzschwerpunkt liegt auf der Implementierung verteilter Systeme, insbesondere von Transputer-Systemen. Ursprünglich war sie für Microprozessoren von INMOS gedacht, existiert aber heute auch für andere Plattformen.
- Occam es un lenguaje de programación imperativo y estructurado (al igual que Pascal). Fue desarrollado por David May en Inmos Limited, Bristol, Inglaterra, para desarrollar software para su línea de procesadores Transputers, existiendo también implementaciones para otras plataformas.
- Occam on rinnakkaislaskentaan kehitetty ohjelmointikieli, joka on nimetty englantilaisen filosofin Wilhelm Ockhamilainen tai filosofisen periaatteen Occamin partaveitsi mukaan. Occam ohjelmointikielen kehitti englantilainen INMOS yhtiö erityisesti rinnakkaislaskentaan suunniteltuja transputer-prosessoreitaan varten.
- Le langage de programmation Occam a été développé par Inmos pour la programmation de ses Transputers mais il existe des implémentations pour d'autres plates-formes. C'est un langage de programmation adapté à l'architecture parallèle des transputers. Le nom est un hommage à Guillaume d'Ockham et son Rasoir d'Ockham.
- OCaml言語とは違います。混同しないよう注意してください。 Occamは、並列プログラミング言語である。 Communicating Sequential Processes(CSP)に基づいており、多くの機能はCSPから由来している。 Occamという名称はオッカムのウィリアムの「オッカムの剃刀」から来ている。 OccamはCSPの実用的な実装と言うこともできる。 Occam は命令型/手続き型言語である。INMOS社が同社のトランスピュータのために開発したが、他のプラットフォームへの移植もされている。
- occam -- język programowania, opracowany w roku 1983 przez firmę INMOS, a będący praktyczną implementacją formalizmu CSP (z ang. Communicating Sequential Processes). 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. Obecnie istnieje działający na współczesnych komputerach kompilator occama, KRoC (ang. Kent Retargetable occam Compiler). Kompiluje on programy do plików wykonywalnych działających współbieżnie. Wspiera on też post-mortem debugging, czyli debugowanie programu po błędzie, który spowodował jego wyłączenie, również wyłączenie spowodowane zakleszczeniem.
- Occam é uma linguagem de programação utilizada em computação paralela que constrói uma seqüência de processos seqüenciais de comunicação que compartilham muitas de suas características. Desta forma, é uma implementação prática do CSP. Occam é uma linguagem imperativa processual. Ela foi desenvolvida por David May e outros da INMOS, aconselhada por Tony Hoare, como a língua nativa de programação para os seus microprocessadores, embora implementações para outras plataformas estão disponíveis. A versão mais conhecida é Occam 2; O manual da linguagem de programação Occam 2 foi feito em conjunto por Steven Ericsson-Zenith e outros em INMOS.
- Базовым понятием языка Occam является вычислительный процесс; основной характеристикой процесса является то, что он может быть начат и завершён. В языке определено несколько простых процессов: процесс присваивания, процессы ввода и вывода через канал (обозначаются символами ? и !), формальные процессы SKIP и STOP (первый завершается сразу же, второй — никогда), процессы чтения таймера и таймерной задержки. Все остальные процессы могут быть получены иерархическим построением (через ранее определённые). Для этой цели Occam предоставляет набор конструкторов процессов: SEQ (определяет процесс последовательного выполнения процессов), PAR (определяет процесс параллельного выполнения процессов), а также конструктор условного процесса IF, циклического процесса WHILE, процесса выбора процессов ALT. При этом действует правило, согласно которому составной процесс типа SEQ или PAR считается выполненным, когда завершены все составляющие его процессы. Процессы могут быть поименованы и вызваны по имени с передачей параметров. Процессы SEQ, PAR, IF и ALT могут быть реплицированы (размножены) при помощи репликатора FOR. Процесс ALT (как и PAR) привносит в язык индетерминизм, так как считается, что при одновременном выполнении нескольких условий точно предсказать дальнейший ход событий невозможно. пример Мультиплексор, бесконечно читающий из массива каналов in и передающий в общий канал out, используя промежуточную переменную temp WHILE TRUE INT temp : ALT i=0 FOR N in[i] ? temp out ! temp пример Каскад параллельно работающих мультиплексоров. На входе — массив из M*N каналов in, на выходе — канал out. Массив из M каналов ch используется для связи между мультиплексорами каскада PAR -- каскад параллельных мультиплексоров ввода PAR i=0 FOR M -- M параллельных мультиплексоров, обрабатывающих по N каналов из in каждый WHILE TRUE INT temp : ALT j=i*N FOR N in[j] ? temp ch[i] ! temp WHILE TRUE -- корневой мультиплексор, читающий M промежуточных каналов ch INT temp : ALT i=0 FOR M ch[i] ? temp out ! temp пример Процесс буферизации ввода-вывода. Запуск процесса buffer(in, out, N) позволяет каналу out отстать от канала in вплоть на N сообщений, которые будут буферизованы внутри процесса buffer PROC buffer(CHAN OF INT in, out, INT N) CHAN OF INT in. wait, out. wait : INT n : -- счётчик буферизованных значений [N]INT buff : SEQ n:=0 PAR -- input INT i, any: -- i — указатель записи в буфер SEQ i:=0 WHILE TRUE SEQ WHILE n<(N-1) SEQ in ? buff[i] n:=n+1 IF n=1 out. wait ! any TRUE SKIP i:=(i+1) MOD N in. wait ? any -- output INT j, any: -- j — указатель чтения из буфера SEQ j:=0 WHILE TRUE SEQ out. wait ? any WHILE n>0 SEQ out ! buff[j] n:=n-1 IF n=(N-2) in. wait ! any TRUE SKIP j:=(j+1) MOD N Изучая примеры, следует иметь в виду, что символ «два минуса» -- означает начало комментария до конца строки, а символ «точка» . может быть в Occam'е частью идентификатора, и не несёт никакой специальной нагрузки. Символ «двоеточие» : имеет значение «конец описания». Оссам чувствителен к заглавным/строчным буквам в идентификаторах. Интересной особенностью языка Occam является включение индентации (отступов, «лесенки») в его синтаксис. Это популярное и весьма выразительное средство выделения структуры в Occam’е является единственным способом указания области действия конструкторов. В ряду безусловных достоинств такого решения можно назвать уменьшение количества служебных символов при записи конструкции (отпадает необходимость в словах типа BEGIN-END или фигурных скобках) и вынужденная стандартизация оформления текстов, что повышает их читабельность. Пример важности «лесенки» SEQ proc1 PAR proc21 proc22 proc3 здесь сначала будет выполнен процесс proc1, затем будут параллельно исполняться proc21 и proc22, и лишь после завершения самого длительного из них стартует proc3. Если сдвинуть вызов proc3 на уровень вправо, то proc3 стартует одновременно с proc21 и proc22 SEQ proc1 PAR proc21 proc22 proc3
|
| rdfs:comment
|
- occam is a concurrent programming language that builds on the Communicating Sequential Processes (CSP) process algebra, and shares many of its features. It is named after William of Ockham of Occam's Razor fame. occam is an imperative procedural language. It was developed by David May and others at INMOS, advised by Tony Hoare, as the native programming language for their transputer microprocessors, but implementations for other platforms are available.
- Occam ist eine imperative, parallele Programmiersprache, die auf Communicating Sequential Processes aufbaut. Sie wurde um 1985 unter anderem von David May bei der Firma Inmos entwickelt und ist nach dem Philosophen und Logiker Wilhelm von Ockham benannt. Ihr Einsatzschwerpunkt liegt auf der Implementierung verteilter Systeme, insbesondere von Transputer-Systemen. Ursprünglich war sie für Microprozessoren von INMOS gedacht, existiert aber heute auch für andere Plattformen.
- Occam es un lenguaje de programación imperativo y estructurado (al igual que Pascal). Fue desarrollado por David May en Inmos Limited, Bristol, Inglaterra, para desarrollar software para su línea de procesadores Transputers, existiendo también implementaciones para otras plataformas.
- Occam on rinnakkaislaskentaan kehitetty ohjelmointikieli, joka on nimetty englantilaisen filosofin Wilhelm Ockhamilainen tai filosofisen periaatteen Occamin partaveitsi mukaan. Occam ohjelmointikielen kehitti englantilainen INMOS yhtiö erityisesti rinnakkaislaskentaan suunniteltuja transputer-prosessoreitaan varten.
- Le langage de programmation Occam a été développé par Inmos pour la programmation de ses Transputers mais il existe des implémentations pour d'autres plates-formes. C'est un langage de programmation adapté à l'architecture parallèle des transputers. Le nom est un hommage à Guillaume d'Ockham et son Rasoir d'Ockham.
- occam -- język programowania, opracowany w roku 1983 przez firmę INMOS, a będący praktyczną implementacją formalizmu CSP (z ang. Communicating Sequential Processes). 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.
- Occam é uma linguagem de programação utilizada em computação paralela que constrói uma seqüência de processos seqüenciais de comunicação que compartilham muitas de suas características. Desta forma, é uma implementação prática do CSP. Occam é uma linguagem imperativa processual.
- Базовым понятием языка Occam является вычислительный процесс; основной характеристикой процесса является то, что он может быть начат и завершён.
|