Paradigma | procesal |
---|---|
Diseñada por | Richard E. Pattis |
Apareció por primera vez | 1981 |
Dialectos | |
Algunas variantes de idioma localizadas | |
Influenciado por | |
Pascal | |
Influenciado | |
Karel ++, AgentSheets , Guido van Robot |
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 usó el idioma en sus cursos en la Universidad de Stanford , California . El idioma lleva el nombre de Karel Čapek , un escritor checo que introdujo la palabra robot en su obra RUR [1] [2]
Un programa en Karel se utiliza para controlar un robot simple llamado Karel que vive en un entorno que consta de 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 pone un beeper en el cuadrado en el que está parado), pickBeeper
(Karel levanta un beeper del cuadrado está parado en), y turnoff
(Karel se apaga, el programa termina). Karel también puede realizar consultas booleanas sobre su entorno inmediato, preguntando si hay un buscapersonas donde está parado, si hay barreras a su lado y sobre la dirección a la que se enfrenta. Un programadorpuede crear instrucciones adicionales definiéndolas en términos de las cinco instrucciones básicas, y utilizando sentencias de flujo de control condicional if
y while
con consultas de entorno, y utilizando la iterate
construcción. [ cita requerida ]
El siguiente es un ejemplo simple de la sintaxis de Karel:
INICIO DE 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; moverse FIN apagar FIN DE EJECUCIÓN FIN DE PROGRAMA
El lenguaje ha inspirado el desarrollo de varios clones y lenguajes educativos similares. Como el idioma está destinado a principiantes, existen variantes localizadas en algunos idiomas, especialmente el checo (el lenguaje de programación era bastante popular en Checoslovaquia ).
Los principios de Karel se actualizaron 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, [3] proporciona los comandos básicos de Karel dentro de un entorno RBScript con sintaxis BASIC que se usa para bucles y condicionales. Este proyecto de enseñanza proporciona una interfaz gráfica de usuario multiplataforma para los experimentos de Karel que incluyen resultados de un solo paso y hablados.
Un lenguaje y un entorno inspirado en Karel llamado Robot Emil [4] utiliza una vista en 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 el entorno 3D. El robot se puede controlar de forma interactiva con botones en la GUI o mediante programas escritos en el lenguaje de programación similar a Karel de Emil. El autor afirma que el programa es gratuito para las escuelas, los estudiantes y los niños. Las versiones están disponibles en inglés , checo y eslovaco .
Un lenguaje propietario que también se llama Karel se utiliza para programar los robots de FANUC Robotics . Sin embargo, FANUC Karel se deriva de Pascal .
El lenguaje también ha sido implementado como Karel the Dog en JavaScript por CodeHS . Similar al lenguaje original, esta implementación presenta a Karel en un mundo de cuadrícula. Los programadores utilizan y se basan en el vocabulario simple de comandos de Karel para realizar tareas de programación. En lugar de poner y recoger buscapersonas, Karel el Perro pone y saca pelotas de tenis.
Una versión alemana de Karel se llama "Robot Karol". [5]