index.md 4.8 KB

Инструментарий виртуальных миров и OMeta: совместное программирование распределенных объектов с помощью создаваемых пользователем языков [2014]

Исследовательская работа проекта Крестьянство SDK была представлена на семинаре по будущему программирования Future Programming Workshop в рамках крупнейшей международной конференции SPLASH 2014, Портленд (Орегон, США). Полная программа семинара на английском доступна здесь

Работающий прототип

Исходный код

Инструментарий виртуальных миров (VWF) представляет собой синхронизированую совместную 3Д среду внутри Веб браузера. Продолжая исследования, начатые в проекте OpenCroquet, связанные с понятием виртуального времени, инструментарий виртуальных миров позволяет легко создавать приложения и предоставляет упрощенный интерфейс для взаимодействия нескольких пользователей с одним состоянием приложения, которое синхронизировано у всех участников соединения. Приложение, созданное с испоьзованием инструментария виртуальных миров, состоит из компонентов, которые запрограммированы на языке JavaScript, что позволяет разделенному коду, обеспечивающему распределенные вычисления, модифицироваться непосредственно во время работы прилржения. OMeta это новый объектно-ориентированный язык программирования сопоставлений с образцами. Он базируется на варианте (PEGs) грамматик, разбирающих выражения, которые были расширены до поддержки обработки произвольных типов данных. Общие функции OMeta по сопоставлению с образцом обеспечивают естественный и удобный способ программистам для реализации анализаторов, посетителей, трансформаторов деревьев и т.д.

Представленное объединение позволит определить на любом компоненте инструментария виртуальных миров свою собственную граматику языка и реплицировать ее всем экземплярам приложения. Затем, уже запускать скрипты, использующие эту грамматику для этого же компонента. Например, можно реализовать все возможные языки, начиная с "рисующей черепашки" до языка программирования Smalltalk, сделав их доступными для программирования компонентов виртуального мира непосредственно в Веб браузере.

Демонстрация содержит примеры совместного программирования распределенных объектов с помощью созданных пользователем грамматик. Эти объекты могут сосуществовать друг с другом в одном реплицируемом виртуальном мире. И будучи запрограммированными на разных языках, объекты участвуют в вычислениях, поддерживаемых одну общую симуляцию.

poster