Введение

Язык моделирования на основе агентов StarLogo — это язык моделирования на основе агентов, разработанный Митчелом Резником, Эриком Клопфером и другими сотрудниками Медиалаборатории Массачусетского технологического института (MIT) и Программы подготовки учителей Шеллера в штате Массачусетс. Он является расширением языка программирования Logo, диалекта Lisp. StarLogo предназначен для образовательных целей и позволяет студентам моделировать и имитировать поведение децентрализованных систем. Первая версия StarLogo работала на параллельном компьютере Connection Machine 2. Последующая версия была портирована на компьютеры Macintosh. Позже она была переименована в MacStarLogo, а затем в MacStarLogo Classic. Современный StarLogo написан на языке Java и работает на большинстве компьютеров. Также существует версия StarLogo под названием OpenStarLogo. Исходный код программы доступен в сети, однако лицензия, под которой он распространяется, не соответствует определению открытого исходного кода из-за ограничений на коммерческое использование.

Версия TNG

Версия 1.0 StarLogo TNG (The Next Generation) была выпущена в июле 2008 года. Она предоставляет трехмерный мир с использованием графики OpenGL и графический язык, основанный на блоках, для повышения удобства использования и простоты обучения. Она написана на языках C и Java. StarLogo TNG использует блоки для сборки элементов, подобных частям головоломки. StarLogo TNG считывает блоки в том порядке, в котором они соединяются, и отображает программу в представлении Spaceland. StarLogo оказала значительное влияние на систему частиц Kedama, разработанную Ёсики Осимой, которая используется в образовательной среде и языке программирования Etoys, который можно рассматривать как реализацию Logo, изначально созданную на Squeak Smalltalk.

Версия Nova

Последняя версия StarLogo, StarLogo Nova, была выпущена в бета-версии летом 2014 года. StarLogo Nova использует язык блоков и 3D-движок визуализации StarLogo TNG и переносит их в веб-браузер. Исполнитель StarLogo Nova построен на основе среды выполнения Adobe Flash и включает в себя специализированный движок рендеринга экземпляров, использующий графический интерфейс программирования приложений Adobe Molehill 3D (API), способный отображать десятки тысяч независимо движущихся агентов на современном оборудовании. Среда программирования построена на ScriptBlocks – библиотеке блоков на основе JavaScript. По состоянию на 2019 год StarLogo Nova разрабатывается программой подготовки учителей MIT Scheller под руководством Эрика Клопфера, ведущим дизайнером и разработчиком является Дэниел Вендель. StarLogo Nova представляет несколько заметных изменений в дизайне по сравнению с TNG, особенно с введением агента «Мир», напоминающего Observer в StarLogo 2.2. В StarLogo Nova любая команда может быть выполнена любым агентом, но у каждого вида (breed) есть своя программа и может быть свой собственный набор видоспецифических характеристик. Это приближает StarLogo Nova к объектно-ориентированному подходу к программированию, чтобы облегчить студентам перенос навыков, полученных в StarLogo Nova, на другие, более распространенные языки. Другие изменения включают использование встроенных аргументов для блоков (аналогично языку Scratch), редактирование интерфейса моделирования в режиме WYSIWYG (What You See Is What You Get) и разделение примитива столкновения на составляющие его части, при этом каждый вид имеет код обработки столкновений на своей странице программы.