Jump to content

Подтекст (язык программирования)

Схематические таблицы. Альфа-версия среды Subtext, которая иллюстрирует уникальные «полиморфные условия», присутствующие в IDE.

Subtext — это умеренно визуальный язык программирования и среда для написания прикладного программного обеспечения . Это экспериментальная исследовательская попытка разработать новую модель программирования , называемую «Примерно-ориентированное программирование», рассматривая скопированные блоки как первоклассные прототипы структуры программы. Он использует живой текст, аналогичный тому, что происходит в электронных таблицах , когда пользователи обновляют ячейки, для частой обратной связи. Предполагается, что со временем он будет достаточно развит, чтобы стать практическим языком для повседневного использования. Планируется, что это будет открытое программное обеспечение; лицензия еще не определена.

Подтекст был создан Джонатаном Эдвардсом, который представил статью об этом языке в OOPSLA . Он был принят в рамках конференции 2005 года.

Ранняя сборка среды Subtext с видимым текущим состоянием программы. Данные о сотруднике (например, «заработная плата») заметно изменяются после вызова метода «Raise» путем щелчка по его «стрелке вызова», а также обновляется гипотетическое состояние (отображаемое в методе Raise).
Ранняя сборка среды Subtext с интерактивными консольными вводами.

Ранние видео-превью среды Subtext были выпущены примерно в 2006 году. [1] который продемонстрировал семантику программ Subtext и тесную интеграцию со средой Subtex и средой выполнения.

Подтекстовые программы объявляются и управляются (или изменяются) путем добавления и связывания элементов различных типов с синтаксическим деревом, а также ввода значений или имен по мере необходимости, а не набора текстовых программ. Благодаря конструкции языка и среды подтекста нет различия между представлением программы и ее выполнением. Как и электронные таблицы, программы Subtext представляют собой живое выполнение в среде и во время выполнения, а программирование — это прямое манипулирование этими выполнениями через графическую среду . В отличие от типичных языков функционального программирования , Subtext имеет простую семантику и легко применим к реактивным системам, требующим изменяемого состояния, ввода-вывода и параллелизма, в рамках модели, известной как «Реактивное программирование». [2] Консольный ввод («вызовы») может использоваться через поток данных в программе Subtext, что позволяет пользователям интерактивно манипулировать значениями.

Согласованность

[ редактировать ]

Продолжение и подмножество языка подтекста, использующее другие принципы. [3] — это Coherence экспериментальный язык программирования и среда, в которой используется новая модель вычислений, управляемых изменениями, называемая «Когерентная реакция», для интерактивной координации эффектов и побочных эффектов программ по мере их разработки. Язык специализирован для интерактивного прикладного программного обеспечения и разрабатывается создателем Subtext Джонатаном Эдвардсом, который сообщает о его разработке, публикуя официальные документы.

Побочные эффекты — это одновременно суть и проклятие императивного программирования. Программист должен тщательно координировать действия, чтобы управлять их побочным эффектом друг на друга. Такая координация сложна, подвержена ошибкам и хрупка. Когерентная реакция — это новая модель вычислений, основанных на изменениях, которая автоматически координирует эффекты. Автоматическая координация действий позволяет программисту указать, что делать, а не когда.

Джонатан Эдвардс, Coherent Reaction , MIT CSAIL
Логотип языка программирования Coherence

Изменения состояний вызывают события, называемые реакциями, которые, в свою очередь, изменяют другие состояния. Последовательный порядок выполнения — это порядок, в котором каждая реакция выполняется раньше всех других, на которые влияют ее изменения. Последовательный порядок обнаруживается итеративно путем обнаружения несогласованностей по мере их возникновения и отслеживания их последствий. Фундаментальным строительным блоком Coherence является динамически типизированное изменяемое дерево. Фундаментальным механизмом абстракции является виртуальное дерево, значение которого лениво вычисляется, а поведение которого генерируется последовательными реакциями. [4]

  • Пример центрического программирования Джонатан Эдвардс. В OOPSLA за октябрь 2004 г. Описание улучшений IDE с использованием передовых методов пользовательского интерфейса для представления результатов программы во время разработки вместо того, чтобы программист мысленно интерпретировал программный код. Снимки экрана прототипа IDE, использующего Eclipse, иллюстрируют методы с функциональными примерами.
  • Подтекст: раскрытие простоты программирования Джонатана Эдвардса. В OOPSLA, октябрь 2005 г.: Материалы 20-й ежегодной конференции ACM SIGPLAN по объектно-ориентированному программированию, системам, языкам и приложениям.
  • Первоклассное копирование и вставка Джонатана Эдвардса. Черновой документ MIT CSAIL в марте 2006 г. Подробное описание и иллюстрации различных элементов функционального программирования в первой среде Subtext, включая поток данных, назначения, вызов «действий», текущее и гипотетическое состояние данных, параллельные транзакции и работу консольного агента.
  • Последовательная реакция Джонатан Эдвардс. В OOPSLA Onward '09. Документирует начало экспериментального языка программирования, основанного на Subtext, который использует «Когерентную реакцию», новую модель вычислений, управляемых изменениями, для автоматической координации эффектов и побочных эффектов программ. (отчет)
Цитируется
  1. ^ Введение в подтекст, ввод-вывод и изменяемое состояние , первая демонстрация видео среды подтекста.
  2. ^ Первоклассное копирование и вставка , проект статьи MIT CSAIL Джонатана Эдвардса в 2006 году.
  3. ^ Домашняя страница Coherence , указано продолжение подтекста.
  4. ^ DSpace@MIT: Согласованная реакция , Цифровой архив CSAIL, Технические отчеты
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 707949aa0771c1ba3b3fbe742aee4b4b__1654232220
URL1:https://arc.ask3.ru/arc/aa/70/4b/707949aa0771c1ba3b3fbe742aee4b4b.html
Заголовок, (Title) документа по адресу, URL1:
Subtext (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)