Karel

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Karel
Класс языка язык программирования, процедурный язык программирования и учебный язык программирования
Появился в 1981
Автор Richard E. Pattis[вд]
Испытал влияние Паскаль, Карел Чапек и робот
Повлиял на Karel++, AgentSheets, Guido van Robot
Сайт xkarel.sourceforge.net
Логотип Викисклада Медиафайлы на Викискладе

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

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

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

[править | править код]

Karel вдохновил несколько языков-клонов и похожих учебных языков программирования. Поскольку Karel предназначен для начинающих, которые могут не владеть английским, были созданы локализованные варианты с переведенными командами, в частности для чешского языка (Karel был довольно популярен в Чехословакии).

Идеи Karel-а были перенесены на объектно-ориентированное программирование в языке программирования под названием Karel++ . Karel++ концептуально основан на Karel-е, но использует совершенно другой синтаксис, аналогичный Java.

На языке REALbasic был создан образовательный проект rbKarel,[1] в котором пользователь пишет команды в среде RBScript, для реализации циклов и условных выражений используется синтаксис BASIC. Для экспериментов с Карелом предоставляется кроссплатформенный графический интерфейс, а так же пошаговый и речевой вывод.

В языке и среде, вдохновленной Karel-ом, под названием «Робот Эмиль»[2] используется трехмерный мир. Робот Эмиль предлагает большой набор объектов: стены, окна, вода, трава. Камеру можно свободно перемещать по трехмерному миру. Роботом можно управлять в интерактивном режиме с помощью кнопок в графическом интерфейсе пользователя или программно, на Karel-подобном языке программирования Эмиль. Программа бесплатна для школ, студентов и детей. Доступны версии на английском, чешском и словацком языках.

Проприетарный язык, который также называется Karel, используется для программирования роботов компании FANUC Robotics. Однако синтаксис FANUC Karel происходит из языка Паскаль.

Образовательная платформа CodeHS реализовала Karel в проекте «Пес Карел» на JavaScript. Так же как в оригинальном Karel-е, здесь представлен клеточный мир. Для решения задач по программированию пользователи используют и дополняют простой набор команд. Вместо пищалок пес Карел кладет и подбирает теннисные мячики.

  • RoboMind
  • RUR-PLE[англ.] — среда для изучения Python, основанная на идеях Karel-а.
  • CodeHS[англ.] — вводный курс по информатике с использованием Karel-а в JavaScript

Примечания

[править | править код]
  1. Google Code Archive - Long-term storage for Google Code Project Hosting. Дата обращения: 15 сентября 2020. Архивировано 30 мая 2016 года.
  2. Архивированная копия. Дата обращения: 15 сентября 2020. Архивировано из оригинала 2 ноября 2010 года.

Дополнительная литература

[править | править код]
  • Richard E. Pattis. Karel The Robot: A Gentle Introduction to the Art of Programming. John Wiley & Sons, 1981. ISBN 0-471-59725-2.
  • Joseph Bergin, Mark Stehlik, Jim Roberts, Richard E. Pattis. Karel++: A Gentle Introduction to the Art of Object-Oriented Programming. John Wiley & Sons, 1996. ISBN 0-471-13809-6.