Video Lessons

Along with providing tutorial videos, we are starting to create a video course in the Prograph language and the use of the Marten IDE. We are planning additional lessons, so look for more videos soon.

The initial lesson, "Lesson Zero", illustrates how to install the Marten integrated development environment (IDE) on your Mac after downloading it from the Andescotia website. This lesson shows you where to place the Marten libraries and application frameworks in the appropriate folders on your system. In addition, the lesson also demonstrates the creation of a simple "Hello World" application.
Prograph Lesson 00

The first actual lesson in the Prograph language starts with a demonstration of an actual industrial application created using Marten and written (if we may use the phrase) in Prograph. Prograph and Marten are not toy or demonstration languages and software. They are meant to allow professional developers to create professional applications for the Mac OS X and soon, the Windows platforms. After the demonstration, the lesson moves to a discussion of the various kinds of code operations that are supported and available in the Prograph language. Among the operations discussed are the Constant and Match operations, the Persistent and Instance operations, the Get and Set operations, the Input and Output operations, and finally the Method and Local operations. An example of a Primitive operation was provided in Lesson 00. The various External operations (external constant, external match, external get, external set, and external procedure) are not discussed in this lesson.
Prograph Lesson 01

The second lesson in Prograph discusses methods and illustrates the External operations. Prograph categorizes methods as Universal or Class methods. When Class methods are placed as operations in a case, they may be executed in three different fashions. The most common is as a "data driven" operation but they can also be executed as a "name driven" operation or a "context driven" operation. Of those three types, Data driven and context driven method operations are illustrated in this lesson.
Prograph Lesson 02

The third Prograph lesson starts with a discussion of the "context driven" method operation for a Class method. Since the most common use of a "context driven" method operation is in conjunction with the "super" control annotation, the discussion naturally moves on to control annotations and how the Next, Continue, Terminate, and Fail control annotations work. Several examples are demonstrated in the debugger. The Finish control annotation is not discussed in this lesson.
Prograph Lesson 03

The fourth Prograph lesson picks up where Lesson 03 left off, which was the discussion of the Finish control annotation. To discuss the Finish annotation, Repeat annotations for methods and locals are discussed along with List and Loop terminals and Loop roots. Basically, how to get operations to repeat and consequently execute multiple times. Examples include the use of lists, loops, and repeats to modify the integer addition "++" primitive to compute the sum of all integers in a list. That example is expanded upon by enclosing the "++" operation in a repeating local that enables the summing to be finished (using a Finish control annotation on the Output Bar operation) should the list contain a NULL element.
Prograph Lesson 04

This next lesson illustrates the use of the inject terminal. The inject terminal provides a way for an operation to receive "meta data" in the form of the operation text. For example, an inject terminal into an Instance operation allows you to create an instance of a class specified at runtime. This is done by supplying the name of the class to the inject terminal. An example of using an inject terminal into the Evaluate operation leads to a discussion of the uses of that particular type of operation in evaluating algebraic expressions. Finally, examples of inject terminals into external procedures start a general discussion of external operations such as external get and set operations along with external procedures. The lesson finishes with an illustration of two particular Cocoa external procedures and how they provide for the execution of a Cocoa program.
Prograph Lesson 05

In this lesson we take a different tack. We illustrate how to create a "Tool" method, which is code that you write and can call from the Marten IDE to perform a useful function. One use of a Tool method is to create a test of some sort, perhaps a regression test of important but fragile code. In this example, we create a "documentation" tool that allows the user to read and write documentation for any entity (class, method, or persistent) in their project. As we code up this tool, we illustrate the very useful refactoring commands: "Operations To Local" and "Local To Method". In addition, we discuss various primitives along with the "Create Accessor Methods", "Move To Section", "Reveal Container", "Tidy Operations", and other commands.
Prograph Lesson 06