Белка (язык программирования) - Squirrel (programming language)
эта статья может потребоваться реорганизация для соответствия требованиям Википедии рекомендации по макету.Март 2018 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Эта статья должна быть обновлено.Март 2018 г.) ( |
Парадигма | Мультипарадигма: сценарии, императив, функциональный, объектно-ориентированный |
---|---|
Разработано | Альберто Демикелис |
Впервые появился | 6 сентября 2003 г. |
Стабильный выпуск | 3.1 / 27 марта 2016 г. |
Печатная дисциплина | Динамический |
Операционные системы | Кроссплатформенность |
Лицензия | Лицензия MIT |
Расширения имени файла | .орех |
Интернет сайт | беличий язык |
Под влиянием | |
C ++, JavaScript, Lua, Python | |
Под влиянием | |
MiniD |
Белка это высокий уровень императив, объектно-ориентированный язык программирования, призванный стать легкий язык сценариев который соответствует размеру, пропускной способности памяти и требованиям к работе в реальном времени таких приложений, как видеоигры и встроенные системы.
MirthKit, простой набор инструментов для создания и распространения кроссплатформенных 2D-игр с открытым исходным кодом, использует Squirrel в качестве своей платформы.[1] Он широко используется Код :: Блоки для сценариев, а также использовался в Final Fantasy Crystal Chronicles: Моя жизнь как король.[2][3] Он также используется в Left 4 Dead 2, Портал 2 и Thimbleweed Park для сценариев событий и в НовыйТемный, неофициальный Вор 2: Металлический век обновление движка, чтобы облегчить дополнительные, упрощенные средства создания сценариев событий миссии, помимо обычных C сценарии.[4]
Особенности языка
- Динамический набор текста
- Делегация
- Классы, наследство
- Функции высшего порядка
- Генераторы
- Совместные потоки (сопрограммы )
- Хвостовая рекурсия
- Обработка исключений
- Автоматическое управление памятью (в основном подсчет ссылок с резервным копированием уборщик мусора )
- Слабые ссылки
- И то и другое компилятор и виртуальная машина уместиться примерно в 7 тыс. строк C ++ код
- Необязательный 16 бит характер струны
Синтаксис
Squirrel использует синтаксис, подобный Си.
- Факториал в белке
функция факториал(Икс) { если (Икс == 0) { вернуть 1; } еще { вернуть Икс * факториал(Икс-1); } }
- Генераторы
функция not_a_random_number_generator(Максимум) { местный последний = 42; местный Я = 139968; местный IA = 3877; местный IC = 29573; для(;;) { // бесконечный цикл Уступать (Максимум * (последний = (последний * IA + IC) % Я) / Я); } } местный Randtor = not_a_random_number_generator(100); для(местный я = 0; я < 10; я += 1) Распечатать(">"+продолжить Randtor+" п");
- Классы и наследование
класс BaseVector { конструктор(...) { если(vargv.len() >= 3) { Икс = vargv[0]; y = vargv[1]; z = vargv[2]; } } Икс = 0; y = 0; z = 0; } класс Вектор3 расширяет BaseVector { функция _Добавить(Другой) { если(Другой случай ::Вектор3) вернуть ::Вектор3(Икс+Другой.Икс,y+Другой.y,z+Другой.z); еще бросить "неправильный параметр"; } функция Распечатать() { ::Распечатать(Икс+","+y+","+z+" п"); } } местный v0 = Вектор3(1,2,3) местный v1 = Вектор3(11,12,13) местный v2 = v0 + v1; v2.Распечатать();
Приложения
Неигровые приложения с использованием Squirrel
- Эндуро / X Сервер кластерных приложений
- Электрический Имп Комплексная платформа IoT [5]
Игры с использованием Squirrel
- Left 4 Dead 2[6]
- Вор II (неофициальное обновление движка NewDark)[7]
- Портал 2[6]
- Рой пришельцев[6]
- OpenTTD[8]
- GTAIV 's IV-MP[9]
- Мафия II 's M2-мультиплеер[10]
- Counter Strike: глобальное наступление[6]
- Воин Тени
- Гром войны
- Cuisine Royale
- SuperTux
- Sonic Unleashed (PS2 / Wii)
- Заражение[6] (ПК)
- Thimbleweed Park[11]
- Simutrans[12]
- Мультиплеер Vice City (мод для Grand Theft Auto: Vice City )[13]
- Свобода развязанная[14]
- Zero no Tsukaima - Muma ga Tsumugu Yokaze no Nocturne (PS2)
- Zero no Tsukaima - Maigo no Period to Ikusen no Symphony (PS2)
- Zero no Tsukaima - Shou-akuma to Harukaze no Concerto (PS2)
- Антиномия обычных цветов [15]
История
Язык был обнародован в 2003 г. лицензия zlib / libpng.[16]В ноябре 2010 года лицензия была изменена на Лицензия MIT чтобы проект был размещен на Код Google.[17][18]Он разработан и поддерживается Альберто Демикелисом.
Смотрите также
использованная литература
- ^ Wiki для разработчиков MirthKit В архиве 2014-02-11 в Wayback Machine
- ^ Брэндон Бойер (21 февраля 2008 г.). «Гамасутра - освещение событий GDC 2008». gamasutra.com. Гамасутра.
- ^ «Эксклюзив: за кулисами дебюта Final Fantasy на WiiWare». gamasutra.com. Гамасутра. 23 июня 2008 г.. Получено 22 сентября 2011.
- ^ "L4D2 Vscripts - сообщество разработчиков Valve". developer.valvesoftware.com. Получено 2018-07-06.
- ^ "Руководство по программированию Electric Imp". electricimp.com.
- ^ а б c d е «VScript». valveoftware.com. 2014-08-20. Получено 2015-01-17.
- ^ "NewDark 1.25: Скрипт белки?". ttlg.com. 2017-03-20. Получено 2019-12-25.
- ^ «AI: Главная страница - OpenTTD». wiki.openttd.org. Получено 2018-07-06.
- ^ "iv-multiplayer.com". www.iv-multiplayer.com. Получено 2018-07-06.
- ^ "m2-multiplayer.com". www.m2-multiplayer.com. Получено 2018-07-06.
- ^ "Блог Thimbleweed Park - Engine". blog.thimbleweedpark.com. Получено 2018-07-06.
- ^ «Simutrans-Squirrel-API: главная страница». dwachs.github.io. Получено 2018-07-06.
- ^ "Добро пожаловать на сайт VC-MP!". https://vc-mp.org/. Архивировано из оригинал на 2006-04-05. Получено 2014-05-04. Внешняя ссылка в
| сайт =
(Помогите) - ^ "Свобода развязанная". Получено 2019-12-04.
- ^ "th155-decomp". Получено 2020-10-19.
- ^ «Язык программирования белка». SourceForge. Получено 2018-07-06.
- ^ «Переход на code.google.com и лицензия MIT - Язык - Белка - Язык программирования». forum.squirrel-lang.org. Получено 2018-07-06.
- ^ "Архив Google Code - долгосрочное хранилище для хостинга проектов Google Code". code.google.com. Получено 2018-07-06.