Projects / jGRASP IDE

jGRASP IDE

jGRASP integrates the Control Structure Diagram (CSD) seamlessly and unobtrusively into source-code editing for Java, C, C++, Objective-C, Ada, and VHDL. The CSD is a control flow and data structure diagram that fits into the space normally taken by indentation in source code. Its intention is to improve the readability of source code. The CSD also enables source code folding in a meaningful way, based on code structures. jGRASP provides lots of editing features, an integrated Java debugger, UML dependency diagrams for Java, configurable colors and font size, and click-to-error for compile and runtime (Java stack dumps) errors.

Tags
Licenses
Operating Systems
Implementation

Recent comments

26 Jan 2003 16:54 lbarowski

Re: jGRASP highly recommended
Thanks for the positive comments.

CTRL-INSERT etc. do work in the latest version.

Focus-follows-mouse can be turned off. This is just a keyboard-focus-follows-mouse within a virtual desktop (mouse clicks will still raise a window), which was all that was practical to implement in Java. In Windows ffm is off by default so as not to confuse those who have never worked in an ffm environment.

Finding the "exit point" of a "throw" would require some detailed semantic analysis, which we do not do in order to keep CSD generation fast.

It is true that if you plan to use jGRASP for editing with CSDs, you have to stick with our indentation format, but if you have the option to use the CSD all the time, it is an ideal format. We are planning to add a read-only CSD mode so the CSD can be used without danger for code reading.

The debugger is fairly basic now, but has good thread-control and value display. We are currently upgrading it, adding (nearly) full Java expression evaluation, ability to change values, a workbench-type mechanism, and other features.

21 Nov 2002 15:48 etymxris

jGRASP highly recommended
I had been looking for a code viewer to handle source code folding for some time. I found a few that cost two to four hundred dollars, and found a few crappy free ones. This one is free and it works incredibly well.

I wouldn't use it as an editor, but it's more designed as a source code viewer. Despite being based on java, the responsiveness is good. As it claims in the description, it allows meaningful code folding. This allows you to, for example, collapse a very large if statement or for loop that is not pertinent to the code you are viewing.

The structure of the diagramming itself is fairly well thought out. A double line is used to represent loops, and a dotted line represents branch statements. Catch blocks, function headers, and internal control structures are all differentiated visually. Return, break, and continue statements have a line which points to the control structure that is being escaped to.

I would recommend this to anyone trying to grasp large sections of code written by someone else. For example, I often have to wade through functions that are over a thousand lines in length and 7 levels deep in control structures. This program is very helpful for letting me cut away the details I don't need to see. For smaller projects, it probably isn't very useful. Editting is fine if you are starting out a project, or if you don't mind the files you work on being reformatted.

One caveat: editting files with this program will likely autoformat everything, causing you problems when using source safe.

Some nitpicks: Throw statements should work like return, break, and continue statements but they do not. My favorite means of copying, inserting, and cutting text do not work (CTRL-INSERT, SHIFT-INSERT, SHIFT-DELETE). There is no means to browse all open files easily (like TextPad has). You have to use the drop down menu from the menu bar. Mouse behavior is focus-follows-mouse, which I like, but others may not. Finally, the editor works fine, but you'll lose bits and pieces of the structural diagram as you edit. You'll have to regenerate the diagram periodically.

I have not yet evaluated the debugging environment. I would recommend using the latest version of jdk (1.4.1 as I write this) for using with this program.

Screenshot

Project Spotlight

OpenStack4j

A Fluent OpenStack client API for Java.

Screenshot

Project Spotlight

TurnKey TWiki Appliance

A TWiki appliance that is easy to use and lightweight.