Разработка языка сценариев для систем виртуальной...

13
Разработка языка сценариев для систем виртуальной реальности А.А. Безгодов А.Ю. Тропченко

Upload: jana-barlow

Post on 02-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

Разработка языка сценариев для систем виртуальной реальности. А.А. Безгодов А.Ю. Тропченко. Проблема. Рост сложности приложений Рост времени компиляции ( > 30 мин ) Рост сложности и времени разработки Рост стоимости Необходимость расширения функциональности приложения после выпуска. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Разработка языка сценариев для систем виртуальной реальности

Разработка языка сценариев для систем виртуальной

реальностиА.А. Безгодов

А.Ю. Тропченко

Page 2: Разработка языка сценариев для систем виртуальной реальности

Проблема

• Рост сложности приложений

• Рост времени компиляции (>30 мин)

• Рост сложности и времени разработки

• Рост стоимости

• Необходимость расширения функциональности приложения после выпуска

Page 3: Разработка языка сценариев для систем виртуальной реальности

Решения

• Распределенная сборка проектов– У конечных пользователей нет исходных текстов– Сложность разработки

• Программные модули (plug-ins)– Сложность разработки модулей

• Языки сценариев– Низкая производительность

• Совместное использование всех 3-х подходов

Page 4: Разработка языка сценариев для систем виртуальной реальности

Языки сценариев

• Lua

• MEL (Maya embedded language)

• Unreal Script

• Angel Script

• Quake C

Page 5: Разработка языка сценариев для систем виртуальной реальности

Цели и требования

• Синтаксис С• Динамическая типизация• Типы данных:

– Null– Float, Integer– Vector– String

• Поддержка типов данных на уровне VM• Легкость встраивания в главное приложение

Page 6: Разработка языка сценариев для систем виртуальной реальности

Пример кода

0! = 01! = 12! = 23! = 64! = 245! = 1206! = 7207! = 50408! = 403209! = 362880

Page 7: Разработка языка сценариев для систем виртуальной реальности

Типы данных

20 байт4 байта 16 байт

NULL

INT int

DOUBLE double

VECTOR float float float Float

STRING index

FUNCTION index

REFERENCE index

Page 8: Разработка языка сценариев для систем виртуальной реальности

Память и адресация

• Основная память

• Стек

• Общее адресное пространство:– [ 0 | address ] – основная память– [ 1 | offset ] - стек

Page 9: Разработка языка сценариев для систем виртуальной реальности

Система командСтек и память Данные Поток

выполненияLOAD, addressLDAD, addressSTORECONST, operandSTKRES, nREM

ADD SUB MULDIV MOD NEG

BIN_AND BIN_ORBIN_XOR BIN_NOT

LOG_AND LOG_ORLOG_NOT

IS_EQ IS_UNEQIS_GRTR IS_LESSIS_GEQ IS_LEQ

CALL, nRETURNJMP, addrJMPC, addrJMPNC, addr

Page 10: Разработка языка сценариев для систем виртуальной реальности

Вызов функцийSTACK

STACK

STACK

STACK

STACK

STACK

STACK

STACK

STACK

STACK

STACKBASE

TOP

Page 11: Разработка языка сценариев для систем виртуальной реальности
Page 12: Разработка языка сценариев для систем виртуальной реальности

Заключение

• Массивы, списки, деревья и другие контейнеры

• Структуры данных

• Параллельное выполнение

• Инструменты:– Отладчики– Профайлеры

Page 13: Разработка языка сценариев для систем виртуальной реальности

Вопросы?