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
Примечания
[править | править код]- ↑ Google Code Archive - Long-term storage for Google Code Project Hosting . Дата обращения: 15 сентября 2020. Архивировано 30 мая 2016 года.
- ↑ Архивированная копия . Дата обращения: 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.
Ссылки
[править | править код]- xKarel Архивная копия от 28 августа 2008 на Wayback Machine by R. Dostal and P. Abrahamczik (created 1997)
- Karel Архивная копия от 15 сентября 2021 на Wayback Machine by T. Mitchell (created 2000)
- Karel in tiny-c Архивная копия от 28 ноября 2019 на Wayback Machine by Lee Bradley (created 2013)
- Karel for iPad Архивная копия от 13 января 2022 на Wayback Machine by CloudMakers (created 2014)
- Karel in JavaScript Архивная копия от 10 марта 2020 на Wayback Machine by CodeHS
- Karel in Perl 5 Архивная копия от 25 февраля 2021 на Wayback Machine 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 Архивная копия от 15 октября 2020 на Wayback Machine (created 2006, 2010)