Эта статья может нуждаться в реорганизации, чтобы соответствовать рекомендациям Википедии по разметке . ( Март 2018 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Эта статья нуждается в обновлении . Март 2018 г. ) ( |
Парадигма | Мультипарадигма : скриптовый , императивный , функциональный , объектно-ориентированный |
---|---|
Разработано | Альберто Демикелис |
Впервые появился | 6 сентября 2003 г . |
Стабильный выпуск | 3.1 / 27 марта 2016 г . |
Печатная дисциплина | Динамический |
Операционные системы | Кроссплатформенность |
Лицензия | Лицензия MIT |
Расширения имени файла | .орех |
Веб-сайт | squirrel-lang |
Под влиянием | |
C ++ , JavaScript , Lua , Python | |
Под влиянием | |
MiniD |
Белка является высоким уровнем императива , объектно-ориентированным языком программирования , разработанный , чтобы быть легким языком сценариев , который умещается в размере, пропускной способности памяти, а также требованиях в реальное время приложений , таких как видео - игры и встроенные системы .
MirthKit, простой набор инструментов для создания и распространения кроссплатформенных 2D-игр с открытым исходным кодом, использует Squirrel в качестве своей платформы. [1] Он широко используется Code :: Blocks для написания сценариев, а также в Final Fantasy Crystal Chronicles: My Life as a King . [2] [3] Он также используется в Left 4 Dead 2 , Portal 2 и Thimbleweed Park для сценариев событий и в NewDark , неофициальном обновлении движка Thief 2: The Metal Age , для облегчения дополнительных, упрощенных средств создания сценариев событий миссий. помимо обычных сценариев C. [4]
Особенности языка [ править ]
- Динамический набор текста
- Делегация
- Классы , наследование
- Функции высшего порядка
- Генераторы
- Кооперативные потоки ( сопрограммы )
- Хвостовая рекурсия
- Обработка исключений
- Автоматическое управление памятью (в основном подсчет ссылок с резервным сборщиком мусора )
- Слабые ссылки
- И компилятор, и виртуальная машина умещаются примерно в 7k строк кода C ++.
- Необязательные 16-битные символьные строки
Синтаксис [ править ]
Squirrel использует синтаксис, подобный Си.
- Факториал в белке
функция factorial ( x ) { if ( x == 0 ) { возврат 1 ; } else { return x * факториал ( x - 1 ); } }
- Генераторы
функция not_a_random_number_generator ( max ) { local last = 42 ; местный IM = 139968 ; местный IA = 3877 ; местный IC = 29573 ; for (;;) { // бесконечный цикл yield ( max * ( last = ( last * IA + IC ) % IM ) / IM ); } } локальный randtor = not_a_random_number_generator ( 100 ); for ( local i = 0 ; i < 10 ; i + = 1 ) print ( ">" + возобновить randtor + "\ n" );
- Классы и наследование
class BaseVector { конструктор (...) { если ( vargv . len () > = 3 ) { x = vargv [ 0 ]; y = vargv [ 1 ]; z = vargv [ 2 ]; } } х = 0 ; у = 0 ; z = 0 ; } class Vector3 расширяет BaseVector { function _add ( other ) { if ( other instanceof :: Vector3 ) return :: Vector3 ( x + other . x , y + other . y , z + other . z ); иначе выбросить "неправильный параметр" ; } function Print () { :: print (x + "," + y + "," + z + "\ n" ); } } local v0 = Vector3 ( 1 , 2 , 3 ) local v1 = Vector3 ( 11 , 12 , 13 ) local v2 = v0 + v1 ; v2 . Печать ();
Приложения [ править ]
Неигровые приложения, использующие Squirrel [ править ]
- Сервер приложений Enduro / X Cluster
- Electric Imp Сквозная платформа Интернета вещей [5]
Игры с использованием Squirrel [ править ]
- Left 4 Dead 2 [6]
- Thief II (неофициальное обновление движка NewDark) [7]
- Портал 2 [6]
- Рой пришельцев [6]
- OpenTTD [8]
- GTAIV ' ы IV-MP [9]
- Мафия II ' М2-Мультиплеер с [10]
- Counter Strike: Global Offensive [6]
- Воин Тени
- Гром войны
- Cuisine Royale
- SuperTux
- Sonic Unleashed (PS2 / Wii)
- Заражение [6] (ПК)
- Парк Тимблвид [11]
- Simutrans [12]
- Vice City Multiplayer (мод для 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 Code . [17] [18] Он разработан и поддерживается Альберто Демикелисом.
См. Также [ править ]
- Lua
- AngelScript
- Python
- ECMAScript
- Рубин
Ссылки [ править ]
- ^ MirthKit Разработчик Wiki архивации 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 . Проверено 6 июля 2018 .
- ^ "Руководство по программированию Electric Imp" . electricimp.com .
- ^ a b c d e "VScript" . valveoftware.com . 2014-08-20 . Проверено 17 января 2015 .
- ^ "NewDark 1.25: Скрипт белки?" . ttlg.com . 2017-03-20 . Проверено 25 декабря 2019 .
- ^ "AI: Главная страница - OpenTTD" . wiki.openttd.org . Проверено 6 июля 2018 .
- ^ "iv-multiplayer.com" . www.iv-multiplayer.com . Проверено 6 июля 2018 .
- ^ "m2-multiplayer.com" . www.m2-multiplayer.com . Проверено 6 июля 2018 .
- ^ "Блог парка Thimbleweed - двигатель" . blog.thimbleweedpark.com . Проверено 6 июля 2018 .
- ^ "Simutrans-Squirrel-API: главная страница" . dwachs.github.io . Проверено 6 июля 2018 .
- ^ "Добро пожаловать на сайт VC-MP!" . https://vc-mp.org/ . Архивировано из оригинала на 2006-04-05 . Проверено 4 мая 2014 . Внешняя ссылка в
|website=
( помощь ) - ^ «Свобода развязанная» . Проверено 4 декабря 2019 .
- ^ "th155-decomp" . Проверено 19 октября 2020 .
- ^ "Язык программирования белка" . SourceForge . Проверено 6 июля 2018 .
- ^ «Переход на code.google.com и лицензию MIT - Язык - Белка - Язык программирования» . forum.squirrel-lang.org . Проверено 6 июля 2018 .
- ^ «Архив Google Code - Долгосрочное хранилище для хостинга проектов Google Code» . code.google.com . Проверено 6 июля 2018 .
Внешние ссылки [ править ]
- Официальный веб-сайт