NOTE: The versions here are the ONLY versions of the simulator. You may download it and use it for your courses in conjunction with the Karel++ book only.

All Systems (New October 18, 2007). A new version of the simulator is now available for testing. It should run on all systems, including Windows and Macintosh, even Linux. It works by translating Karel++ programs into Karel J Robot programs and then using the Karel J Robot simulator to execute the result. This version is somewhat experimental and has not been extensively tested. The zip file for this simulator (updated October 18, 2007-- fixed a few bugs) includes everything you should need, including documentation and the Karel J Robot simulator jar file. I would appreciate any feedback you can give me on the use of this program.

MACINTOSH (OS9, Classic). Here is the current version of Karel++: Karel++ Simulator for the Macintosh(Demo 4, Aug 23, 1998) There have been many changes and improvements. It is distributed as a FAT binary for the Macintosh only. It should run on all but the earliest Macs. The downloaded archive is self extracting and will create its own directory. The program author is Adrian Iley. Please do not try to contact him directly as he is very busy. Comments, bug reports, complaints, praise, etc., should be directed to me at the address below. I will pass the praise, at least, on to Adrian. This is the final release version.

WINDOWS. August 31, 2005 (NEW Version). I'm making available a new simulator that was written by a student in Greece. It is very interesting as it has a teaching layer as well as a simulator. It will work on current versions of Windows only. I'm distributing it with the permission of its author (Xinogalos Stylianos) and his professor (Maya Satratzemi). This was done at the University of Macedonia in Thesalonika. I thank them both for this nice work and for letting me distribute it. Xinoglaos has now finished his studies and is working in the field. Object Karel for Karel++. You can use it in either English or Greek. Note that the English version has a bit of Greek in it -- especially in the tooltips.

Note (March 2, 2005) that the windows versions of the current simulator are essentially obsolete. Microsoft dropped support for essential techonologies for these. The 32 bit versionw as a failed attempt to resurrect it. In the short term one or the other of these might work for you, but after a single run they will probably crash. I am working on as program (in Java) to translate K++ programs into Java so that they will work with the Karel J Robot simulator. I hope to have it done soon and will announce it here. This new version should run on all systems, not just Windows.

A MS/Windows version (Demo 7, Dec. 10, 1998) is now available. (Use the right mouse button to click on the link at the left and select the "Save this Link" option)The stuffit file will extract into its own directory. You may need the Aladdin expander from Aladdin Systems to expand this file. It is now nearly equivalent to the Mac version. The world files need to have extension .wld (note the change) and the Karel++ program files should have extension .kpp. Note that the formats of the files are the same on the Macintosh and the PC. If you have worlds or programs that you previously developed with the Macintosh version, all you need to do is copy them to the PC and they should work. The program author is Adrian Iley. Please do not try to contact him directly as he is very busy. Comments, bug reports, complaints, praise, etc., should be directed to me at the address below. I will pass the praise, at least, on to Adrian. This is the final release version. (NEW. Here is a zip version.It may be easier for you to use. ) Note that there is a bug in the Windows version that makes it crash under Windows 2000 and Windows XP. A DLL has been made obsolete on these systems. We do not have a fix.

NEW WINDOWS 32 VERSION: A windows 32 bit version is available as a zip archive. It is like the one above except that there is no (working) Print Preview. This may be buggy and I'd like any feedback on its behavior. It may solve the problem of crashing on every run that the 16bit version (above) has. Note that it is distributed with five DLL's that should remain in the directory with the application. If you have Borland C++ v5.2 installed on your machine you may not need these. (NOTE that this does seem to have some problems also.)

ALADDIN now has a stuffit program for windows and it is very good, but you don't need it. They DO have the expander, which is all you need. It is free from the above link.

NOTES for the PC version. All windows versions may crash on recent Windows systems. I don't have a fix. I'm sorry for the inconvenience.

NOTES for creating Karel++ programs on the PC. Karel++ programs end with the extension .kpp. If you try to create them with Notepad you will not be happy as Notepad puts .txt on the end of every file, even if you specify an extension. You can manually remove these and then the files should work as long as they end in .kpp. Note that depending on how you have your Windows system set up, you might not see the .txt and a file named Stair.kpp.txt might show up as Stair.kpp, causing confusion. There is an option to show all extensions. This is a good idea anyway as it makes some viruses sent by email easier to spot.

NOTES for the Macintosh version. If you have been using a previous version, throw away the Karel++ Prefs Folder from the preferences folder within your system folder before running this version. Otherwise the tools may not appear properly.

I don't have a solution to problem 6.14. If you do, I'd like to see it.

If you ever look at the code that is generated when you open a karel++ source file and see green comments which say something like (NULL expression):

    if ( /* NULL expression */) 
    {    move();
Then you probably caught an error in the parser and should let me know.

Recursion is limited of course. At this time the depth of recursion is limited to 2k calls to avoid overrunning the system stack. We might be able to increase this a bit. If it is a problem, let me know. Tail recursion is now mapped to looping so there should be no limit on the amount of tail recursion you can do. (That's not a bug; its a feature ;-)

There is now a window showing all robots in the world. If one robot is defined within the class of another, then the nested robot will be shown indented in this new window. The information in the window tells the current state of each robot (street, avenue, direction, number of beepers).

There is an undocumented feature of the language. class ur_Robot has a debug() method. If you put these in your source, the simulator will stop when it executes and will highlite the following instruction. There is no way to "turn off" this behavior other than editing the source. This can be used as a simple (too simple?) breakpoint mechanism. This feature is probably temporary and may be replaced by a proper break mechanism.

In the new instructor's guide, I offer to publish additional exercises written by educators. If you have some and would like me to publish them on my K++ page, let me know. I'll properly attribute them, of course.

Bug reports should be directed to me. The sooner I get them, the sooner the simulator can be completed. Requests for additional features and improvements will also be entertained. They might be incorporated if extensive changes are not required.

Do not depend on the continued availability of this page or the simulator. It will be removed from the public area soon.

The Karel++ home page is: You can find the simulator documentation from there.

Last Updated: October 19, 2007