A method and apparatus for providing an undoable programming language. More specifically the present invention relates to providing a fully undoable programming language, where the language includes a fully undoable core language portion and a conventional language portion. In an embodiment of the present invention, a method of encoding a general-purpose undoable programming language to enable fully undoable instructions includes encoding a fully undoable core imperative language portion having a plurality of undoable core instructions, each of the plurality of undoable core instructions to perform at least one undoable operation upon execution, and the at least one undoable operation being fully undoable until final termination of a program written using any of the plurality of undoable core instructions. The method also includes encoding a conventional language portion including a plurality of conventional instructions, each of the plurality of conventional instructions to perform at least one permanent operation upon execution, the at least one permanent operation being permanent upon final termination of the execution of the conventional instruction and each of the plurality of conventional instructions being callable by at least one of the plurality of undoable core instructions.

 
Web www.patentalert.com

> Character communication device

~ 00339