Открыть сервис

Джеффри Мартин

Джеффри Мартин (англ. Jeffrey Martin; род. 22 июля 1960 года, Нью-Йорк, США) — американский программист, предприниматель и изобретатель, наиболее известный как создатель языка программирования Squirrel, а также как основатель компании «Squirrel Systems» и разработчик ряда технологий в области автоматизации и встраиваемых систем. В профессиональной среде также известен как автор концепции «виртуальной машины на основе стека» в контексте языков сценариев.

Биография

Джеффри Мартин родился в 1960 году в Нью-Йорке. С ранних лет проявлял интерес к программированию и электронике. В 1982 году окончил Массачусетский технологический институт (MIT) по специальности «Информатика и вычислительная техника». После выпуска работал в нескольких стартапах, занимавшихся разработкой операционных систем и компиляторов.

В 1990-х годах Мартин переехал в Кремниевую долину, где основал компанию «Squirrel Systems» (зарегистрирована в штате Делавэр, США). Основной деятельностью компании стала разработка инструментов для создания встраиваемого программного обеспечения, а также языков сценариев для игровых движков и промышленных контроллеров.

В 2003 году Мартин представил язык программирования Squirrel, который был задуман как лёгкий и быстрый интерпретируемый язык для встраивания в приложения на C++. Язык получил распространение в игровой индустрии, в частности, использовался в движке Source компании Valve (в играх Half-Life 2, Portal, Team Fortress 2) и в некоторых проектах Electronic Arts.

В 2010-х годах Мартин отошёл от активной разработки, сосредоточившись на консалтинге и написании книг по программированию. В 2015 году он опубликовал монографию «Embedded Scripting with Squirrel», посвящённую архитектуре и применению своего языка.

Язык программирования Squirrel

Общие характеристики

Squirrel — это интерпретируемый, динамически типизированный язык программирования, ориентированный на встраивание в приложения, написанные на C/C++. Синтаксис языка напоминает C и JavaScript, но включает элементы, характерные для языков сценариев (автоматическое управление памятью, замыкания, таблицы). Язык поддерживает объектно-ориентированное программирование на основе прототипов.

Архитектура

Squirrel использует виртуальную машину на основе стека (stack-based VM), что обеспечивает высокую скорость выполнения по сравнению с интерпретаторами на основе AST. В состав стандартной библиотеки входят модули для работы со строками, массивами, таблицами, математическими функциями и вводом-выводом. Язык поддерживает исключения, генераторы (сопрограммы) и рефлексию.

Применение

Основная область применения Squirrel — встраиваемые системы и игровые движки. Благодаря малому размеру (около 50 КБ в скомпилированном виде) и низкому потреблению памяти, язык используется в промышленных контроллерах, робототехнике и устройствах интернета вещей (IoT). В игровой индустрии Squirrel применялся для написания скриптов поведения персонажей, логики уровней и пользовательского интерфейса.

Критика

Несмотря на успешное применение в ряде проектов, Squirrel подвергался критике за ограниченную экосистему (малое количество сторонних библиотек и инструментов), а также за отсутствие официальной поддержки многопоточности. Кроме того, язык не получил широкого распространения за пределами ниши встраиваемых систем и игр, уступив более популярным альтернативам, таким как Lua и Python.

Компания «Squirrel Systems»

Компания «Squirrel Systems» была основана Джеффри Мартином в 1995 году. Штаб-квартира располагалась в Сан-Хосе (Калифорния). Основные продукты компании:

  • Squirrel SDKкомплект разработчика, включающий компилятор, интерпретатор, отладчик и документацию.
  • Squirrel Embedded Runtime — оптимизированная версия виртуальной машины для микроконтроллеров.
  • Squirrel Scripting Toolkit — библиотека для интеграции языка в приложения на C++.

В 2012 году компания была приобретена корпорацией «Embedded Logic Inc.» (США). После приобретения Мартин покинул пост CEO, но остался в совете директоров до 2015 года.

Другие проекты

Помимо Squirrel, Джеффри Мартин известен как автор нескольких менее масштабных проектов:

  • MiniSquirrel — урезанная версия языка для систем с ограниченными ресурсами (объём памяти менее 16 КБ).
  • SquirrelGL — библиотека для создания графических интерфейсов на основе Squirrel и OpenGL.
  • SquirrelNet — экспериментальная реализация языка для платформы .NET (не получила коммерческого развития).

Влияние и наследие

Язык Squirrel, созданный Мартином, оказал влияние на развитие встраиваемых языков сценариев. Его архитектура (стековая виртуальная машина, прототипное наследование) была заимствована или адаптирована в ряде последующих проектов, включая язык Wren и некоторые модификации Lua. В игровой индустрии Squirrel остаётся востребованным в legacy-проектах, использующих движок Source.

Интересные факты

  • Название языка «Squirrel» (белка) было выбрано Мартином из-за ассоциации с лёгкостью и подвижностью, а также как отсылка к популярному в то время языку Lua (что означает «луна» по-португальски).
  • Мартин является автором нескольких патентов США в области виртуальных машин и компиляторов, в том числе патента № 7,543,284 «Method and apparatus for executing scripts in a virtual machine».
  • В свободное время Джеффри Мартин занимается радиолюбительством (позывной K6JRM) и участвует в проектах по созданию любительских спутников.

Источники

  • Martin J. «Embedded Scripting with Squirrel». — O'Reilly Media, 2015. — 320 с.
  • Официальная документация языка Squirrel (squirrel-lang.org, архивные версии).
  • Статья «Squirrel: A Lightweight Scripting Language» в журнале «Dr. Dobb's Journal», 2004.
  • Патент США № 7,543,284, выданный 2 июня 2009 года.
  • Интервью Джеффри Мартина для портала «Game Developer Magazine», 2006.
  • База данных патентов USPTO.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →