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, в котором пользователь пишет команды в среде RBScript, для реализации циклов и условных выражений используется синтаксис BASIC. Для экспериментов с Карелом предоставляется кроссплатформенный графический интерфейс, а так же пошаговый и речевой вывод.
В языке и среде, вдохновленной Karel-ом, под названием «Робот Эмиль» используется трехмерный мир. Робот Эмиль предлагает большой набор объектов: стены, окна, вода, трава. Камеру можно свободно перемещать по трехмерному миру. Роботом можно управлять в интерактивном режиме с помощью кнопок в графическом интерфейсе пользователя или программно, на Karel-подобном языке программирования Эмиль. Программа бесплатна для школ, студентов и детей. Доступны версии на английском, чешском и словацком языках.
Проприетарный язык, который также называется Karel, используется для программирования роботов компании FANUC Robotics. Однако синтаксис FANUC Karel происходит из языка Паскаль.
Образовательная платформа CodeHS реализовала Karel в проекте «Пес Карел» на JavaScript. Так же как в оригинальном Karel-е, здесь представлен клеточный мир. Для решения задач по программированию пользователи используют и дополняют простой набор команд. Вместо пищалок пес Карел кладет и подбирает теннисные мячики.
См. также RoboMind — среда для изучения Python, основанная на идеях Karel-а. — вводный курс по информатике с использованием Karel-а в JavaScript
Примечания
Дополнительная литература Richard E. Pattis. Karel The Robot: A Gentle Introduction to the Art of Programming. John Wiley & Sons, 1981. . Joseph Bergin, Mark Stehlik, Jim Roberts, Richard E. Pattis. Karel++: A Gentle Introduction to the Art of Object-Oriented Programming. John Wiley & Sons, 1996. .
Ссылки xKarel by R. Dostal and P. Abrahamczik (created 1997) Karel by T. Mitchell (created 2000) Karel in tiny-c by Lee Bradley (created 2013) Karel for iPad by CloudMakers (created 2014) Karel in JavaScript by CodeHS Karel in Perl 5 by E. Choroba (created 2016) Karel-3D in JavaScript and C++ (sk) (en) (de) (es) (created 2017, 2018) Guido van Robot (GvR) — Karel in Python (created 2006, 2010)
Категория:Языки программирования, появившиеся в 1981 году Категория:Процедурные языки программирования Категория:Языки программирования для образования