Jump to content

Синхронный язык программирования

Язык синхронного программирования — это язык компьютерного программирования, оптимизированный для программирования реактивных систем .

Компьютерные системы можно разделить на три основных класса:

  1. Трансформационные системы принимают некоторые входные данные, обрабатывают их, выдают выходные данные и прекращают их выполнение. Типичный пример — компилятор.
  2. Интерактивные системы непрерывно взаимодействуют со своей средой со своей собственной скоростью. Типичным примером является Интернет.
  3. Реактивные системы непрерывно взаимодействуют с окружающей средой со скоростью, определяемой окружающей средой. Типичным примером является система автоматического управления полетом современных самолетов. Поэтому реактивные системы должны реагировать на стимулы из окружающей среды в строгие сроки. По этой причине их часто называют системами реального времени , и они часто встречаются во встроенных системах .

Синхронное программирование , также называемое синхронным реактивным программированием ( SRP ), представляет собой парадигму компьютерного программирования, поддерживаемую языками синхронного программирования. Принцип SRP заключается в создании той же абстракции для языков программирования, что и синхронная абстракция в цифровых схемах. Синхронные схемы действительно разрабатываются на высоком уровне абстракции, где временные характеристики электронных транзисторов не учитываются. Таким образом, предполагается, что каждый вентиль схемы (или, и, ...) мгновенно вычисляет свой результат, предполагается, что каждый провод мгновенно передает свой сигнал. Синхронная схема тактируется и при каждом такте часов мгновенно вычисляет свои выходные значения и новые значения ячеек памяти (защелки) на основе входных значений и текущих значений ячеек памяти. Другими словами, схема ведет себя так, как будто электроны текут бесконечно быстро. Первые синхронные языки программирования были изобретены во Франции в 1980-х годах: Esterel. , Блеск и СИГНАЛ . С тех пор появилось множество других синхронных языков.

Синхронная абстракция значительно упрощает рассуждения о времени в синхронной программе благодаря понятию логических тактов : синхронная программа реагирует на окружающую среду последовательностью тактов, а вычисления внутри такта считаются мгновенными, т. е. как если бы процессор, выполняющий их, был бы бесконечно быстрым. Таким образом, оператор «a||b» абстрагируется как пакет «ab», где «a» и «b» являются одновременными. Возьмем конкретный пример: оператор Esterel «выпускает каждые 60 секунд минуту» указывает, что сигнал «минута» точно синхронен с 60-м появлением сигнала «секунда». На более фундаментальном уровне синхронная абстракция устраняет недетерминизм, возникающий в результате чередования параллельных действий. Это обеспечивает детерминированную семантику, что делает синхронные программы пригодными для формального анализа, проверки и генерации сертифицированного кода, а также их можно использовать в качестве формализмов формальных спецификаций .

Напротив, в асинхронной модели вычислений на последовательном процессоре оператор «a||b» может быть реализован либо как «a;b», либо как «b;a». Это известно как недетерминизм на основе перемежения . Недостаток асинхронной модели заключается в том, что она по своей сути запрещает детерминированную семантику (например, условия гонки), что усложняет формальные рассуждения, такие как анализ и проверка. Тем не менее, асинхронные формализмы очень полезны для моделирования, проектирования и проверки распределенных систем, поскольку они по своей сути асинхронны.

Также контрастом являются системы с процессами, которые в основном взаимодействуют синхронно . Примером могут служить системы, основанные на модели коммуникационных последовательных процессов (CSP) , которая допускает детерминированный (внешний) и недетерминированный (внутренний) выбор.

Синхронные языки [ править ]

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

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

  1. ^ Г. Берри и Г. Гонтье. Язык синхронного программирования ESTEREL: Проектирование, семантика, реализация. Наука компьютерного программирования , 19 (2), 1992.

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ea8be7c108ee6415f378a06ba01f7db4__1710102000
URL1:https://arc.ask3.ru/arc/aa/ea/b4/ea8be7c108ee6415f378a06ba01f7db4.html
Заголовок, (Title) документа по адресу, URL1:
Synchronous programming language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)