Введение

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

Karel — это обучающий язык программирования для начинающих, разработанный Ричардом Э. Паттисом в его книге «Karel The Robot: A Gentle Introduction to the Art of Programming». Паттис использовал этот язык в своих курсах в Стэнфордском университете (Калифорния). Язык назван в честь Карела Чапека, чешского писателя, который впервые использовал слово «робот» в своей пьесе «Р. У. Р.».

Принципы

Программа на языке Карел используется для управления простым роботом по имени Карел, который живёт в среде, состоящей из сетки улиц (слева направо) и авеню (вверх-вниз). Карел понимает пять основных команд: move (Карел перемещается на один квадрат в направлении, куда он смотрит), turnLeft (Карел поворачивается на 90° влево), putBeeper (Карел ставит маркер на клетку, на которой он стоит), pickBeeper (Карел поднимает маркер с клетки, на которой он стоит), и turnoff (Карел выключается, и программа завершается). Карел также может выполнять логические запросы об окружающем его пространстве, проверяя, есть ли маркер на его текущей клетке, есть ли препятствия рядом с ним, и в каком направлении он смотрит. Программист может создавать дополнительные команды, определяя их через пять основных команд, используя условные операторы if и while с запросами к среде, а также конструкцию цикла.

Спецификация

Следующая реализация — это Karel на языке программирования Python. Доступны и другие реализации.

Первичные функции

Ниже приведены примитивные функции. move: Карел перемещается на один квадрат в направлении, куда он смотрит. turn left: Карел поворачивается налево на 90 градусов. put beeper: Карел ставит маркер на текущую клетку. pick beeper: Карел поднимает маркер с текущей клетки. paint corner(НАЗВАНИЕ ЦВЕТА): Карел окрашивает текущий угол в указанный цвет. Существует конечный список доступных цветов.

Варианты и потомки

Язык вдохновил на разработку различных клонов и аналогичных учебных языков. Поскольку язык предназначен для начинающих, локализованные варианты существуют для некоторых языков, в частности, чешского (язык программирования был довольно популярен в Чехословакии). Принципы Кареля были перенесены в парадигму объектно-ориентированного программирования в новом языке программирования под названием Karel++. Karel++ концептуально основан на Karel, но использует совершенно новый синтаксис, похожий на Java. Реализация REALbasic, rbKarel, предоставляет базовые команды Кареля в среде RBScript, используя синтаксис BASIC для циклов и условных операторов. Этот учебный проект предоставляет кросс-платформенный графический интерфейс для экспериментов с Карелем, включая пошаговое выполнение и голосовой вывод. Язык и среда, вдохновленные Карелем, под названием Robot Emil используют трехмерное представление мира робота. Robot Emil предлагает широкую палитру объектов, которые можно размещать для изображения стен, окон (с прозрачностью), воды и травы. Камера может свободно перемещаться по трехмерной среде. Роботом можно управлять интерактивно с помощью кнопок в графическом интерфейсе или с помощью программ, написанных на языке программирования Emil's Karel. Автор утверждает, что программа бесплатна для использования школами, студентами и детьми. Версии доступны на английском, чешском и словацком языках. Для программирования роботов FANUC Robotics используется проприетарный язык, также называемый Karel. Однако FANUC Karel произошел от Pascal. Язык также был реализован как Karel the Dog на JavaScript компанией CodeHS. Подобно оригинальному языку, эта реализация представляет Кареля в сетчатом мире. Программисты используют и развивают простой словарный запас команд Кареля для решения задач программирования. Вместо того чтобы ставить и поднимать маячки, Karel the Dog ставит и берет теннисные мячи. Немецкая версия Кареля называется "Робот Кароль".