stringtranslate.com

Karel (lenguaje de programación)

Karel es un lenguaje de programación educativo para principiantes, creado por Richard E. Pattis en su libro Karel The Robot: A Gentle Introduction to the Art of Programming . Pattis utilizó el lenguaje en sus cursos en la Universidad de Stanford , California . El lenguaje recibe su nombre de Karel Čapek , un escritor checo que introdujo la palabra robot en su obra de teatro RUR [1] [2]

Principios

Un programa en Karel se utiliza para controlar un robot simple llamado Karel que vive en un entorno que consiste en una cuadrícula de calles (izquierda-derecha) y avenidas (arriba-abajo). Karel entiende cinco instrucciones básicas: move(Karel se mueve un cuadrado en la dirección en la que está mirando), turnLeft(Karel gira 90° a la izquierda), putBeeper(Karel coloca un beeper en el cuadrado en el que está parado), pickBeeper(Karel levanta un beeper del cuadrado en el que está parado) y turnoff(Karel se apaga, el programa termina). Karel también puede realizar consultas booleanas sobre su entorno inmediato, preguntando si hay un beeper donde está parado, si hay barreras junto a él y sobre la dirección en la que está mirando. Un programador puede crear instrucciones adicionales definiéndolas en términos de las cinco instrucciones básicas, y utilizando declaraciones de flujo de controlif condicional y whilecon consultas de entorno, y utilizando el iterateconstructo. [ cita requerida ]

Ejemplo

El siguiente es un ejemplo simple de sintaxis de Karel:

INICIO DEL PROGRAMA  DEFINIR turnRight COMO COMENZAR Gire a la izquierda; Gire a la izquierda; Gire a la izquierda; FIN  INICIO DE EJECUCIÓN ITERAR 3 VECES COMENZAR Gire a la derecha; mover FIN apagar FIN DE EJECUCIÓN FIN DEL PROGRAMA

Especificación

La siguiente implementación es Karel en el lenguaje de programación Python . [3] Hay otras implementaciones disponibles.

Funciones primitivas

Las siguientes son las funciones primitivas.

move():Karel se mueve un cuadrado en la dirección hacia la que mira.

turn_left():Karel gira 90 grados a la izquierda.

put_beeper():Karel coloca un zumbador en su casilla actual.

pick_beeper():Karel recoge un beeper de su casilla actual.

paint_corner(COLOR_NAME):Karel pinta su esquina actual con un color. Hay una lista finita de colores disponibles.

Estructuras del programa

Los programas Karel están estructurados de la siguiente manera:

Condiciones en Karel

Karel puede reaccionar ante determinadas condiciones de su mundo:

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

Y sus inversas:

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

También puede comprobar el color del bloque actual mediante corner_color_is(COLOR_NAME).

Condiciones y bucles

Hay dos estructuras de control:

Variantes y descendientes

El lenguaje ha inspirado el desarrollo de varios clones y lenguajes educativos similares. Como el lenguaje está destinado a principiantes, existen variantes localizadas en algunos idiomas, en particular en checo (el lenguaje de programación era bastante popular en Checoslovaquia ).

Los principios de Karel fueron actualizados al paradigma de programación orientada a objetos en un nuevo lenguaje de programación llamado Karel++. Karel++ se basa conceptualmente en Karel, pero utiliza una sintaxis completamente nueva, similar a Java .

Una implementación de REALbasic, rbKarel, [4] proporciona los comandos básicos de Karel dentro de un entorno RBScript con sintaxis BASIC que se utiliza para bucles y condicionales. Este proyecto de enseñanza proporciona una interfaz gráfica de usuario multiplataforma para experimentos de Karel que incluyen pasos individuales y salida hablada.

Un lenguaje y entorno inspirados en Karel llamado Robot Emil [5] utiliza una vista 3D del mundo del robot. Robot Emil ofrece una gran paleta de objetos que se pueden colocar para representar paredes, ventanas (transparencia), agua y césped. La cámara se puede mover libremente por todo el entorno 3D. El robot se puede controlar de forma interactiva con botones en la interfaz gráfica de usuario o mediante programas escritos en el lenguaje de programación similar a Karel de Emil. El autor afirma que el programa es gratuito para su uso por parte de escuelas, estudiantes y niños. Hay versiones disponibles en inglés , checo y eslovaco .

Para programar los robots de FANUC Robotics se utiliza un lenguaje propietario, también llamado Karel . Sin embargo, FANUC Karel deriva de Pascal .

El lenguaje también ha sido implementado como Karel the Dog en JavaScript por CodeHS . De manera similar al lenguaje original, esta implementación presenta a Karel en un mundo de cuadrícula. Los programadores usan y desarrollan el vocabulario simple de comandos de Karel para realizar tareas de programación. En lugar de colocar y recoger pitidos, Karel the Dog coloca y recoge pelotas de tenis.

Una versión alemana de Karel se llama "Robot Karol". [6]

Véase también

Lectura adicional

Referencias

  1. ^ "¿Quién inventó realmente la palabra 'robot' y qué significa?". Archivado desde el original el 27 de julio de 2013. Consultado el 25 de julio de 2013 .
  2. ^ Margolius, Ivan (otoño de 2017) "El robot de Praga" Archivado el 11 de septiembre de 2017 en Wayback Machine Boletín de los Amigos del Patrimonio Checo n.º 17, págs. 3-6
  3. ^ Piech, Chris; Roberts, Eric (enero de 2019). "Karel el robot aprende Python. Apéndice: Referencia". compedu.stanford.edu . Consultado el 12 de junio de 2023 .
  4. ^ "Archivo de código de Google: almacenamiento a largo plazo para alojamiento de proyectos de código de Google".
  5. ^ "Introducción (EN)". www.emil.input.sk . Archivado desde el original el 2 de noviembre de 2010.
  6. ^ "Robot Karol - Escape the Maze | Schülerlabor Informatik - InfoSphere, Informatik entdecken in Modulen für alle Schulformen & Klassenstufen". schuelerlabor.informatik.rwth-aachen.de . Consultado el 29 de diciembre de 2020 .

Enlaces externos