Белка (язык программирования)
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Парадигма | Мультипарадигмальность : скриптовая , императивная , функциональная , объектно-ориентированная. |
---|---|
Разработано | Альберто Демикелис |
Впервые появился | 6 сентября 2003 г |
Стабильная версия | 3.2 [1] ![]() |
Дисциплина набора текста | Динамический |
ТЫ | Кросс-платформенный |
Лицензия | МОЯ лицензия |
Расширения имен файлов | .орех |
Веб-сайт | белка-лэнг |
Под влиянием | |
С++ , JavaScript , Луа , Питон | |
Под влиянием | |
МиниД |
Squirrel — это императивный язык объектно-ориентированный программирования высокого уровня , разработанный как легкий язык сценариев , который соответствует размеру, пропускной способности памяти и требованиям реального времени таких приложений, как видеоигры .
MirthKit, простой набор инструментов для создания и распространения кроссплатформенных 2D-игр с открытым исходным кодом, использует Squirrel в качестве своей платформы. [2] Он широко используется Code::Blocks для написания сценариев, а также использовался в Final Fantasy Crystal Chronicles: My Life as a King . [3] [4] Он также используется в Left 4 Dead 2 , Portal 2 и Thimbleweed Park для сценариев событий, а также в NewDark , неофициальном обновлении движка Thief 2: The Metal Age , для обеспечения дополнительных, упрощенных средств написания сценариев миссий, помимо обычных C. сценариев . [5]
Особенности языка
[ редактировать ]- Динамическая типизация
- Делегация
- Классы , наследование
- Функции высшего порядка
- Генераторы
- Совместные потоки ( сопрограммы )
- Хвостовая рекурсия
- Обработка исключений
- Автоматическое управление памятью (в основном подсчет ссылок с помощью резервного сборщика мусора )
- Слабые ссылки
- И компилятор , и виртуальная машина умещаются примерно в 7 тыс. строк C++. кода
- Необязательные 16-битные символов строки
Синтаксис
[ редактировать ]Squirrel использует синтаксис, подобный C.
- Факториал в белке
function factorial(x)
{
if (x <= 1) {
return 1;
}
else {
return x * factorial(x-1);
}
}
- Генераторы
function not_a_random_number_generator(max) {
local last = 42;
local IM = 139968;
local IA = 3877;
local IC = 29573;
for(;;) { // loops forever
yield (max * (last = (last * IA + IC) % IM) / IM);
}
}
local randtor = not_a_random_number_generator(100);
for(local i = 0; i < 10; i += 1)
print(">"+resume randtor+"\n");
- Классы и наследование
class BaseVector {
constructor(...)
{
if(vargv.len() >= 3) {
x = vargv[0];
y = vargv[1];
z = vargv[2];
}
}
x = 0;
y = 0;
z = 0;
}
class Vector3 extends BaseVector {
function _add(other)
{
if(other instanceof ::Vector3)
return ::Vector3(x+other.x,y+other.y,z+other.z);
else
throw "wrong parameter";
}
function Print()
{
::print(x+","+y+","+z+"\n");
}
}
local v0 = Vector3(1,2,3)
local v1 = Vector3(11,12,13)
local v2 = v0 + v1;
v2.Print();
Приложения
[ редактировать ]Приложения, использующие Squirrel
[ редактировать ]- Code::Blocks , интегрированная среда разработки
- Enduro/X , кластерный сервер приложений
- Electric Imp , комплексная IoT-платформа [6]
Игры с использованием Белки
[ редактировать ]- Рой пришельцев [7]
- Антиномия обычных цветов [8]
- Апекс Легенды [9]
- Боевые братья
- Заражение [7]
- Counter Strike: Глобальное наступление [7]
- CRSED: FOAD
- Final Fantasy Crystal Chronicles: Моя жизнь короля [3]
- GTA IV IV-MP [10]
- Левый 4 Мертвый 2 [7]
- Свобода на свободе [11]
- II Mafia M2-мультиплеер [12]
- Ядерный рассвет [7]
- ОпенТТД [13]
- Портал 2 [7]
- Теневой воин
- Моделирование [14]
- Sonic Unleashed (PS2/Wii) [15]
- СуперТукс
- Командная крепость 2 [7]
- Парк Тимблвид [16]
- Thief II (неофициальное обновление движка NewDark) [17]
- Титанфолл [7]
- Мультиплеер Вайс Сити , [18] мод для Grand Theft Auto: Vice City [19]
- Война Гром
- Zero no Tsukaima - Maigo no Period to Ikusen no Symphony (PS2)
- Зеро но Цукайма - Мума га Цумугу Йокадзе но Ноктюрн (PS2)
- Зеро-но Цукайма - Шоу-акума to Harukaze no Concerto (PS2)
История
[ редактировать ]Язык был обнародован в 2003 году по лицензии zlib/libpng . [20] В ноябре 2010 года лицензия была изменена на лицензию MIT , чтобы проект мог размещаться на Google Code . [21] [22] Он разработан и поддерживается Альберто Демикелисом.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «белка/ИСТОРИЯ в мастере — albertodemichelis/squirrel — GitHub» .
- ^ Вики для разработчиков MirthKit. Архивировано 11 февраля 2014 г. на Wayback Machine.
- ^ Перейти обратно: а б Брэндон Бойер (21 февраля 2008 г.). «Гамасутра — освещение событий GDC 2008» . gamasutra.com . Гамасутра .
- ^ «Эксклюзив: за кулисами дебюта Final Fantasy на WiiWare» . gamasutra.com . Гамасутра . 23 июня 2008 года . Проверено 22 сентября 2011 г.
- ^ «L4D2 Vscripts — Сообщество разработчиков Valve» . Developer.valvesoftware.com . Проверено 6 июля 2018 г.
- ^ «Руководство по программированию Electric Imp» . electricimp.com .
- ^ Перейти обратно: а б с д и ж г час «Вскрипт» . Valvesoftware.com . 20 августа 2014 г. Проверено 17 января 2015 г.
- ^ "th155-разложение" . Гитхаб . Проверено 19 октября 2020 г.
- ^ «ЧТО, черт возьми, это расходная гайка? Пожалуйста, помогите, это код ошибки, который я получил, у кого-нибудь из вас было такое раньше?» . Reddit.com . 24 марта 2019 г. Проверено 4 сентября 2021 г.
- ^ «iv-multiplayer.com» . www.iv-multiplayer.com . Архивировано из оригинала 7 июня 2012 г. Проверено 6 июля 2018 г.
- ^ «Свобода на свободе» . Проверено 4 декабря 2019 г.
- ^ «m2-multiplayer.com» . www.m2-multiplayer.com . Архивировано из оригинала 02 января 2013 г. Проверено 6 июля 2018 г.
- ^ «AI:Главная страница — OpenTTD» . wiki.openttd.org . Проверено 6 июля 2018 г.
- ^ «Simutrans-Squirrel-API: Главная страница» . dwachs.github.io . Проверено 6 июля 2018 г.
- ^ «Вики-ресурс VG» . wiki.vg-resource.com . Проверено 4 сентября 2021 г.
- ^ «Блог-движок Thimbleweed Park» . blog.thimbleweedpark.com . Проверено 6 июля 2018 г.
- ^ «NewDark 1.25: сценарий Белки?» . ttlg.com . 20 марта 2017 г. Проверено 25 декабря 2019 г.
- ^ Мультиплеер Vice City
- ^ «Добро пожаловать на сайт ВК-МП!» . Архивировано из оригинала 5 апреля 2006 г. Проверено 4 мая 2014 г.
- ^ «Язык программирования Белка» . СоурсФордж . Проверено 6 июля 2018 г.
- ^ «Переход на code.google.com и лицензию MIT — Язык — Белка — Язык программирования» . forum.squirrel-lang.org . Проверено 6 июля 2018 г.
- ^ «Архив кода Google — долгосрочное хранилище для хостинга проектов Google Code» . code.google.com . Проверено 6 июля 2018 г.
Внешние ссылки
[ редактировать ]- программное обеспечение 2003 года
- Кроссплатформенное бесплатное программное обеспечение
- Бесплатные компьютерные библиотеки
- Бесплатное программное обеспечение, написанное на C.
- Объектно-ориентированные языки программирования
- Процедурные языки программирования
- Языки программирования
- Языки программирования, созданные в 2003 году.
- Языки сценариев
- Программное обеспечение, использующее лицензию MIT