Discussion questions from CS 7390 lecture
Date: 2/9/96
Presented by: John Stasko
Topic: Hybrid Systems 2
- In UWPI, to overcome the difficulty of data type inference in
a buggy program using the behavior pattern matching method, will the
name of the variables be another source of inference?
- In Lens, will it be helpful to provide more complex data display
mechanisms, such as stacks, queues, objects which can be wrapped into
the variables in the program?
- The animation/visualization capabilities provided by lens seem
to be useful for certain types of programs, but I'm not quite
convinced that it would be generally useful. Would it be possible to
build a system along the lines of Lens that would be directly applicable
to real workd software development?
- UWPI can only work well when wekk known ADTs are implemented and can be
recognized. Its extensibility seems to be limited to additional
commonly used structures that are nearly always implemented similarly.
Given this restriction, wouldn't it make sense to build a package
something like the Standard template Library (full of ADTs) that
would have visuali illsutration design incorporated into it?
- It seems that the biggest advantage of this system is the fact
that users don't have to program the algorithm illustrations. This
feature is very necessary for a debugging system. Would it be possible
to take the next step and provide a robust way of dealing with serious
programmer errors in order to make UWPI a useful debugging system?
- How important is it to have context when doing an algorithm
animation? I'm thinking of the Towers of Hanoi when I ask this: most
animations of it depict disks on poles being moved around. Wouldn't
it be just as effective to have 3 arrays, all depicted horizontally,
and illustrate the bars moving? It seems that thios would be much
easier to automate.
- Have any of the developers of the algorithm animation systems
that "develop their own animations" using the algorithm code, done
any studies to show how well these systems work at constructing an
animation? That is, other than just saying it works well.
- How can the UWPI system create animation when there are bugs in
the algorithm? It seems to me that the code would have to be bug-free
and implemented in a way that UWPI could understand.
- The Lens system works in connection with dbx. Automated tools
not asking for more coding are really useful. What effort, for which
result should be put in that direction, in opposition to effort to
display appropriate information?
- UWPI: Going from Prolog to Common Lisp is seen as an improvement.
Is Lisp really the ultimate programming language for this type of
application? I am not sure.
- UWPI seems to be targetted to "old" (legacy) code too much: it
seems that today programmers are more likely to use compiler support
for abstract data types than to use the FORTRAN-style coding (ie,
being stuck with just arrays and pointers). Do you think this approach
will be more or less limited to re-engineering, or is it more general?
- In choosing the operations to support in Lens, a bunch of XTango
programs were analyzed. Are we sure that the frequently used XTango
elements were frequently used because they are the most useful?
Perhaps it's just that these elements were the easiest to code?
- Lens: There's a lot of talk about direct manipulation but I
didn't see one good example of this. It seems to be misused at times:
"instantiate objects graphically through direct manipulation", but the
user has to type in the name of an object to display it.
- Isn't the limited variable name syntax a problem for Lens? For
example, you can't name any node in a tree (graph) unless you have
an explicit pointer to it. This implies extra programming which
really should not be necessary.
- Another problem is the lack of implicit layout. Suppose you have
an n node graph where n is determined at run-time. The programmer
would have to come up with some layout algorithm to visualize
the graph.
- Doesn't the limited programming constructs defeat the purpose of
UWPI? I thought the idea was to lessen the burden on the programmer
(illustrator) but a) there are no pointers or records, b) the language
is only a subset of Pascal, c) the compiler cannot possibly infer good
visual representations of complex algorithms and interpret the use and
meaning of all the data structures. This means that the code and
algorithms have to be greatly modified to conform to UWPI's limited
capabilities.