Jump to content

Белка (язык программирования)

Белка
Парадигма Мультипарадигмальность : скриптовая , императивная , функциональная , объектно-ориентированная.
Разработано Альберто Демикелис
Впервые появился 6 сентября 2003 г .; 20 лет назад ( 06.09.2003 )
Стабильная версия
3.2 [1]  Отредактируйте это в Викиданных / 10 февраля 2022 г .; 2 года назад ( 10 февраля 2022 )
Дисциплина набора текста Динамический
ТЫ Кросс-платформенный
Лицензия МОЯ лицензия
Расширения имен файлов .орех
Веб-сайт белка-лэнг .org Отредактируйте это в Викиданных
Под влиянием
С++ , 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]

Особенности языка

[ редактировать ]

Синтаксис

[ редактировать ]

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]

Игры с использованием Белки

[ редактировать ]

Язык был обнародован в 2003 году по лицензии zlib/libpng . [20] В ноябре 2010 года лицензия была изменена на лицензию MIT , чтобы проект мог размещаться на Google Code . [21] [22] Он разработан и поддерживается Альберто Демикелисом.

См. также

[ редактировать ]
  1. ^ «белка/ИСТОРИЯ в мастере — albertodemichelis/squirrel — GitHub» .
  2. ^ Вики для разработчиков MirthKit. Архивировано 11 февраля 2014 г. на Wayback Machine.
  3. ^ Перейти обратно: а б Брэндон Бойер (21 февраля 2008 г.). «Гамасутра — освещение событий GDC 2008» . gamasutra.com . Гамасутра .
  4. ^ «Эксклюзив: за кулисами дебюта Final Fantasy на WiiWare» . gamasutra.com . Гамасутра . 23 июня 2008 года . Проверено 22 сентября 2011 г.
  5. ^ «L4D2 Vscripts — Сообщество разработчиков Valve» . Developer.valvesoftware.com . Проверено 6 июля 2018 г.
  6. ^ «Руководство по программированию Electric Imp» . electricimp.com .
  7. ^ Перейти обратно: а б с д и ж г час «Вскрипт» . Valvesoftware.com . 20 августа 2014 г. Проверено 17 января 2015 г.
  8. ^ "th155-разложение" . Гитхаб . Проверено 19 октября 2020 г.
  9. ^ «ЧТО, черт возьми, это расходная гайка? Пожалуйста, помогите, это код ошибки, который я получил, у кого-нибудь из вас было такое раньше?» . Reddit.com . 24 марта 2019 г. Проверено 4 сентября 2021 г.
  10. ^ «iv-multiplayer.com» . www.iv-multiplayer.com . Архивировано из оригинала 7 июня 2012 г. Проверено 6 июля 2018 г.
  11. ^ «Свобода на свободе» . Проверено 4 декабря 2019 г.
  12. ^ «m2-multiplayer.com» . www.m2-multiplayer.com . Архивировано из оригинала 02 января 2013 г. Проверено 6 июля 2018 г.
  13. ^ «AI:Главная страница — OpenTTD» . wiki.openttd.org . Проверено 6 июля 2018 г.
  14. ^ «Simutrans-Squirrel-API: Главная страница» . dwachs.github.io . Проверено 6 июля 2018 г.
  15. ^ «Вики-ресурс VG» . wiki.vg-resource.com . Проверено 4 сентября 2021 г.
  16. ^ «Блог-движок Thimbleweed Park» . blog.thimbleweedpark.com . Проверено 6 июля 2018 г.
  17. ^ «NewDark 1.25: сценарий Белки?» . ttlg.com . 20 марта 2017 г. Проверено 25 декабря 2019 г.
  18. ^ Мультиплеер Vice City
  19. ^ «Добро пожаловать на сайт ВК-МП!» . Архивировано из оригинала 5 апреля 2006 г. Проверено 4 мая 2014 г.
  20. ^ «Язык программирования Белка» . СоурсФордж . Проверено 6 июля 2018 г.
  21. ^ «Переход на code.google.com и лицензию MIT — Язык — Белка — Язык программирования» . forum.squirrel-lang.org . Проверено 6 июля 2018 г.
  22. ^ «Архив кода Google — долгосрочное хранилище для хостинга проектов Google Code» . code.google.com . Проверено 6 июля 2018 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8c92d850331f3427bd7bed59a84e54f0__1689834000
URL1:https://arc.ask3.ru/arc/aa/8c/f0/8c92d850331f3427bd7bed59a84e54f0.html
Заголовок, (Title) документа по адресу, URL1:
Squirrel (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)