Squirrel

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску
Squirrel
Класс языка:

мультипарадигменный

Тип исполнения:

интерпретируемый, JIT

Появился в:

2003 г.

Автор(ы):

Альберто Демичелис

Последняя версия:

2.2.2 (сентябрь 2008)

Испытал влияние:

Lua, Python, Javascript, С++

Squirrel (англ. «белка») — интерпретируемый язык программирования, разработанный специально для использования в качестве скриптового языка в приложениях реального времени, таких как компьютерные игры. Является свободно распространяемым, с открытыми исходными текстами.

Основные особенности

  • Динамическая типизация
  • Поддержка классов и наследования
  • Управление памятью и сборка мусора
  • Делегаты
  • Генераторы
  • Работа с исключениями
  • Малый размер

Отличия от Lua

  • Синтаксис языка ближе к C/C++
  • Поддержка классов на уровне языка
  • Для создания полей у таблиц нужно использовать специальный оператор <-, таким образом невозможно создать новое поле, случайно ошибившись в имени
  • Lua разрабатывается на протяжении более 15 лет и для него создано большое количество библиотек, Squirrel относительно молодой язык.

Типы данных

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

Значения в Squirrel могут быть следующих типов:

  • null - неопределенное значение. Переменные типа Null могут иметь только одно значение - null;
  • bool - логический тип, может иметь значение true или false;
  • integer - целые числа (32 бита или больше);
  • float - вещественные числа (32 бита или больше);
  • string - текстовые строки - может хранить стоки в кодировке ASCII (1 байт) или unicode (2 байта);
  • table - таблица - может хранить набор значений, представленных парами ключ/значение (называемых "слоты");
  • array - массив - последовательность значений переменной длины, индексируемых целыми числами. Индексы начинаются с 0;
  • function - функция - значение типа функция можно "вызвать", передав ему параметры и получив результат выполнения;
  • generator - генератор - функция, выполнение которой может быть приостановлено и возобновлено с помощью операторов yield/resume;
  • class - как и таблица, классы имеют набор слотов, однако, классы могут быть унаследованы а на их основе можно создавать объекты. После создания класса к нему можно добавлять слоты в любой момент;
  • instance объект, созданный из класса. Так же содержит слоты, однако добавлять новые слоты в объект нельзя;
  • thread - поток выполнения ;
  • userdata - пользовательские данные - участки памяти и указатели, которые используются приложением, использующим squirrel;

Реализация

Исходный код компилируется в байт код, который впоследствии выполняется на виртуальной машине. Для задач критичных по времени имеется JIT компилятор.

Использование

Ссылки

de:Squirrel (Programmiersprache) en:Squirrel (programming language) ja:Squirrel ko:스퀴럴 (프로그래밍 언어)

Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....