Введение
Язык моделирования на основе агентов StarLogo — это язык моделирования на основе агентов, разработанный Митчелом Резником, Эриком Клопфером и другими сотрудниками Медиалаборатории Массачусетского технологического института (MIT) и Программы подготовки учителей Шеллера в штате Массачусетс. Он является расширением языка программирования Logo, диалекта Lisp. StarLogo предназначен для образовательных целей и позволяет студентам моделировать и имитировать поведение децентрализованных систем. Первая версия StarLogo работала на параллельном компьютере Connection Machine 2. Последующая версия была портирована на компьютеры Macintosh. Позже она была переименована в MacStarLogo, а затем в MacStarLogo Classic. Современный StarLogo написан на языке Java и работает на большинстве компьютеров. Также существует версия StarLogo под названием OpenStarLogo. Исходный код программы доступен в сети, однако лицензия, под которой он распространяется, не соответствует определению открытого исходного кода из-за ограничений на коммерческое использование.
StarLogo is an agent based simulation language developed by Mitchel Resnick, Eric Klopfer, and others at the Massachusetts Institute of Technology (MIT) Media Lab and Scheller Teacher Education Program in Massachusetts. It is an extension of the Logo programming language, a dialect of Lisp. Designed for education, StarLogo can be used by students to model or simulate the behavior of decentralized systems. The first StarLogo ran on a Connection Machine 2 parallel computer. A subsequent version ran on Macintosh computers. It was later renamed MacStarLogo, and now is named MacStarLogo Classic. The current StarLogo is written in the language Java and works on most computers. StarLogo is also available in a version named OpenStarLogo. Its source code is available online, but the license under which it is released is not an open source license according to The Open Source Definition, because of restrictions on the commercial use of the code.
Версия 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) и разделение примитива столкновения на составляющие его части, при этом каждый вид имеет код обработки столкновений на своей странице программы.