Your vision seems about the same as mine. We should let each noun be a hotspot, and a click on a cell of a noun could select that cell for detail in further processing. I'm hoping someone, or perhaps a committee, will want to design & code that GUI.

Henry Rich

On 12/28/2012 3:51 PM, bob therriault wrote:
Hey Henry,

I agree that the representation of J sentences could make a big difference to 
beginner understanding. I have been playing around with some of the 'boxes and 
arrows' for a while and would be interested in helping out. I posted some 
videos two years ago that show the direction that I was moving.

Visual J demo  http://www.youtube.com/watch?v=9IvgsM54cg0
Reflexive Adverb  https://www.youtube.com/watch?v=GEocFCvnUsc

The first is a more complete description of the visualization, and the second 
has a more refined look. I was working on a design that would show structure 
based on the user's interest. The left box magnifies the either in terms of 
visual detail or text information.

If you were to go web based, it may be worthwhile looking at SVG graphics (they 
can be scaled and areas of the graphic can have hotspots for information 
probing).

Let me know if you think that my skills (mostly visual with a bit of 
programming) could be a fit.

Cheers, bob


On 2012-12-28, at 10:26 AM, Henry Rich wrote:

I have written a grid-based application that displays the execution of a J 
sentence in a 2-D grid and allows you to poke around and see what happened.  I 
hope that this will speed up the learning curve for new J users.  It is a 
revolutionary way to view J execution.  J is one of the
few languages where such a display would work, and it might help users overcome 
the barrier of visualization.

The package is debug/dissect, downloaded from Package Manager.  It works only 
for J6, and that is why I am asking for a collaborator.  If it just had a 
better UI, with little boxes and arrows instead of a grid...

When you download the package, make sure you update your base library, which 
has updates needed for dissect.

Once you have loaded the package, you can try it on sentences.  Here is one 
from recent Forum traffic:

   20 5 0(*`%/"2@(,: (%:@* -.))@((,: , 1"1) % +/@[))10

clear, eh?  But maybe you'd like to see it in 2D:

   ds '20 5 0(*`%/"2@(,: (%:@* -.))@((,: , 1"1) % +/@[))10'

You can click on a cell to get more detail, or CTRL-click to get more detail 
for the cell and all its ancestors.  With detail, the shapes are shown, with a 
slash separating the shape from the frame.  When there is a modifier with a 
frame, you will get a 'selector' - a bright green box where you can enter the 
indexes of the cell you want to look at. Double-click the selector to edit it, 
and when you press ENTER the selected operands, and the corresponding result, 
will be displayed.

Individual verbs that have a frame can be inspected by clicking the verb; rank 
operators can be drilled into by clicking.  You will get selectors that you can 
use to go deeper.

If your sentence blew up, ds will show you what was happening just before the 
explosion.

   left =. 3 2;5 1 3;4 6
   right =. 3 2;4;,4
   left +&.> right
|length error
|   left    +&.>right

Where did it blow up?

   ds 'left +&.> right'

will take you right to the error.

This is half-finished, pre-alpha code.  I am releasing it because, as 
indispensable as grid has been for prototyping, I think dissect could be really 
great if freed from the formatting requirements of grid.  If the blocks were 
placed on the screen in pixel positions rather than grid cells, the layout 
would be more compact and more stable during inspection.

On J6, that would mean managing an isigraph.  As I understand it, J7 doesn't 
have isigraph controls, but it sounds like there are other graphics features 
that might do the job.  (The first step might be to get the grid version 
working on J7.)  So I am asking for someone to step up and write the screen 
interface for J7. This would involve designing the new look, and then 
translating my verbs that format the display (basically, I have one verb for 
each J modifier) and handling clicks.  I will be working on finishing the 
engine.  The screen-interface code that I am asking for is a small fraction of 
the total code for the project.

As of now, dissect handles verbs, nouns, and the structural modifiers:

@ @: & &: &. &.: " ~ ` hook fork

It also treats ] [ [: as flow control, and removes them from the display.

Missing are the computational modifiers / ;: ^: etc.  I need to handle them one 
by one: decide the display, decide what selections will be supported, then 
implement.  This is what I will be doing next (after I finish fixing display 
errors and other bugs).

Even in its skeletal form, dissect can make learning J easier.  I will be 
giving it to my students to try next semester.

Henry Rich
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to