CSE 341 -- Programming Languages,  Spring 1999

Project Topic Form.

Topics: Circle the letter of the category you have chosen.  Then underline any particular features or approaches within that description that you intend to implement.
 

  A. a visual language that permits the user to specify computations within some nontrivial set of possible computations.
The language can have a fairly small set of primitive operations (5 to 10), but the number of possible programs that could be written in it should be fairly large or better-yet,  essentially infinite.  You might consider adopting one of the standard VL paradigms such as executable flow charts, data-flow diagrams, arrays of agents, set of visual rules, or programming by demonstration (direct manipulation of data objects by the user).

  B. a server-based web service that accepts programs from the user and which analyzes and executes them in some interesting way.  For example, a program animation service allows the user to enter a small program into an HTML form and then submit it.  The system then analyzes or interprets the program and displays some kind of animation of the program.  For example if the program manipulates an array, then the elements of the array may appear on the web page and change colors or values to show what's going on in the program.  Another example might be one that accepts Lisp S-expressions and then displays them as linked data structures on the screen and finally shows how they are transformed by the operation specified by the user.

  C. an animation language.  Make up a simple language that an animator can use to create animations that run on a web page (e.g., an applet).  Consider using Lisp or Perl to translate the user's requirements or program into a sequence of animation commands for your applet.

  D. other topics.  Other topics are possible, but keep in mind the requirement that the project explore some new idea related to programming systems -- a new language or a new way of analyzing or interpreting programs.  Making your project web-based in some way and utilizing graphics are both encouraged.  Projects that involve implementing separate cooperating components in different languages, such as Lisp + Perl,  Java + Lisp, etc. are encouraged, too.

Your Title:  Give a short, descriptive title for your project. ______________________________________________

Your Description of the Project.  Add any details here that will give a clearer description of what you plan to create.
 
 
 
 
 

Team and Planned Roles.  Identify the members of your team and explain what part(s) of your system each member is responsible for.

                                                    Name                                                        Main Role

Team Member 1. _________________________________     ________________________________
 

Team Member 2. _________________________________     ________________________________
 

Team Member 3. _________________________________     ________________________________

Interfaces:  How will the components written by each team member couple together?  Identify each component interface and describe what sort of function calling, service calling, or file sharing will allow the communication across modules to take place?  Describe at least one and up to three interfaces.

Interface 1, between component _________________ and component _________________.
What types of information must move across this interface?
 
 

Interface 2, between component _________________ and component _________________.
What types of information must move across this interface?
 
 

Interface 3 between component _________________ and component _________________.
What types of information must move across this interface?