stringtranslate.com

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

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

Принципы

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

Пример

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

НАЧАЛО ПРОГРАММЫ  ОПРЕДЕЛИТЬ поворот направо как НАЧИНАТЬ Поверните налево; Поверните налево; Поверните налево; КОНЕЦ  НАЧАЛО ИСПОЛНЕНИЯ ПОВТОРИТЬ 3 РАЗА НАЧИНАТЬ Поверните направо; двигаться КОНЕЦ выключать ОКОНЧАНИЕ ИСПОЛНЕНИЯ КОНЕЦ ПРОГРАММЫ

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

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

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

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

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

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

put_beeper(): Карел ставит пейджер на текущую клетку.

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

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

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

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

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

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

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).

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

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

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

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

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

Реализация REALbasic, rbKarel, [4] предоставляет основные команды Karel в среде RBScript с синтаксисом BASIC, используемым для циклов и условных операторов. Этот учебный проект предоставляет кроссплатформенный графический интерфейс для экспериментов Karel, включая пошаговое выполнение и голосовой вывод.

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

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

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

Немецкая версия имени Карел называется «Робот Кароль». [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 Code — долгосрочное хранилище для хостинга проектов Google Code».
  5. ^ "Введение (EN)". www.emil.input.sk . Архивировано из оригинала 2010-11-02.
  6. ^ «Робот Кароль - Побег из лабиринта | Schülerlabor Informatik - InfoSphere, Informatik entdecken в Modulen für alle Schulformen & Klassenstufen» . schuelerlabor.informatik.rwth-aachen.de . Проверено 29 декабря 2020 г. .

Внешние ссылки