Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты на Blitz3D

Проекты на Blitz3D Обсуждение будущих проектов, демок, набор команды и т.п.

Ответ
 
Опции темы
Старый 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 Кб, 1071 просмотров)

Последний раз редактировалось 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)
Старый 30.11.2012, 20:31   #2
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Skynet++ (Скриптовый язык)

Больше на python смахивает смесь с блицем.
Но не вижу никакого влияния java-script'а..

Молодцом!
Есть ли какой-либо дебаггинг?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
IgorOK (30.11.2012)
Старый 30.11.2012, 20:38   #3
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений
(для 2,209 пользователей)
Ответ: Skynet++ (Скриптовый язык)

Сообщение от MoKa Посмотреть сообщение
Больше на python смахивает смесь с блицем.
Но не вижу никакого влияния java-script'а..

Молодцом!
Есть ли какой-либо дебаггинг?
Спасибо!

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

Дебаггинга пока толком нет. Есть только вывод синтаксических ошибок и обнаружение конфликтов имён. Надо подумать как его реализовать. Впринципе это возможно.
(Offline)
 
Ответить с цитированием
Старый 01.12.2012, 02:45   #4
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Skynet++ (Скриптовый язык)

Сообщение от IgorOK Посмотреть сообщение
Привет, Булка!
Вдохновлялся JavaScript, Ruby, Python и прочими. В результате получился простой язык без ООП. Подробнее о синтаксисе можно узнать в описании внутри архива.
вот ты клевый чувак, не мог написать нормально, доходчиво:
-что за язык,
-какие у него фичи
-область применения
-можно ли встраивать и куда

и всё это без скачивания и чтения исходников?
(Offline)
 
Ответить с цитированием
Старый 01.12.2012, 03:02   #5
Черный крыс
 
Сообщений: n/a
Ответ: Skynet++ (Скриптовый язык)

1) регистрочуствительность ИМХО лучше.
2) вдохновлятся надо было языком Lua.
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (01.12.2012)
Старый 01.12.2012, 03:08   #6
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Skynet++ (Скриптовый язык)

2) вдохновлятся надо было языком Lua.
аргументированно
(Offline)
 
Ответить с цитированием
Старый 01.12.2012, 07:54   #7
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,354
Написано 2,470 полезных сообщений
(для 6,850 пользователей)
Ответ: Skynet++ (Скриптовый язык)

Сообщение от Diablo1909 Посмотреть сообщение
2) вдохновлятся надо было языком Lua.
Lua же ужасен
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
den (01.12.2012), Кирпи4 (01.12.2012), Gector (01.12.2012), moka (02.12.2012)
Старый 01.12.2012, 08:13   #8
Черный крыс
 
Сообщений: n/a
Ответ: Skynet++ (Скриптовый язык)

Lua же ужасен
Интересно чем же он вам так не угодил?

ИМХО это лучший скриптовой язык. А модуль Lua JIT 2.0 - делает его одним из самых быстрых.
 
Ответить с цитированием
Старый 01.12.2012, 10:37   #9
IgorOK
Мастер
 
Аватар для IgorOK
 
Регистрация: 26.10.2009
Сообщений: 1,194
Написано 615 полезных сообщений
(для 2,209 пользователей)
Ответ: Skynet++ (Скриптовый язык)

Сообщение от ffinder Посмотреть сообщение
вот ты клевый чувак, не мог написать нормально, доходчиво:
-что за язык,
-какие у него фичи
-область применения
-можно ли встраивать и куда

и всё это без скачивания и чтения исходников?
Пока со временем туговато. Позже сделаю. Там сэмплов 10 штук.))
Коротко:
- функциональное программирование без ООП.
- универсальность в применении, механизм инстансинга, уже подключенная библиотека различных полезных функций, сборщик мусора (для массивов)
- область применения: игры редакторы уровней
- см. пред пункт
Наверное надо было сказать, что написан на чистом блице))

UPD: К фичам забыл добавить возможность загрузки скрипта как напрямую из текста, так и из бинарника.

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

Сообщение от Diablo1909 Посмотреть сообщение
Интересно чем же он вам так не угодил?

ИМХО это лучший скриптовой язык. А модуль Lua JIT 2.0 - делает его одним из самых быстрых.
Вообще сначала именно Луа и вдохновлялся, но потом понял, что на блице подобное делать будет еще сложнее. В результате получилось, что получилось.))
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Черный крыс (01.12.2012)
Старый 01.12.2012, 12:33   #11
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Skynet++ (Скриптовый язык)

луа ужасен, питон няша
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо den за это полезное сообщение:
Кирпи4 (01.12.2012), Gector (01.12.2012)
Старый 01.12.2012, 22:41   #12
Черный крыс
 
Сообщений: n/a
Ответ: Skynet++ (Скриптовый язык)

Сообщение от Randomize Посмотреть сообщение
Lua же ужасен
Сообщение от Den Посмотреть сообщение
луа ужасен, питон няша
Нечего на зеркало пинять коль рожа крива.

Сообщение от IgorOK
Вообще сначала именно Луа и вдохновлялся, но потом понял, что на блице подобное делать будет еще сложнее. В результате получилось, что получилось.))
Там же все завязано на таблицах, у которых есть своя "родительская таблица" ( метатаблица ) - таким образом достигается ООП с нефиксированными правилами (Питоны, Макаки и прочие - смывают себя в унитаз от зависти со своими фиксированными правилами ООП). На блице вполне можно такое сотворить.
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (02.12.2012)
Старый 01.12.2012, 23:27   #13
Gector
Легенда
 
Аватар для Gector
 
Регистрация: 14.10.2007
Сообщений: 3,878
Написано 2,012 полезных сообщений
(для 5,072 пользователей)
Ответ: Skynet++ (Скриптовый язык)

Сообщение от Diablo1909 Посмотреть сообщение
Там же все завязано на таблицах, у которых есть своя "родительская таблица" ( метатаблица ) - таким образом достигается ООП с нефиксированными правилами (Питоны, Макаки и прочие - смывают себя в унитаз от зависти со своими фиксированными правилами ООП). На блице вполне можно такое сотворить.
Только это пустая трата времени.
(Offline)
 
Ответить с цитированием
Старый 01.12.2012, 23:41   #14
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений
(для 2,419 пользователей)
Ответ: Skynet++ (Скриптовый язык)

Да это не пустая трата времени, это костыли.
А классическое ООП (такое как в С++/C#/Python/Java/etc.) дураки придумывали, таблицами же удобнее.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Черный крыс (01.12.2012)
Старый 01.12.2012, 23:46   #15
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,354
Написано 2,470 полезных сообщений
(для 6,850 пользователей)
Ответ: Skynet++ (Скриптовый язык)

Сообщение от Diablo1909 Посмотреть сообщение
ИМХО это лучший скриптовой язык. А модуль Lua JIT 2.0 - делает его одним из самых быстрых.
В плане скриптовости JS мой идеал. Единственный скриптовик который не стесняется своей скриптовой сути. Остальные косят под компилируемые (руби, правда в этом отношении тож молодец)
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 18:28.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com