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

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

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

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

Содержание
  • 1 Окружающая среда
  • 2 Согласованность
  • 3 ссылки
  • 4 Внешние ссылки
Окружающая среда
Ранняя сборка среды Subtext с видимым текущим состоянием программы. Данные сотрудника (например, «заработная плата») заметно изменяются после вызова метода «Повышение» путем щелчка по его «стрелке вызова», а также обновляется гипотетическое состояние (отображаемое в методе «Повышение»). Ранняя сборка среды Subtext с интерактивными консольными вводами.

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

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

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

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

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

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

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

Ссылки
  • Пример центрического программирования Джонатан Эдвардс. В ООПСЛА октябрь 2004г. Описание улучшений IDE с использованием передовых методов пользовательского интерфейса для представления результатов программы во время разработки вместо того, чтобы программист мысленно интерпретировал программный код. Снимки экрана из прототипа IDE с использованием Eclipse иллюстрируют методы с функциональными примерами.
  • Подтекст: открытие простоты программирования Джонатан Эдвардс. В OOPSLA October '05: Материалы 20-й ежегодной конференции ACM SIGPLAN по объектно-ориентированному программированию, системам, языкам и приложениям.
  • Копирование и вставка первого класса Джонатан Эдвардс. Черновой документ MIT CSAIL в марте 2006 г. Подробное описание и иллюстрации различных элементов функционального программирования в первой среде Subtext, включая поток данных, назначения, вызов «действия», текущее и гипотетическое состояние данных, параллельные транзакции и работу консольного агента.
  • Последовательная реакция Джонатан Эдвардс. В OOPSLA Onward '09. Документирует зарождение экспериментального языка программирования, свободно основанного на Subtext, который использует «когерентную реакцию», новую модель управляемых изменениями вычислений для автоматической координации эффектов и побочных эффектов программ. (отчет)
Цитируется
  1. ^ Введение в подтекст, ввод-вывод и изменяемое состояние, первая демонстрация видео среды Subtext
  2. First Class Copy amp; Paste, черновик Джонатана Эдвардса MIT CSAIL, 2006 г.
  3. ^ Домашняя страница Coherence, указывает продолжение Subtext
  4. ^ DSpace @ MIT: Coherent Reaction, Цифровой архив CSAIL, Технические отчеты
внешние ссылки
Официальный
Связанный
Последняя правка сделана 2023-08-09 12:51:25
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте