Из Википедии, бесплатной энциклопедии
  (Перенаправлено с языка программирования Squirrel )
Перейти к навигации Перейти к поиску

Белка является высоким уровнем императива , объектно-ориентированным языком программирования , разработанный , чтобы быть легким языком сценариев , который умещается в размере, пропускной способности памяти, а также требованиях в реальное время приложений , таких как видео - игры и встроенные системы .

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
  • Рубин

Ссылки [ править ]

  1. ^ MirthKit Разработчик Wiki архивации 2014-02-11 в Wayback Machine
  2. Брэндон Бойер (21 февраля 2008 г.). «Гамасутра - освещение событий GDC 2008» . gamasutra.com . Гамасутра .
  3. ^ «Эксклюзив: за кулисами дебюта Final Fantasy на WiiWare» . gamasutra.com . Гамасутра . 23 июня 2008 . Проверено 22 сентября 2011 года .
  4. ^ «L4D2 Vscripts - Сообщество разработчиков Valve» . developer.valvesoftware.com . Проверено 6 июля 2018 .
  5. ^ "Руководство по программированию Electric Imp" . electricimp.com .
  6. ^ a b c d e "VScript" . valveoftware.com . 2014-08-20 . Проверено 17 января 2015 .
  7. ^ "NewDark 1.25: Скрипт белки?" . ttlg.com . 2017-03-20 . Проверено 25 декабря 2019 .
  8. ^ "AI: Главная страница - OpenTTD" . wiki.openttd.org . Проверено 6 июля 2018 .
  9. ^ "iv-multiplayer.com" . www.iv-multiplayer.com . Проверено 6 июля 2018 .
  10. ^ "m2-multiplayer.com" . www.m2-multiplayer.com . Проверено 6 июля 2018 .
  11. ^ "Блог парка Thimbleweed - двигатель" . blog.thimbleweedpark.com . Проверено 6 июля 2018 .
  12. ^ "Simutrans-Squirrel-API: главная страница" . dwachs.github.io . Проверено 6 июля 2018 .
  13. ^ "Добро пожаловать на сайт VC-MP!" . https://vc-mp.org/ . Архивировано из оригинала на 2006-04-05 . Проверено 4 мая 2014 . Внешняя ссылка в |website=( помощь )
  14. ^ «Свобода развязанная» . Проверено 4 декабря 2019 .
  15. ^ "th155-decomp" . Проверено 19 октября 2020 .
  16. ^ "Язык программирования белка" . SourceForge . Проверено 6 июля 2018 .
  17. ^ «Переход на code.google.com и лицензию MIT - Язык - Белка - Язык программирования» . forum.squirrel-lang.org . Проверено 6 июля 2018 .
  18. ^ «Архив Google Code - Долгосрочное хранилище для хостинга проектов Google Code» . code.google.com . Проверено 6 июля 2018 .

Внешние ссылки [ править ]

  • Официальный веб-сайт