Показать сообщение отдельно
Старый 30.11.2012, 18:48   #1
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений
(для 2,209 пользователей)
Skynet++ (Скриптовый язык)

Привет, Булка!

Года три назад начал разработку собственного скриптового языка для Blitz3D. Много раз забрасывал его но всё же решил доделать.

О происхождении названия: Это не выпендрёж, просто друзья с которыми я жил в общаге постоянно говорили, что я пишу тот самый "скайнет" из терминатора. Не долго думая решил его назвать так. ++ для того чтобы название было больше похоже на язык программирования. Была даже идея выпустить его 21 декабря.

Вдохновлялся JavaScript, Ruby, Python и прочими. В результате получился простой язык без ООП. Подробнее о синтаксисе можно узнать в описании внутри архива.

Внутри уже подключены некоторые функции (Skynet++ Base Lib.bb), для работы с математикой, строками и массивами. Всё работает достаточно шустро.

Вот. Кому интересно - просьба потестить.


Позволю себе процитировать ReadMe файл (будет включен в следующую версию).

Skynet++ - это скриптовый язык написанный на чистом Blitz3D, без использования сторонних библиотек.


Skynet++ предоставляет гибкое функциональное программирование. Он не содержит ООП, однако в остальном он максимально упрощает процесс написания скриптов. Внутренняя организация виртуальной машины и API, также позволяет очень легко и быстро встроить его в любую программу написанную на Blitz3D.

В первую очередь он ориентирован на тех, кому нужно обеспечить гибкость своей программы посредством выполнения несложных блоков кода.

Ключевые особенности:
  • Простой синтаксис. Содержит все знакомые ключевые слова. Некоторые из них изменены, но в целом синтаксис схож с многими другими языками программирования.
  • Высокая производительность. Виртуальная машина ориентирована на максимально быстрое выполнение инструкций.
  • Динамическая (не строгая) типизация значений переменных.
  • Динамические массивы. Вы можете создавать, удалять и добавлять элементы в массивы, используя поставляющиеся в базовой библиотеке функции. А так же передавать массивы в качестве обычных типов данных.
  • Встроенный препроцессор.
  • Механизм инстансинга. Он позволяет обрабатывать разные наборы данных одним скриптом. Таким образом существенно снижается потребление памяти, т.к. не нужно загружать несколько одинаковых скриптов. Это может быть полезно когда вам, например, нужно обработать поведение искуственного интеллекта в игре. Вместо загрузки скрипта для каждого бота вы просто создаёте объект (инстанс) скрипта поведения.
  • Возможность загружать скрипт напрямую из текста в память. Так же присутствует возможность компилировать скрипт в бинарный файл который занимает меньше места на диске и загружается быстрее. Так же компилятор отслеживает возможные синтаксические ошибки и оповещает о конфликтах имён переменных.
  • Встроенный сборщик мусора для массивов. Он автоматически удаляет массивы, ссылки на которые были "потеряны" в ходе выполнения кода.
  • Наличие базовой библиотеки которая содержит всё необходимое, например математические функции, функции для работы со строками и массивами.



UPD: Пока ещё не сделал справку о том, как это в блице использовать. Она будет чуть позже.
Вложения
Тип файла: rar Skynet++.rar (141.6 Кб, 1094 просмотров)

Последний раз редактировалось IgorOK, 02.12.2012 в 23:05.
(Offline)
 
Ответить с цитированием
Эти 11 пользователя(ей) сказали Спасибо IgorOK за это полезное сообщение:
Arton (30.11.2012), Dependency Walker (29.06.2013), H@NON (30.11.2012), impersonalis (22.09.2015), Mr_F_ (30.11.2012), Nex (30.11.2012), Program23 (01.12.2012), St_AnGer (30.11.2012), tormoz (30.11.2012), Wegox (30.11.2012), Черный крыс (01.12.2012)