原則
一個Karel程式用於控制一個名為Karel的簡單機器人,它生活在一個由街道(左右方向)和渠道(上下方向)所組成的格線環境中。Karel能理解5種基本的指令:move(Karel向它面對的方向移動一格),turnleft(Karel向左轉90°),putbeeper(Karel在它所處的格子中放置一個報警器),pickbeeper(Karel將它所處格子中的報警器撿走),以及turnoff(Karel將自己關機,程式結束)。
下面是一個Karel語法的簡單例子(;代表代表指令的結束,當指令為END時可以忽略)
BEGINNING-OF-PROGRAM
DEFINE turnright AS
BEGIN
turnleft;
turnleft;
turnleft;
END
BEGINNING-OF-EXECUTION
ITERATE 3 TIMES
turnright;
move;
turnoff;
END-OF-EXECUTION
END-OF-PROGRAM
變形和後裔
這門語言促進了各種克隆和類似的教學語言的發展。由於這門語言是面向初學者的,在某些語言中存在本地化的變種,值得注意的是捷克語的版本(這門程式語言在捷克斯洛伐克非常流行)。斯洛伐克版本,被稱為Robot Karol++,包含了進一步的改進,並且它本身被翻譯成了英語、德語和捷克語。
Karel的原理已經在一門稱為Karel++的新程式語言中被更新為面向對象的編程範式。Karel++在概念上基於Karel,但使用了一種新的語法,類似於Java。
FANUC Karel是一種用於FANUC機器人學編程的專用語言。不過, FANUC Karel是來源於Pascal程式語言。
一個REALbasic的實現,rbKarel,提供了一個RBScript環境下的基本Karel命令,並使用BASIC語法用於循環和條件。這個教學項目為Karel實驗,包括單步和口語輸出,提供了一個跨平台的GUI。