The Prograph Language
Prograph is a functional language. It's data flow can be compared to Scheme's (or any other functional language) with the primary difference that the programmer does not have to keep track of parenthesis. Prograph use is simple: data is represented with lines and methods are various boxes. Each box contains nodes for inputs (terminals) and outputs (roots). Prograph methods have more than just variable arity; they also have output arity. The methods have an I->O mapping from one or more inputs (I) to one or more outputs (O). The data in Prograph is passed by value. This enables several methods the use of a single output from another method. These receiving methods can then be run in parallel without one method altering the data in another. This feature will find its usefulness if ever the von Neumann model for parallel processing is upgraded to its more visionary counterparts. Heretofore, method inputs and outputs have been referred to as data as opposed to variables. Strictly speaking, Prograph does not have variables. Inputs and outputs are named only as a convenience to the programmer. A consequences of this is lower overhead for a method's environment (if there are no variables, there is no need for an environment). Scoping, in this context, becomes irrelevant. Object-Oriented Programming comes naturally with Prograph's modularity. A class is defined just as readily as a persistent, and is still visually expressive. A class contains methods and variables. In this case, variables are simply persistents with another name. Inheritance is easily shown via a line from the parent class to the child class. Learning to use Prograph is time consuming. After getting acquainted with the graphical nature of the language, the programmer must then prepare for the challenge associated with learning the variety of constructs. On top of that, some universal constructs (such as conditionals) have their own Prograph version that requires attention. The conditional, for example, has 16 different possible implementations. The greatest disadvantage of programming in Prograph is the challenge of all Visual Programming Languages: spaghetti code. For a simple program with 15 methods, each with three inputs and three outputs, the potential for readability loss is great. This difficulty is overcome with experience. In practice, Prograph is quite readable (perhaps “viewable” would be more descriptive). In Prograph there exits 9 basic constructs, 6 external constructs, 4 main constructs, and 10 control constructs. These constructs, in addition to the other symbols and cases, provide the ability to program as in any other language. The four main constructs are named: section, universal, class, and persistent. These are the overall constructs that allow for creation of programs. Sections consist of universals, classes, and persistents. Universals are methods (i.e. functions, procedures, subprograms). Classes, as in other languages, are data structures that allow for the combining of data and the methods that operate on that data. Classes consist of methods and fields. The class methods and fields are essentially the same as universals and persistents respectively. Persistents are most similar to global variables in most other languages; however their data persists from run-time to run-time such that the data retains its value until changed or the entire process is destroyed.
Like all languages, Prograph has its positive and negative aspects. It provides an easy way to depict programs following a flow model, and the translation from flow chart to code is very simple, as code is just as graphical as the flow chart. One of the biggest disadvantages of all visual languages is the longer than normal learning curve that a programmer must go through before becoming proficient in the language. Also to Prograph specifically, it is a dead language in that it is not widely used and as a language is not being developed. However Prograph, with other visual languages, provide for a new dimension to traditional programming not found elsewhere.
For more info, visit http://students.cs.byu.edu/~dheise/cs330/Prograph_final_report.pdf
BLOGGER:
Shara Barcelo
200912035
This entry was posted
on 5:42 AM
and is filed under
All about the Programming Language Prograph
.
You can leave a response
and follow any responses to this entry through the
Mag-subscribe sa:
I-post ang Mga Komento (Atom)
.