Подтекст (язык программирования)
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Subtext — это умеренно визуальный язык программирования и среда для написания прикладного программного обеспечения . Это экспериментальная исследовательская попытка разработать новую модель программирования , называемую «Примерно-ориентированное программирование», рассматривая скопированные блоки как первоклассные прототипы структуры программы. Он использует живой текст, аналогичный тому, что происходит в электронных таблицах , когда пользователи обновляют ячейки, для частой обратной связи. Предполагается, что со временем он будет достаточно развит, чтобы стать практическим языком для повседневного использования. Планируется, что это будет открытое программное обеспечение; лицензия еще не определена.
Подтекст был создан Джонатаном Эдвардсом, который представил статью об этом языке в OOPSLA . Он был принят в рамках конференции 2005 года.
Среда
[ редактировать ]Ранние видео-превью среды Subtext были выпущены примерно в 2006 году. [1] который продемонстрировал семантику программ Subtext и тесную интеграцию со средой Subtex и средой выполнения.
Подтекстовые программы объявляются и управляются (или изменяются) путем добавления и связывания элементов различных типов с синтаксическим деревом, а также ввода значений или имен по мере необходимости, а не набора текстовых программ. Благодаря конструкции языка и среды подтекста нет различия между представлением программы и ее выполнением. Как и электронные таблицы, программы Subtext представляют собой живое выполнение в среде и во время выполнения, а программирование — это прямое манипулирование этими выполнениями через графическую среду . В отличие от типичных языков функционального программирования , Subtext имеет простую семантику и легко применим к реактивным системам, требующим изменяемого состояния, ввода-вывода и параллелизма, в рамках модели, известной как «Реактивное программирование». [2] Консольный ввод («вызовы») может использоваться через поток данных в программе Subtext, что позволяет пользователям интерактивно манипулировать значениями.
Согласованность
[ редактировать ]Продолжение и подмножество языка подтекста, использующее другие принципы. [3] — это Coherence экспериментальный язык программирования и среда, в которой используется новая модель вычислений, управляемых изменениями, называемая «Когерентная реакция», для интерактивной координации эффектов и побочных эффектов программ по мере их разработки. Язык специализирован для интерактивного прикладного программного обеспечения и разрабатывается создателем Subtext Джонатаном Эдвардсом, который сообщает о его разработке, публикуя официальные документы.
Побочные эффекты — это одновременно суть и проклятие императивного программирования. Программист должен тщательно координировать действия, чтобы управлять их побочным эффектом друг на друга. Такая координация сложна, подвержена ошибкам и хрупка. Когерентная реакция — это новая модель вычислений, основанных на изменениях, которая автоматически координирует эффекты. Автоматическая координация действий позволяет программисту указать, что делать, а не когда.
— Джонатан Эдвардс, Coherent Reaction , MIT CSAIL
Изменения состояний вызывают события, называемые реакциями, которые, в свою очередь, изменяют другие состояния. Последовательный порядок выполнения — это порядок, в котором каждая реакция выполняется раньше всех других, на которые влияют ее изменения. Последовательный порядок обнаруживается итеративно путем обнаружения несогласованностей по мере их возникновения и отслеживания их последствий. Фундаментальным строительным блоком Coherence является динамически типизированное изменяемое дерево. Фундаментальным механизмом абстракции является виртуальное дерево, значение которого лениво вычисляется, а поведение которого генерируется последовательными реакциями. [4]
Ссылки
[ редактировать ]- Пример центрического программирования Джонатан Эдвардс. В OOPSLA за октябрь 2004 г. Описание улучшений IDE с использованием передовых методов пользовательского интерфейса для представления результатов программы во время разработки вместо того, чтобы программист мысленно интерпретировал программный код. Снимки экрана прототипа IDE, использующего Eclipse, иллюстрируют методы с функциональными примерами.
- Подтекст: раскрытие простоты программирования Джонатана Эдвардса. В OOPSLA, октябрь 2005 г.: Материалы 20-й ежегодной конференции ACM SIGPLAN по объектно-ориентированному программированию, системам, языкам и приложениям.
- Первоклассное копирование и вставка Джонатана Эдвардса. Черновой документ MIT CSAIL в марте 2006 г. Подробное описание и иллюстрации различных элементов функционального программирования в первой среде Subtext, включая поток данных, назначения, вызов «действий», текущее и гипотетическое состояние данных, параллельные транзакции и работу консольного агента.
- Последовательная реакция Джонатан Эдвардс. В OOPSLA Onward '09. Документирует начало экспериментального языка программирования, основанного на Subtext, который использует «Когерентную реакцию», новую модель вычислений, управляемых изменениями, для автоматической координации эффектов и побочных эффектов программ. (отчет)
- Цитируется
- ^ Введение в подтекст, ввод-вывод и изменяемое состояние , первая демонстрация видео среды подтекста.
- ^ Первоклассное копирование и вставка , проект статьи MIT CSAIL Джонатана Эдвардса в 2006 году.
- ^ Домашняя страница Coherence , указано продолжение подтекста.
- ^ DSpace@MIT: Согласованная реакция , Цифровой архив CSAIL, Технические отчеты
Внешние ссылки
[ редактировать ]- Subtextual.org , официальный сайт Subtext.