Snap! (язык программирования)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Snap!
Изображение логотипа
Семантика событийно-ориентированная
Класс языка графический, учебный
Тип исполнения интерпретатор
Появился в 2011
Автор Брайан Кейт Харви
Разработчик Jens Mönig
Расширение файлов .ypr, .ysp (BYOB); .xml (Snap!)
Выпуск 8.0.0[1] (3 августа 2022)
Система типов динамическая
Испытал влияние Скретч, Smalltalk, Scheme и Лого
Повлиял на BeetleBlocks, Snapi, Dragme IDE
Лицензия AGPL
Сайт snap.berkeley.edu, byob.berkeley.edu
ОС Windows, macOS, HTML (кросс-платформенный)
Логотип Викисклада Медиафайлы на Викискладе

Snap! (англ. щелчок, ранее назывался Build Your Own Blocks или BYOB[2]) — бесплатный, основанный на блоках и браузере образовательный язык визуального программирования, позволяющий начинающим программистам создавать интерактивные анимации, компьютерные игры, сценарии и многое другое с изучением математических и вычислительных идей.[3]

Разработчики языка: Брайан Кейт Харви — вдохновитель идеи и Дженс Дженс Мёниг.

Близкие языки: Скретч, Scheme, Лого, Smalltalk.

Пользовательский интерфейс[править | править код]

В Snap! экран организован в трех изменяемых по размеру столбцах, содержащих пять областей: селектор (выбор) групп блоков (вверху левой колонки), палитра блоков (левая колонка), основная область (средняя колонка) и сценическая область (вверху правой колонки) с набором спрайтов, под которым отображаются миниатюры спрайтов.

Экран, который появляется при создании нового проекта в Snap! (версия языка 8.5.3)

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

Блоки разделены на восемь групп: Движение, Внешность, Звук, Перо, Управление, Сенсоры, Операторы и Переменные.

В основной области могут быть показаны сценарии, костюмы или звуки, связанные с выбранным спрайтом. То, что показывает основная область, зависит от выбранной вкладки.

Особенности языка[править | править код]

К наиболее важным функциям, предлагаемым в Snap!, но не включённым в Scratch, относятся:

  • выражения, использующие "вложенные функции", состоящие из одной или нескольких "анонимных функций", каждая из которых представлена блоком, имеющим один или несколько пустых слотов/параметров, которые ожидают заполнения результатами выполнения "функцией более высокого порядка" (той, которая вызывает анонимную). Применение лямбда-функции;
  • списки (включая списки списков);
  • спрайты первого класса (другими словами, прототипно-ориентированное бесклассовое программирование на базе экземпляров);
  • вложенные спрайты;
  • кодификация программ Snap! для основных языков, таких как Python, JavaScript, C и др.

Лицензионная политика[править | править код]

Исходный код Snap! распространяется под лицензией Affero General Public License (AGPL) и размещен на GitHub[4]. Более ранняя, настольная версия 3.x, доступна по лицензии, которая допускает модификацию только для некоммерческого использования и может быть загружена с сайта UC Berkeley или со страниц загрузки CNET's[5][6] и TechTracker.

Платформа[править | править код]

Сам Snap! реализован на языке JavaScript с использованием интерфейса прикладного программирования (API) HTML5 Canvas, благодаря чему проекты могут исполняться на основных веб-браузерах на устройствах под управлением операционных систем Windows, iOS, OS X и Linux.

Интересные факты[править | править код]

Существует проект, с помощью которого можно создавать исполняемые приложения для Windows и MacOs из проектов Snap.[7]

Создание проектов возможно на 44 языках, включая русский.

Примечания[править | править код]

  1. v8.0.0. Дата обращения: 22 августа 2022. Архивировано 22 августа 2022 года.
  2. SNAP! (Build Your Own Blocks) (англ.). Berkeley. — Язык ранее носил название BYOB. Дата обращения: 25 декабря 2020. Архивировано 2 февраля 2020 года.
  3. UC Berkeley EECS | CS10 : The Beauty and Joy of Computing | Fall 2011 (англ.). inst.eecs.berkeley.edu. Дата обращения: 25 декабря 2020. Архивировано 14 января 2021 года.
  4. Jens Mönig. jmoenig/Snap. — 2020-12-24. Архивировано 16 октября 2019 года.
  5. BYOB (Build Your Own Blocks) (англ.). Download.com. — Загрузка версии для Windows. Дата обращения: 25 декабря 2020. Архивировано 25 ноября 2020 года.
  6. BYOB (Build Your Own Blocks) (англ.). Download.com. — Загрузка версии для MacOs. Дата обращения: 25 декабря 2020. Архивировано 27 февраля 2021 года.
  7. Adrian Hintze. adrian-hintze/Snapp. — 2020-12-22. Архивировано 5 декабря 2020 года.

Ссылки[править | править код]

  • Snap! Build Your Own Blocks (англ.). — Официальный сайт языка. Дата обращения: 25 декабря 2020.
  • Jens Mönig, Brian Harvey. Snap! Build Your Own Blocks (англ.). github. — Официальный сайт языка. Дата обращения: 25 декабря 2020.

Источники[править | править код]

  • Brian Harvey, Jens Mönig. Официальный релиз 6.5.0 = SNAP!Reference Manual. — Jens Mönig and Brian Harvey, 2020. — 150 с.
  • Virginia King, Lee Ryall. Книга кода = The Coding Book. — Invent the World, 2018. — 192 с. — ISBN 9781488909924.
  • Joachim Wedekind. Искусство кода: искусство программирования на Snap! = Codierte Kunst: Kunst programmieren mit Snap!. — Joachim Wedekind, 2018.
  • Eckart Modrow. Computer Science with Snap! = Computer Science with Snap!. — emu-online Scheden, 2018. — 2017 с.