Article View: comp.sys.mac.oop.misc
Article #34Re: trying to remember...
From: Tim Shimmin
Date: Wed, 18 Nov 1992 08:08
Date: Wed, 18 Nov 1992 08:08
94 lines
4742 bytes
4742 bytes
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
------------------------------------------------------------------------
Technical Details
Message-ID:
<tim.722074104@bruce.cs.monash.edu.au>Path:
arc1-ca.pugleaf.net!sparky!uunet!charon.amdahl.com!pacbell.com!ames!saimiri.primate.wisc.edu!caen!batcomputer!munnari.oz.au!bruce.cs.monash.edu.au!timReferences:
<1992Nov17.162711.4166@umbc3.umbc.edu>Show Full Headers
Complete Article Headers
Newsgroups: comp.sys.mac.oop.misc Path: arc1-ca.pugleaf.net!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