]]> ]]>

Snap!

Реализация языка программирования Scratch

Snap! (ранее известный как BYOB, Build Your Own Blocks) — реализация языка Scratch, созданная в University of California, Berkeley. Snap! добавляет в язык поддержку простого создания пользовательских блоков, а также списки первого порядка, процедуры первого порядка и продолжения (сохраняемые состояния программы).

Snap! написан на JavaScript и запускается из браузера.

Среда разработки Snap!
Среда разработки Snap!

Логотип Snap!
Логотип Snap!

Примеры:

Hello, World!:

Пример для версий Snap! 4.0

В отличие от Scratch, скрипты в Snap! должны начинаться с блока-“шляпы”, определяющего условие их запуска. В данном случае скрипт выполняется при запуске презентации.

Hello, World! на Snap!
Hello, World! на Snap!

Факториал:

Пример для версий Snap! 4.0

Для вывода результатов вычислений в нужной форме используется глобальная переменная — список, которая “показывается” в конце выполнения программы.

Факториал (итеративное вычисление) на Snap!
Факториал (итеративное вычисление) на Snap!

Факториал:

Пример для версий Snap! 4.0

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

Факториал (рекурсивное вычисление) на Snap!
Факториал (рекурсивное вычисление) на Snap!

Числа Фибоначчи:

Пример для версий Snap! 4.0

Этот пример реализует рекурсивное вычисление чисел Фибоначчи. Для ускорения работы программы ранее найденные числа записываются в “кэш” — глобальный список.

Числа Фибоначчи (рекурсивное вычисление) на Snap!
Числа Фибоначчи (рекурсивное вычисление) на Snap!

Квадратное уравнение:

Пример для версий Snap! 4.0

Одна из удобных возможностей Snap! — блок join позволяет конкатенировать произвольное количество аргументов в одном блоке.

Квадратное уравнение на Snap!
Квадратное уравнение на Snap!

CamelCase:

Пример для версий Snap! 4.0

Snap! предоставляет более богатый набор встроенных блоков, чем Scratch, например, в него входят блоки unicode of _ и unicode _ as letter. Для удобства эти блоки использованы для определения блоков isLetter, toLower и toUpper, аналогичным одноименным функциям в других языках.

CamelCase на Snap!
CamelCase на Snap!


Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам