~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ AF30039D656F7F3E5A8E516B68E3B51D__1687782180 ✰
Заголовок документа оригинал.:
✰ occam (programming language) - Wikipedia ✰
Заголовок документа перевод.:
✰ оккам (язык программирования) — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Occam_(programming_language) ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/af/1d/af30039d656f7f3e5a8e516b68e3b51d.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/af/1d/af30039d656f7f3e5a8e516b68e3b51d__translat.html ✰
Дата и время сохранения документа:
✰ 22.06.2024 17:03:09 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 26 June 2023, at 15:23 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

оккам (язык программирования) — Википедия Jump to content

оккам (язык программирования)

Из Википедии, бесплатной энциклопедии
оккам
Парадигма Императивный , процедурный , совпадающий
Разработано Дэвид Мэй
Разработчик Инмос
Впервые появился 1983 год ; 41 год назад ( 1983 )
Стабильная версия
2.1 (официальная), 2.5 (неофициальная), 3 (не полностью реализована) / 1994 ; 30 лет назад ( 1994 )
Диалекты
оккам-π (пи)
Под влиянием
Коммуникация последовательных процессов
Под влиянием
Легкость , движение , Python

occam — это язык программирования , который является параллельным и основан на алгебре процессов взаимодействующих последовательных процессов (CSP), [1] и разделяет многие его особенности. Она названа в честь философа Уильяма Оккама, в честь которого бритва Оккама названа .

occam — императивный процедурный язык (например, Паскаль ). Он был разработан Дэвидом Мэем и другими сотрудниками компании Inmos (торговая марка INMOS) по рекомендации Тони Хоара в качестве родного языка программирования для их транспьютерных микропроцессоров , но доступны реализации и для других платформ. Самая известная версия — occam 2; его руководство по программированию было написано Стивеном Эрикссоном-Зенитом и другими сотрудниками Inmos .

Обзор [ править ]

В следующих примерах отступы и форматирование имеют решающее значение для анализа кода: выражения завершаются в конце строки, списки выражений должны находиться на одном уровне отступов. Эта функция, называемая правилом оффсайда , также встречается в других языках, таких как Haskell и Python .

Связь между процессами осуществляется через именованные каналы . Один процесс выводит данные в канал через ! в то время как другой вводит данные с помощью ?. Ввод и вывод не могут продолжаться до тех пор, пока другой конец не будет готов принять или предложить данные. (В невыполненном случае часто говорят, что процесс блокируется на канале. Однако программа не будет ни вращаться, ни опрашивать; таким образом, такие термины, как wait , Hang или Give, также могут передавать поведение; также в контексте того, что это не будет заблокировать запуск других независимых процессов.) Примеры (c — переменная):

клавиатура?  с
 
экран !  с
 

SEQпредставляет список выражений, которые вычисляются последовательно. Это не является неявным, как в большинстве других языков программирования. Пример:

ПОСЛЕДОВАТЕЛЬНОСТЬ
    х := х + 1
    у := х * х
 

PARначинает список выражений, которые могут вычисляться одновременно. Пример:

К
    п()
    д()
 

ALTзадает список защищенных команд . Охранники представляют собой комбинацию логического условия и входного выражения, оба являются необязательными. Каждый охранник, для которого условие истинно и входной канал готов, считается успешным. Для исполнения выбирается одна из успешных альтернатив. Пример:

АЛЬТ
    count1 <100 и c1?  данные
      ПОСЛЕДОВАТЕЛЬНОСТЬ
        счет1 := счетчик1 + 1
        слились!  данные
    count2 <100 и c2?  данные
      ПОСЛЕДОВАТЕЛЬНОСТЬ
        счет2 := счетчик2 + 1
        слились!  данные
    положение дел ?  запрос
      ПОСЛЕДОВАТЕЛЬНОСТЬ
        вне !  количество1
        вне !  счет2
 

Это позволит прочитать данные из каналов c1 или c2 (в зависимости от того, какой из них готов) и передать их в объединенный канал. Если countN достигнет 100, чтение из соответствующего канала будет отключено. На запрос по каналу состояния отвечают путем вывода счетчиков в out.

Языковые версии [ править ]

1983 "оккам" от INMOS Limited.

Оккам 1 [ править ]

оккам 1 [2] (выпущен в 1983 году) представлял собой предварительную версию языка, заимствованную из работы Дэвида Мэя над EPL и CSP Тони Хоара. Это поддерживало только тип данных VAR, который был целочисленным типом, соответствующим собственной длине слова целевой архитектуры, и массивы только одного измерения.

оккам 2 [ править ]

оккам 2 [3] это расширение, созданное Inmos Ltd в 1987 году, которое добавляет поддержку чисел с плавающей запятой , функций, многомерных массивов и других типов данных, таких как целые числа различных размеров (INT16, INT32) и байты.

Благодаря этой версии occam стал языком, способным выражать полезные программы, тогда как occam 1 больше подходил для изучения алгоритмов и изучения нового языка (однако компилятор occam 1 был написан на occam 1, [4] так что существует доказательство того, что полезные программы разумного размера могут быть написаны на occam 1, несмотря на его ограничения).

оккам 2.1 [ править ]

оккам 2.1 [1] был последним из серии разработок языка оккам, предоставленных Inmos. Определенный в 1994 году, он был создан под влиянием более раннего предложения языка occam 3 (также называемого «occam91» на ранней стадии его разработки), созданного Джеффом Барреттом из Inmos в начале 1990-х годов. Пересмотренное справочное руководство, описывающее occam 3, было распространено для комментариев сообщества. [5] но этот язык так и не был полностью реализован в компиляторе.

В occam 2.1 появилось несколько новых функций occam 2, в том числе:

  • Именованные типы данных (ТИП ДАННЫХ x IS y)
  • Именованные записи
  • Упакованные записи
  • Ослабление некоторых правил преобразования типов.
  • Новые операторы (например, BYTESIN)
  • Перетипирование каналов и массивы каналов
  • Возможность возвращать из функции массив фиксированной длины.

Полный список изменений см. в Приложении P Справочного руководства Inmos occam 2.1 .

оккам-π [ править ]

Оккам-π [6] — это общее название варианта occam, реализованного в более поздних версиях компилятора occam Kent Retargetable ( KRoC ). Добавление символа π (пи) к названию оккама является намеком на оккам KRoC, включая несколько идей, вдохновленных π-исчислением . Он содержит несколько существенных расширений компилятора occam 2.1, например:

См. также [ править ]

Ссылки [ править ]

  1. ^ Перейти обратно: а б Справочное руководство occam 2.1 (PDF) . SGS-Thomson Microelectronics Ltd., 12 мая 1995 г. Документ Инмос 72 occ 45 03
  2. ^ Оккам Руководство по программированию . Прентис-Холл. 1984. ISBN  0-13-629296-8 .
  3. ^ Эрикссон-Зенит, Стивен (1988). Справочное руководство occam 2 . Прентис-Холл. ISBN  0-13-629312-3 .
  4. ^ Кук, Барри М; Пил, RMA (11 апреля 1999 г.). «Оккам о программируемых вентильных матрицах» . В Куке, Барри М. (ред.). Архитектуры, языки и методы для параллельных систем . 22-я Всемирная техническая встреча группы пользователей Оккама и транспьютеров. Кил, Великобритания: IOS Press. п. 219. ИСБН  90-5199-480-Х . Проверено 28 ноября 2016 г.
  5. ^ Барретт, Джефф; Эрикссон-Зенит, Стивен (31 марта 1992 г.). «Справочное руководство occam 3» (PDF) . Инмос . Проверено 24 марта 2008 г. {{cite journal}}: Для цитирования журнала требуется |journal= ( помощь )
  6. ^ Барнс, Фред; Уэлч, Питер (14 января 2006 г.). «occam-pi: сочетание лучшего из CSP и пи-исчисления» . Проверено 24 ноября 2006 г.

Дальнейшее чтение [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: AF30039D656F7F3E5A8E516B68E3B51D__1687782180
URL1:https://en.wikipedia.org/wiki/Occam_(programming_language)
Заголовок, (Title) документа по адресу, URL1:
occam (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)