|
Prograph is a visual, object-oriented, dataflow, multiparadigm programming language that uses iconic symbols to represent actions to be taken on data. Commercial Prograph software development environments such as Prograph Classic and Prograph CPX were available for the Apple Macintosh and Windows platforms for many years but were eventually withdrawn from the market in the late 1990s. Support for the Prograph language on Mac OS X has recently reappeared with the release of the Marten software development environment. Image File history File links Prograph CPX logo - courtesy MacTech File history Legend: (cur) = this is the current file, (del) = delete this old version, (rev) = revert to this old version. ...
Visual programming language (VPL) is any programming language that lets users specify programs by manipulating program elements graphically rather than by specifying them textually. ...
Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. ...
In computer programming, a dataflow language is a visual programming language that implements dataflow principles and architecture, and models a program, conceptually if not physically, as a directed graph of the data flowing between operations. ...
A multiparadigm programming language is a programming language that supports more than one programming paradigm. ...
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...
The first Macintosh computer, introduced in 1984, upgraded to a 512K Fat Mac. The Macintosh or Mac, is a line of personal computers designed, developed, manufactured, and marketed by Apple Computer. ...
Microsoft Windows is the name of several families of proprietary software operating systems by Microsoft. ...
History
Research on Prograph started at Acadia University in 1982 as a general investigation into dataflow languages, stimulated by a seminar on Functional Languages conducted by Michael Levin. Diagrams were used to clarify the discussion, leading to the insight: "since the diagrams are clearer than the code, why not make the diagrams themselves executable!" Thus Prograph - Programming in Graphics - was born as a visual dataflow language. This work was led by Dr. Tomasz Pietrzykowski, with Stan Matwin and Thomas Muldner co-authoring early papers. From 1983 to 1985, research prototypes were built on a Three Rivers PERQ graphics workstation (in Pascal, with the data visualized as fireballs moving down datalinks), and a VAX with a Tektronix terminal, and an experimental compiler was programmed in an IBM PC. This work was continued at Technical University of Nova Scotia by Pietrzykowski and Dr. Philip Cox, including a version done in Prolog. Acadia University is a university located in Wolfville, Nova Scotia, Canada. ...
Functional programming is a programming paradigm that conceives computation as the evaluation of mathematical functions and avoids state and mutable data. ...
PERQ, often referred to as the Three Rivers PERQ, was an influential computer workstation first released in 1979. ...
Sun SPARCstation 1+, 25mhz RISC processor from early 1990s A workstation, such as a Unix workstation, RISC workstation or engineering workstation, is a high-end desktop or deskside microcomputer designed for technical applications. ...
Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ...
VAX is a 32-bit computing architecture that supports an orthogonal instruction set (machine language) and virtual addressing (i. ...
Tektronix is a United States corporation that is currently a major presence in the test, measurement, and measuring industry. ...
International Business Machines Corporation (known as IBM or Big Blue; NYSE: IBM) is a multinational computer technology and consulting corporation headquartered in Armonk, New York, USA. The company is one of the few information technology companies with a continuous history dating back to the 19th century. ...
While being one of the first personal computers, the Altair 8800 was considered a mere toy due its lack of abilities. ...
In the early 1900s, at the request of the province of Nova Scotia, Dr. Frederick Sexton laid the plans for the current system and roles of Associated Universities in engineering education in Nova Scotia, Prince Edward Island, and New Brunswick. ...
Prolog is a logic programming language. ...
In 1985, work began on a commercialisable prototype on the Macintosh, the only widely available, low-priced computer with high-level graphics support available at the time. In early 1986, this prototype was taken over by The Gunkara Sun Systems (later renamed to TGS Systems) for commercialisation, TGS formerly being a consulting firm formed by Pietrzykowski at Acadia University. Working with Pietrzykowski and Cox, Terry Kilshaw hired and managed the original development team, with Jim Laskey as the lead developer. In 1987 Mark Szpakowski suggested the merger of object-orientation with visual dataflow, creating an "objectflow" system. After almost four years of development, the first commercial release, v1.2, was introduced at the OOPSLA conference in New Orleans in October 1989. This product won the 1989 MacUser Editor's Choice Award for Best Development Tool. Version 2.0, released in July 1990, added a compiler to the system. Acadia University is a university located in Wolfville, Nova Scotia, Canada. ...
OOPSLA (Object-Oriented Programming, Systems, Languages & Applications) is an annual ACM conference. ...
MacUser, 27 May 2005 MacUser is a fortnightly computer magazine published by Dennis Publishing Ltd. ...
TGS changed its name to Prograph International (PI) in 1990. Although sales were slow, development of a new version, Prograph CPX (Cross-Platform eXtensions) was undertaken in 1992, that was intended to build fully cross-platform applications. This version was released in 1993, and was immediately followed by development of a client-server application framework. Despite increasing sales, the company was unable to sustain operating costs, and following a failed financing attempt in late 1994, went into receivership in early 1995. As the receivership proceeded, the management and employees of PI formed a new company, Pictorius, which acquired the assets of PI. Shortly afterwards, development of a Windows version of Prograph CPX was begun. Although it was never formally released, versions of Windows Prograph were regularly made available to Prograph CPX customers, some of whom ported existing applications written in Macintosh Prograph, with varying degrees of success. After management changes at the new company, emphasis shifted from tools development to custom programming and web application development. In April 2002 the web development part of the company was acquired by the Paragon Technology Group of Bermuda and renamed Paragon Canada. The Pictorius name and rights to the Prograph source code were retained by McLean Watson Capital, a Toronto-based investments firm which had heavily funded Pictorius. A reference to Pictorius appeared for a time on the former's Portfolio page, but has since disappeared. The Windows version of CPX was later released for free use, and was available for some time for download from the remnants of the Pictorius website (link below). A group of Prograph users calling themselves The Open Prograph Initiative has existed since the late 1990s; formed initially with the goal of keeping Prograph viable in the face of OS advances by Apple and Microsoft, the group now also seeks to create a new open-source visual programming language to serve as Prograph's successor.
Description
Prograph objects. All images courtesy MacTech During the 1970s program complexity was growing considerably, but the tools used to write programs were generally similar to those used in the 1960s. This led to problems when working on larger projects, which would become so complex that even simple changes were difficult to fully understand. Considerable research into the problem led many to feel that the problem was that existing programming systems focused on the logic of the program, while in reality the function of a program was to manipulate data. If the data are to be manipulated, why is it not the "first class citizen" of the programming language? Working on that basis, a number of new programming systems evolved, including object-oriented programming and dataflow languages. Image File history File links Prograph object types - courtesy MacTech This is a screenshot of copyrighted computer software. ...
Image File history File links Prograph object types - courtesy MacTech This is a screenshot of copyrighted computer software. ...
Object-oriented programming (OOP) is a programming paradigm that uses objects to design applications and computer programs. ...
In computer programming, a dataflow language is a visual programming language that implements dataflow principles and architecture, and models a program, conceptually if not physically, as a directed graph of the data flowing between operations. ...
Prograph took the concept further, introducing a combination of object-oriented methodologies and a completely visual environment for programming. Objects are represented by hexagons with two sides, one containing the data fields, the other the methods that operate on them. Double-clicking on either side would open a window showing the details for that object, for instance, opening the variables side would show class variables at the top and instance variables below. Double-clicking the method side shows the methods implemented in this class, as well as those inherited from the superclass. When a method itself is double-clicked, it opens into another window displaying the logic.
Prograph database operation. Method implementation In Prograph a method is represented by a series of icons, each icon containing an instructions (or group of them). Within each method the flow of data is represented by lines in a directed graph. Data flows in the top of the diagram, passes through various instructions, and eventually flows back out the bottom (if there is any output). Image File history File links Prograph database operations - courtesy MacTech This is a screenshot of copyrighted Macintosh computer software. ...
Image File history File links Prograph database operations - courtesy MacTech This is a screenshot of copyrighted Macintosh computer software. ...
This article just presents the basic definitions. ...
Several features of the Prograph system are evident in this picture of a database sorting operation. The upper bar shows that this method, concurrent sort, is being passed in a single parameter, A Database Object. This object is then fed, via the lines, into several operations. Three of these extract a named index (indexA etc.) from the object using the getter operation (the unconnected getter output passes on the "whole" object), and then passes the extracted index to a sort operation. The output of these sort operations are then passed, along with a reference to the original database, to the final operation, update database.
Prograph operators and controls The bar at the bottom of the picture represents the outputs of this method, and in this case there are no connections to it and so this method does not return a value. Image File history File links Prograph operators and controls - courtesy MacTech This is a screenshot of copyrighted Macintosh computer software. ...
Image File history File links Prograph operators and controls - courtesy MacTech This is a screenshot of copyrighted Macintosh computer software. ...
In a dataflow language the operations can take place as soon as they have valid inputs for all of their connections. That means, in traditional terms, that each operation in this method could be carried out at the same time. In the database example, all of the sorts could take place at the same time if the computer were capable of supplying the data. Dataflow languages tend to be inherently concurrent, meaning they are capable of running on multiprocessor systems "naturally", one of the reasons that it garnered so much interest in the 1980s. Multiprocessing is traditionally known as the use of multiple concurrent processes in a system as opposed to a single process at any one instant. ...
Also note that although this is a method of some class, there is no self; if self is needed, it can be provided as an input or looked up. Loops and branches are constructed by modifying operations with annotations. For instance, a loop that calls the doit method on a list of input data is constructed by first dragging in the doit operator, then attaching the loop modifier and providing the list as the input to the loop. Another annotation, "injection", allows the method itself to be provided as an input, making Prograph a dynamic language to some degree. In computer science, a dynamic programming language is a kind of programming language in which programs can change their structure as they run: functions may be introduced or removed, new classes of objects may be created, new modules may appear. ...
Execution The integrated Prograph development and execution environment also allowed for visual debugging. The usual breakpoint and single-step mechanisms were supported. Each operation in a data-flow diagram was visually highlighted as it executed. A tooltip-like mechanism displayed data values when the mouse was held over a data-link when stopped in debug mode. Visual display of the execution stack allowed for both roll-back and roll-forward execution. For many users the visual execution aspects of the language were as important as its edit-time graphical facilities. The most important run-time debugging feature was the ability to change the code on the fly while debugging. This allowed for a truly unique development approach allowing bugs to be fixed while debugging without the need to recompile.
Critique Several problems with the Prograph system are also evident in this method implementation. Prograph code could be commented using labels. In initial versions, the majority of the included classes were unlabeled. It was often necessary to consult the documentation to determine the proper inputs to a method. This was largely addressed in subsequent versions, but the methods were never documented to the point that the comments explained how and why the methods worked. In computer programming, a comment is a programming language construct that provides a mechanism for embedding information in the source code that is (generally) ignored by compilers and interpreters but may be of use to people reading the program source, or other programming tools that process the source such as...
Prograph is based on the concept of using icons to represent operations. Yet many icons do not translate well into familiar programming terms, and in other cases some particularly obvious possibilities are not used. Consider the getter operators in the database method above; how does a rectangle with a notch in it imply 'get'? Since the images were often not obvious, they simply became one more type of jargon to learn, neither simpler nor more difficult than a text-based language. Wiring could not be routed to clean up diagrams. In this instance one, two of the paths cross because one of the wires from the input bar must flow to a certain (unlabeled, of course) input on the update operation. Typical program methods often turned into spaghetti code. Spaghetti code is a pejorative term for source code which has a complex and tangled control structure, especially one using many GOTOs, exceptions, threads, or other unstructured branching constructs. ...
Another problem was a profusion of windows. When moving around the Prograph workspace, the IDE generally required a new window to be opened to see the contents of methods.
Update The Prograph language is not dead. See (Marten) for an active implementation of Prograph.
See also Visual programming language (VPL) is any programming language that lets users specify programs by manipulating program elements graphically rather than by specifying them textually. ...
Spreadsheet 2000 was a spreadsheet program for Apple Macintosh computers, published by Casady and Greene, a distributer of many smaller Mac releases. ...
Screenshot of a spreadsheet made with OpenOffice. ...
LabVIEW (short for Laboratory Virtual Instrumentation Engineering Workbench) is a platform and development environment for a visual programming language from National Instruments. ...
External links - Pictorius - Pictorius's home page, no longer even having a DNS record. The Prograph downloads could for a time still be found at http://192.219.29.95/prograph.html, but this link now times out.
- Prograph CPX - A Tutorial - an excellent article on the system, dating to shortly after the original release of Prograph CPX
- Prograph - a short overview of the system
- The Open Prograph Initiative - Home page of the group interested in creating an open source version of Prograph
- Marten - Commercial and proprietary re-implementation of Prograph for Mac OS X
- Visual Programming with Prograph CPX - Textbook on Prograph CPX
|