HOME

TheInfoList



OR:

Karel is an educational programming language for beginners, created by
Richard E. Pattis Richard Eric Pattis is an American professor at the University of California, Irvine's Donald Bren School of Information and Computer Sciences, where he taught introductory programming and data structures. He is the author of the Karel programm ...
in his book ''Karel The Robot: A Gentle Introduction to the Art of Programming''. Pattis used the language in his courses at Stanford University,
California California is a state in the Western United States, located along the Pacific Coast. With nearly 39.2million residents across a total area of approximately , it is the most populous U.S. state and the 3rd largest by area. It is also the ...
. The language is named after Karel Čapek, a Czech writer who introduced the word ''
robot A robot is a machine—especially one programmable by a computer—capable of carrying out a complex series of actions automatically. A robot can be guided by an external control device, or the control may be embedded within. Robots may be ...
'' in his play R.U.R.


Principles

A program in Karel is used to control a simple
robot A robot is a machine—especially one programmable by a computer—capable of carrying out a complex series of actions automatically. A robot can be guided by an external control device, or the control may be embedded within. Robots may be ...
named Karel that lives in an environment consisting of a grid of streets (left-right) and avenues (up-down). Karel understands five basic instructions: move (Karel moves by one square in the direction he is facing), turnLeft (Karel turns 90 ° left), putBeeper (Karel puts a beeper on the square he is standing at), pickBeeper (Karel lifts a beeper off the square he is standing at), and turnoff (Karel switches himself off, the program ends). Karel can also perform
boolean Any kind of logic, function, expression, or theory based on the work of George Boole is considered Boolean. Related to this, "Boolean" may refer to: * Boolean data type, a form of data with only two possible values (usually "true" and "false" ...
queries about his immediate environment, asking whether there is a beeper where he is standing, whether there are barriers next to him, and about the direction he is facing. A
programmer A computer programmer, sometimes referred to as a software developer, a software engineer, a programmer or a coder, is a person who creates computer programs — often for larger computer software. A programmer is someone who writes/creates ...
can create additional instructions by defining them in terms of the five basic instructions, and by using conditional
control flow In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an '' ...
statements if and while with environment queries, and by using the iterate construct.


Example

The following is a simple example of Karel syntax: 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


Variants and descendants

The language has inspired the development of various clones and similar educational languages. As the language is intended for beginners, localized variants exist in some languages, notably Czech (the programming language was quite popular in
Czechoslovakia , rue, Чеськословеньско, , yi, טשעכאסלאוואקיי, , common_name = Czechoslovakia , life_span = 1918–19391945–1992 , p1 = Austria-Hungary , image_p1 ...
). The principles of Karel were updated to the
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
paradigm in a new programming language called
Karel++ Karel is an educational programming language for beginners, created by Richard E. Pattis in his book ''Karel The Robot: A Gentle Introduction to the Art of Programming''. Pattis used the language in his courses at Stanford University, California ...
. Karel++ is conceptually based on Karel, but uses a completely new syntax, similar to
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
. A REALbasic implementation, rbKarel, provides the basic Karel commands within an RBScript environment with BASIC syntax being used for loops and conditionals. This teaching project provides a cross-platform GUI for Karel experiments including single-stepping and spoken output. A Karel-inspired language and environment called ''Robot Emil'' uses a 3D view of the robot's world. ''Robot Emil'' offers a large palette of objects that can be placed to depict walls, windows (transparency), water and grass. The camera may be moved freely throughout the 3D environment. The robot may be controlled interactively with buttons in the GUI, or by programs written in Emil's Karel-like programming language. The author states that the program is free for use by schools, students and children. Versions are available in English, Czech and Slovak. A proprietary language which is also called Karel is used to program the robots of FANUC Robotics. However, FANUC Karel is derived from Pascal. The language has also been implemented as Karel the Dog in
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
by
CodeHS CodeHS is an interactive online learning platform offering computer science and programming instruction for schools and individual learners. CodeHS is focused on spreading access to and knowledge of computer science by offering online instruction ...
. Similar to the original language, this implementation features Karel in a grid world. Programmers use and build upon Karel's simple vocabulary of commands to accomplish programming tasks. Instead of putting and picking beepers, Karel the Dog puts and takes tennis balls. A German version of Karel is named "Robot Karol".


See also

* Educational programming language *
RoboMind RoboMind is a simple educational programming environment with its own scripting language that allows beginners to learn the basics of computer science by programming a simulated robot. In addition to introducing common programming techniques, it a ...
- An attractive, educational alternative programming environment * RUR-PLE - another "learn Python" tool based on ideas in Karel *
CodeHS CodeHS is an interactive online learning platform offering computer science and programming instruction for schools and individual learners. CodeHS is focused on spreading access to and knowledge of computer science by offering online instruction ...
- introductory computer science education using Karel in JavaScript


Further reading

* Richard E. Pattis. ''Karel The Robot: A Gentle Introduction to the Art of Programming''. John Wiley & Sons, 1981. . * Joseph Bergin, Mark Stehlik, Jim Roberts, Richard E. Pattis. ''Karel++: A Gentle Introduction to the Art of Object-Oriented Programming''. John Wiley & Sons, 1996. .


References

{{reflist


External links


Karel syntax

xKarel
by R. Dostal and P. Abrahamczik (created 1997)
Karel
by T. Mitchell (created 2000)
Karel in tiny-c
by Lee Bradley (created 2013)
Karel for iPad
by CloudMakers (created 2014)
Karel in JavaScript
by CodeHS
Karel in Perl 5
by E. Choroba (created 2016)
Karel-3D in JavaScript and C++ (sk) (en) (de) (es)
(created 2017, 2018)
Guido van Robot (GvR) - Karel in Python
(created 2006, 2010) Educational programming languages Procedural programming languages Programming languages created in 1981