Visualizing programs - was: bef-euro 
Author Message
 Visualizing programs - was: bef-euro

    I do not know if UML is relevant or how useful it  is but it seems to
be a standard being developed to do this. The following links  are not in
any particular order.     Practical Object-Oriented Design with
UML http://www.*-*-*.com/ ~priestm/pooduml   UML programming information -
UML Zone http://www.*-*-*.com/   UML World http://www.*-*-*.com/   Sinan
Si Alhir - What is the Unified Modeling  Language
(UML)? http://www.*-*-*.com/ ~salhir/whatistheuml.html  
UML http://www.*-*-*.com/ ; UMLet http://www.*-*-*.com/
   ----- Original Message -----    From:    Bob Gorman       To:

Subject: Re: [LogoForum] Visualizing    programs - was: bef-euro   At 01:27

general:Watching the mind in slow motion can contribute to    inner ear
imbalances and excess stomach acid being produced. :-)
Hey, Bob!> It also helps me      visualize code better.Yes, I have exactly
that problem at the moment,      because whilerestructuringthe core of my
personal version of UCBLogo      I really have difficulties tofind the
right structures for the classes      I`m constructing from theroots.
This is exactly my    challenge as well. I'm usually looking for the
structure of a program and this    is often much more difficult than
looking for say a counter or a buffer size.    The reason it is difficult
is there are few tools that do it at all, &    less that do it well!
First of all I had to remove about 1200      compiler - and 3xx linker
errorsafter introducing the central data      classes.But now the problem
is to find the proper structure for the      high-levelclasses.
Both call trees for code &    hierarchical decomposition for data
structures is what we need but difficult    to find with most tools. On
almost every language I've learned one of my first    projects is a
structure analyzer, but often called by different names like    de{*filter*},
cross-referencer, pretty printer etc.
Therefore I`ve searched the web for a free c++      source tree viewer,
butdidn`t find one that I liked, and so started to      write one myself.
Me too. I've done it so many times that now    I want a generic or template
structure so I can load it with info about    various languages and user
preferences AND have it continuously learn more!
Writing asimple parser for c seems to be so      much easier than
restructuringUCBLogo ina adaquate way. If I only      already had it! Then
I simply would print it on4x6 sheets of papers and      scribble out the
main structure in the cobwebedtree with some color      markers.
For languages in the lisp/logo family that like to    evaluate everything,
& even evaluate recursively, the parser needs to be    that much smarter.
Fortunately, Logo has the recursive power to keep up with    this
challenge. Unfortunately, while computer speeds, memory sizes,    and
software languages keep growing, the human mind specifically the
"conscious mind" is stuck with 7 +/- 2 elements to focus on at a time. We
can    switch which 7, even rapidly like hardware registers,  but we can't
make    it 14!
>What happens in your brains, when your eyes      see:>op quotient round
>product 100 FB.euro :n 100 ?humm, I see a      Pascal-assignment :=
>(because I`v used it so long)
Precisely,    your mind's 1st step is to try and create meaning, by 1st
seeing if it will    fit an existing structure (Piaget's assimilation) and
if no structure can be    found create a new one (Piaget's accommodation).
All this, while your mind is    doing the first step of Tokenization! Which
groups of letters &    punctuation marks form a single token and which make
2 or more tokens. For    example, FB.euro, in spite of its capitals and the
period in the middle    represents one only thing - the Name of a
procedure. However, :n much small    & visually compact really stands for 2
things "n" the name of a variable    (noun-ish) and ":" which represents
how to access it (verb-ish). In    addition, "quotient" has one meaning in
mathematics, dividing, and a different    one in Logo namely a procedure
which needs 2 inputs. "round" & "product"    are also multi-context
symbols. With all this work your mind might need a    break, I know mine
fraction with 100*???(don`t know exactly, out      of focus) in
numeratorand 100 in the denominator.
"out of    focus" indicates you are, like me, a strong visualizer.
But I have to think, when I see op,      becauseI`mnot used to that
abbreviation that too much looks like oop      or up.
Exactly, op requires a translation activity, using up    one of those
precious 7 focus items.if you translate op --> output,    that focus item
will be freed up.if however, you translate op --> oop    that focus item
will still be busy wondering if this is also a context switch.
When Iconcentrate longer on this thingy all      symbols seem to exchange
places,rather nuts, isn`t it?
No,    a rather standard dyslexic response, which I do all the time, both
while    reading and writing. Just this far into this email I've made &
fixed 8    letter reversals. A really great book for understanding our own
and others    mental activity is "The Gift of Dyslexia" - by Ron Davis
(revised edition).    Ron, a dyslexic himself, discovered, after years of
watching his own mind,    that when a 3-D thinker hits a confusing thing,
idea, person, etc. we go into    a 3-D circle around it, like a helicopter
ride, in search of a clearer    meaning. This is a gift, most often,
enabling creative new viewpoints on    familiar objects. However, letters,
numbers & punctuation are strictly    2-D, & strange things happen when you
look at them from behind or even    upside down! Eg. p = q = b = d
P.S.: As I`ve been concentrating on the UCBL      core I haven`t worked on
thesearch engine since your mail (btw, Thanks      for the Guidelines!-),
but Iwillsoon, when I`m again getting too      frustrated with the
interpreter, whichisvery likely to happen from      time to time.
Don't worry about the help search engine. I'm    collecting my thoughts &
ramblings on it & will send them in a    bit.
But for the file you`ve mentioned to miss,      could it be my
syntaxhighlighting ini file for Editeur? Therein I`ve      manually grouped
thekeywords into the categorieskeywords1: important      and central,
keywords2: primitives, keywords3:libraryfunctions. It`s      in the Yahoo
logo directory and attached.
Yes that was the    file! Thanks for the name and how you built it.To
attempt to    understand, (build an accurate mental model) of new code, I
often go in with a    text editor, and replace names with something more
meaningful (i.e.easier to    read, because it causes my brain 1 less table
lookup to translate). However,    since names may be part of longer
strings, simple text replacement is    difficult. In the above case (oop
code from before, copied at bottom) if I    want to replace ":&o" with
":&object", I could try replacing "o" with    "object", however, "o" also
appears in many other names!!!!This was    one of my strong driving forces
for building a Semantic Parser for    Logo. I want to be able to
say:Replace variable o with objectReplace    procedure o with
outlineReplace plist o with orangeetc. It    also makes a much richer cross
reference facility possible,and the ability    to do global crefs across
files & directories. For smart debugging,    and crystal clear tutorials,
it can distinguish between when a variable is    read vs written, etc.Just
got a great idea. I've had it before,    many times, but didn't pursue it
cause I hate C & C++, which is what most    compiler/interpreters are
written in. But... The knowledge I want, such as    which symbols are
variables, procedures, keywords, user defined words,    expressions, their
scope, when & how often they are read or written, etc.    are all known to
the compiler! It has to know them to do the "eval". It builds    up symbol
tables, a parse tree etc. but then they all go away when the    compiler
exits!!!  Since you are already deep inside the code and    right by the
evaluator, if you could just (easy for me to say) dump those    tables &
structures to an Ascii file say filename.str (for structure) we    could
build a whole better class of programming editors.With direct    access to
a program's structure, the entire class of spelling errors can go
away!Short cryptic symbols can become longer descriptive strings, The
program's structure can be analyzed for structural bugs, one of the hardest
type to find, & we can eventually get away from the current paradigm of
writing "source" code with a text editor, only to be scrutinized by a
compiler, which then tells us we made a variety of spelling, syntax, scope
errors etc. (but often not saying where :-( . We can turn the black box of
language compilers into a translucent box, ushering in an age of far less
frustrations for thousands of programmers, and programmer to be!If
you're interested, let me know, & I'll ship you the work I've done on
creating the knowledge structures to hold the semantic info, and the
learning    architecture so this new program can learn, by itself, from day
one!BobP.S.Code referred to:However, the code itself    is, to me,
virtually unreadable:--------TO addpropl :&o :&p    :&v[:&prop gproph :&o
:&p]if emptyp :&v [stop]if    listp :&v [addpropl :&o :&p first :&v
addpropl :&o    :&p bf :&v stop]if wordp :&prop[make "&prop (list
:&prop)]if memberp :&v :&prop [stop]pprop :&o :&p    lput :&v
:&propEND-----------------"To create    New Answers;  you must ask New
Questions."- Bob Gorman< http://www.*-*-*.com/
eudora="autourl"> http://www.*-*-*.com/ To unsubscribe from
  this group, send an email

  archived at: http://www.*-*-*.com/
  use of Yahoo! Groups is subject to the Yahoo! Terms of Service.

To unsubscribe from this group, send an email to:

LogoForum messages are archived at:
< http://www.*-*-*.com/ ;

  Your use of Yahoo! Groups is subject to the
< http://www.*-*-*.com/ ; Yahoo! Terms of Service.

Tue, 17 Feb 2004 20:30:07 GMT  
 [ 1 post ] 

 Relevant Pages 

1. Visualizing programs - was: bef-euro

2. Visualizing programs - was: bef-euro

3. bef-euro

4. Special EURO Investor update with FREE EURO.CLZAC

5. I am not deaf, but am I mute?

6. I am new to programming

7. I am going to start assembly programming

8. I am new to Assembly language Programming.

9. Am I programming in Python mode?

10. Visualizing multi-dimensional arrays

11. Visualize mouseklick on listbox header

12. Free tools to visualize structure of Eiffel 3 sources


Powered by phpBB® Forum Software