# Help for the Teaching Machine.

## Loading programs.

- Application: The menu command Load File on the File menu.
- Applet: When the Teaching Machine is used as an applet, files are usually loaded by doing something on the associated web page. The Load File menu command (and any other commands that access the local disk) usually will not work due to browser security restictions.

When you load a local file, include directives (C++) and import declarations (Java) are resolved relative to a root directory. By default this is the directory containing the file loaded. However you may explicitly set the root directory to something else using the Select Root Directory command on the Project menu. The file loaded must be located somewhere under the root directory.

## Commands to specific subwindows.

Source Code Subwindow

  Execute the next expression in this subroutine.

  Execute the next expression.

  Execute to the end of this subroutine.

  Execute until the line the cursor is on or until the program terminates.

  Restart the program.

Expression Engine Subwindow

  Execute one step.

  Undo last command..

Stack, Static, Heap, and Scratch Subwindows

  Display one line per variable..

  Display one line per byte.

  Display values in binary.

Linked View

  Display variables on the stack and heap variables reachable from them.

  Display variables in the static store and heap variables reachable from them.

## Window manipulation.

All subwindows can be moved, resized, or brought to the front, though it sometimes takes a few tries to get the mouse in just the right spot.

All subwindows can be maximized, minimized, or closed. Once closed, they are gone until a file is opened.

The configuration of the windows can be saved and restored using the Save Configuation File and Read Configuration File commands on the File menu.

## Security restrictions.

If you ask the applet to do something that, because of a security restriction, it can not do, a window will pop up to tell you so. Typically you may not exit (exiting would shut down your web browser, which, while not a security problem, is annoying) nor load a local file.

## The Language Accepted by the Teaching Machine

This release supports subsets of C++ and Java. Many features of these languages are supported, but certainly not all. In particular, the templates in C++ are not supported, nor are multithreading, generics, or enums in Java. Library support is currently very sparse.

Furthermore, the Teaching Machine makes only the spottiest attempt to certify that your code is valid C++ or Java before executing it. We recommend compiling all examples, with a real compiler, prior to running them on the Teaching Machine.

For more information see the User's Manual contact Theodore Norvell at theo@engr.mun.ca.

## Bugs and wishes

Send reports of bugs and suggested improvements to theo@engr.mun.ca.