image provider

PUT Language for Specifying Instructions


This essay does not describe an existing computer program, just one that should exist. This essay is about a suggested student project in Java programming. This essay gives a rough overview of how it might work. I have no source, object, specifications, file layouts or anything else useful to implementing this project. Everything I have prepared to help you is right here.

This project outline is not like the artificial, tidy little problems you are spoon-fed in school, when all the facts you need are included, nothing extraneous is mentioned, the answer is fully specified, along with hints to nudge you toward a single expected canonical solution. This project is much more like the real world of messy problems where it is up to you to fully the define the end point, or a series of ever more difficult versions of this project and research the information yourself to solve them.

Everything I have to say to help you with this project is written below. I am not prepared to help you implement it; or give you any additional materials. I have too many other projects of my own.

Though I am a programmer by profession, I don’t do people’s homework for them. That just robs them of an education.

You have my full permission to implement this project in any way you please and to keep all the profits from your endeavour.

Please do not email me about this project without reading the disclaimer above.

PUT is not an acronym. It comes from the phrase put tab A in slot B Most computer languages are designed to give instructions to a computer. PUT language is for specifying instructions intended for a fellow human being. Consider a set of instructions to set up an IV, assemble a swing set, copy a file, set up a new ink-jet printer, make Alice B. Toklas brownies or take a pregnancy test. Such sets of instructions are often: The idea is you specify the instructions in a formal language to avoid these problems. That language can then be used to generate: How does the language work. You first have to define your nouns, including a photograph or illustration. You then have to define your verbs and prepositions. There would presumably be a large library so that in most cases the PUT programmer could avoid this tedious step. You must define your rules as what you can do with each noun, e. g. for a sheath that goes over a needle, you can remove it, discard it, replace it, put it somewhere, pick it up from somewhere.

You then create your list of instructions in PUT language. You compile it to check for consistency and lack of ambiguity. You can put both hidden and end user visible asserts e.g. "The stopcock should be closed at this point."

The PUT compiler would complain if you said beat two eggs, when you had not mentioned eggs in the ingredients list (noun definition section) of your brownies.

How might to implement this? Have a look at my IV Instructions. Try inventing a subset of PUT language to solve IV setup problems. A statement in put might look like this:

Close primary part:clamp.
Attach cap color:red to:(primary part:end)
Then implement a special version of the PUT language to teach people to make bread with various recipes using a bread marker. Then the generalisation patterns needed for a PUT language syntax will begin to emerge. Have your parser spit out the compiled instructions as Java code. The Java code can then be compiled and combined with some classes to generate printed instructions.

Then work at allowing new nouns, verbs and rules to be added elegantly rather than by tweaking tables or Java code.

This page is posted
on the web at:

Optional Replicator mirror
on local hard disk J:

Canadian Mind Products
Please the feedback from other visitors, or your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.

Your face IP:[]
You are visitor number