Jump to content

Карел (язык программирования)

Карел Робот
Парадигма процедурный
Разработано Ричард Э. Паттис
Впервые появился 1981
Веб-сайт Ккарел .sourceforge .сеть
Диалекты
Некоторые локализованные языковые варианты
Под влиянием
Паскаль
Под влиянием
Карел++, AgentSheets , Гвидо ван Робот

Karel образовательный язык программирования для начинающих, созданный Ричардом Э. Паттисом в его книге «Робот Карел: нежное введение в искусство программирования» . Паттис использовал этот язык на своих курсах в Стэнфордском университете , Калифорния . Язык назван в честь Карела Чапека , чешского писателя, который ввел слово робот в своей пьесе «РУР». [1] [2]

Принципы

[ редактировать ]

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

Ниже приведен простой пример синтаксиса Karel:

BEGINNING-OF-PROGRAM
 
 DEFINE turnRight AS
 BEGIN
   turnLeft;
   turnLeft;
   turnLeft;
 END
 
 BEGINNING-OF-EXECUTION
   ITERATE 3 TIMES
   BEGIN
     turnRight;
     move
   END
   turnoff
 END-OF-EXECUTION
 
END-OF-PROGRAM

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

[ редактировать ]

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

Примитивные функции

[ редактировать ]

Ниже приведены примитивные функции.

move(): Карел перемещается на одну клетку в том направлении, в котором смотрит.

turn_left(): Карел поворачивает налево на 90 градусов.

put_beeper(): Карел включает звуковой сигнал на текущем квадрате.

pick_beeper(): Карел берет пейджер с текущего квадрата.

paint_corner(COLOR_NAME): Карел закрашивает текущий угол цветом. Существует ограниченный список доступных цветов.

Структуры программы

[ редактировать ]

Программы Karel структурированы следующим образом:

  • Комментарии: Любая строка, начинающаяся с # является комментарием и игнорируется интерпретатором.
  • Функции в Karel объявляются с использованием def, за которым следует имя функции и круглые скобки. В последующих строках следует тело функции.
  • main(): При запуске программы выполняется main функция. Остальные функции не выполняются, если они не вызваны.

Условия в Кареле

[ редактировать ]

Карел может реагировать на определенные условия в своем мире:

front_is_clear(),beepers_present(), beepers_in_bag(), left_is_clear(), right_is_clear(), facing_north(), facing_south(), facing_east(), facing_west()

И их обратные стороны:

front_is_blocked(), no_beepers_present(), no_beepers_in_bag(), left_is_blocked(), right_is_blocked(), not_facing_north(), not_facing_south(), not_facing_east(), not_facing_west().

Он также может проверить цвет текущего блока, corner_color_is(COLOR_NAME).

Условия и циклы

[ редактировать ]

Существуют две структуры управления:

  • Условное выполнение с использованием if и else.
  • Циклы с использованием for и while.

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

[ редактировать ]

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

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

НАСТОЯЩАЯ базовая реализация, rbKarel, [4] предоставляет основные команды Karel в среде RBScript с синтаксисом BASIC, используемым для циклов и условий. Этот учебный проект предоставляет кроссплатформенный графический интерфейс для экспериментов Karel, включая пошаговый и голосовой вывод.

Язык и среда, вдохновленные карелами, под названием Robot Emil. [5] использует трехмерное представление мира роботов. Робот Эмиль предлагает большую палитру объектов, которые можно разместить, изображая стены, окна (прозрачность), воду и траву. Камеру можно свободно перемещать по 3D-среде. Роботом можно управлять в интерактивном режиме с помощью кнопок в графическом интерфейсе или с помощью программ, написанных на языке программирования Эмиля, похожем на Карел. Автор заявляет, что программа бесплатна для использования школами, студентами и детьми. Доступны версии на английском , чешском и словацком языках .

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

Язык также был реализован как Karel the Dog в JavaScript компанией CodeHS . Как и в исходном языке, в этой реализации Карел представлен в сеточном мире. Программисты используют и развивают простой словарь команд Карела для выполнения задач программирования. Вместо того, чтобы ставить и собирать пейджеры, пес Карел кладет и берет теннисные мячи.

Немецкая версия Карела называется «Робот Кароль». [6]

См. также

[ редактировать ]

Дальнейшее чтение

[ редактировать ]
  • Ричард Э. Паттис. Робот Карел: Нежное введение в искусство программирования . Джон Уайли и сыновья, 1981. ISBN   0-471-59725-2 .
  • Джозеф Бергин, Марк Стелик, Джим Робертс, Ричард Э. Паттис. Карел++: Нежное введение в искусство объектно-ориентированного программирования . Джон Уайли и сыновья, 1996. ISBN   0-471-13809-6 .
  1. ^ «Кто на самом деле изобрел слово «робот» и что оно означает?» . Архивировано из оригинала 27 июля 2013 года . Проверено 25 июля 2013 г.
  2. ^ Марголиус, Иван (осень 2017 г.) «Пражский робот». Архивировано 11 сентября 2017 г. в Wayback Machine. Информационный бюллетень «Друзья чешского наследия» №. 17, стр.3-6
  3. ^ Пих, Крис; Робертс, Эрик (январь 2019 г.). «Робот Карел изучает Python. Приложение: Справочник» . compedu.stanford.edu . Проверено 12 июня 2023 г.
  4. ^ «Архив кода Google — долгосрочное хранилище для хостинга проектов Google Code» .
  5. ^ «Введение (EN)» . www.emil.input.sk . Архивировано из оригинала 2 ноября 2010 г.
  6. ^ «Робот Кароль – Побег из лабиринта | Школьная лаборатория информатики — InfoSphere, откройте для себя информатику в модулях для всех типов школ и классов» . schuelerlabor.informatik.rwth-aachen.de . Проверено 29 декабря 2020 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f24d234e32dee1289f9405028776e1c9__1714131180
URL1:https://arc.ask3.ru/arc/aa/f2/c9/f24d234e32dee1289f9405028776e1c9.html
Заголовок, (Title) документа по адресу, URL1:
Karel (programming language) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)