home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.sys.mac.oop.misc
- Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!saimiri.primate.wisc.edu!caen!batcomputer!munnari.oz.au!bruce.cs.monash.edu.au!tim
- From: tim@cs.monash.edu.au (Tim Shimmin)
- Subject: Re: trying to remember...
- Message-ID: <tim.722074104@bruce.cs.monash.edu.au>
- Sender: news@bruce.cs.monash.edu.au (USENET News System)
- Organization: Computer Science, Monash University, Australia
- References: <1992Nov17.162711.4166@umbc3.umbc.edu>
- Date: Wed, 18 Nov 1992 08:08:24 GMT
- Lines: 94
-
- gseidman@math14.math.umbc.edu (gseidman@math14.math.umbc.edu) writes:
- >I have been trying to remember what it was called, but there was a
- >programming utility (pro-something? I don't recall) reviewed in a
- >professional math journal.....
-
- Could you be meaning Prograph ?
- Prograph is an object-oriented language written using graphical
- icons and links.
-
- Object-oriented wise:
- - single inheritance
- - hierarchy displayed graphically as a tree
- - has a methods window and data window
- - it is not quite your typical object calling system:
- Normally one must specify the object first and then the message
- such as "object.message arguments".
- In prograph, you CAN do it that way but you can also just mention the
- class the method is in: "Class:message arguments" and this can
- be done anywhere and the arguments do not have to include an
- object from the "Class". I.e. it can be more like a call to a
- procedure in a module/package.
-
- Basic theme:
- - code is a graph with nodes as operators and arcs as data flows. Data
- flows in at the top thru all the nodes and out the bottom.
- This is the dataflow model where control flows by operations waiting for
- their inputs before outputting. Since program is represented by a graph
- structure it isn't clear in which order operations will actually proceed
- unless one hits the space-bar and the next node is hightlighted.
- However, operations can be explicitly ordered by attaching a special
- "synchro" link.
-
- Data types:
- - standard primitives char, int, string,...
- - list (like lisp) BUT no arrays
- - classes
- - access to Mac Types -> so can allocate dynamically
-
- Compatability with Mac:
- - it does this very well
- - support for all the system 7 stuff
- - uses standard Mac windows and Menus
-
- User Interface Programming:
- - quite good
- - interface objects are represented in simple class structure
- - has a good old graphical interface builder where one chooses the type
- of widgets one wants to place - this can be extended with the
- programmers own subclasses
-
- Speed:
- - when running the interpreter I found that it was quite reasonable
- except when I wrote some interactive graphic stuff and then it was a bit
- slow. I then compiled it all and the code was a lot faster.
- - the compiled code runs faster (surprise:-) and worked ok for me.
- However it compiles all the code in one hit because all the classes are
- in the one file - which makes compilation slow.
- - I did have trouble with saving my code/prographs. In an earlier
- version it could take ages to save my program ! With the newer version
- one can compact the code (graphics) and this makes things reasonable.
-
- Learning curve:
- - although I had done object oriented programming before (Think C &
- Smalltalk) it took me quite a while to get use to this style of
- programming. Handling conditionals (if then) is rather odd and takes a
- bit of thinking sometimes as it is non-conventional. Instead of if-then
- or case-stmt one tests a condition and decides whether to go on to the
- next case which is in another window - thus all alternatives are in
- separate windows !
- Once you get used to it by writing a few of your own designed programs
- and not just the tutorials - it's quite easy.
-
- Good features:
- - there are anotations for operation inputs which allow one to go thru
- an entire list, divide a list up depending on a boolean function, etc.
- - if one thinks a hunk of code should be abstracted into a produre then
- one just selects it all and issues a command - it will be stored in a
- procedure and all the code of nodes is now represented by just one node.
- This is very handy. The procedure can be set as just local or a class
- method.
- - seeing all the code,classes,GUI and heirarchy in graphic form is
- rather neat !
-
- Contact:
- - TGS Systems
- 2745 Dutch Village Road, Suite 200
- Halifax, Nova Scotia, Canada B3L 4G7
-
- Any specific questions that you have, I'd be happy to answer.
- --
- ------------------------------------------------------------------------
- Name: Tim Shimmin
- Net Address: tim@bruce.cs.monash.edu.au
- ------------------------------------------------------------------------
-