Programming Without Coding Technology (PWCT) Environment

25
Programming Without Coding Technology (PWCT) Environment Reference Table of Contents Introduction Getting Started PWCT Features - Visual Programming PWCT Features - Practical Editor PWCT Features - Programming Paradigm PWCT Features - Compatable PWCT Features - Programming Scope PWCT Features - Framework and Extension PWCT Features - Operating System PWCT Features - More Many Tutorials and Samples PWCT Environment and the Goal Designer Menubar Select The Active Visual Programming Language Server Units Window Search In The Server Units New File Window New Template Components Browser Interaction Using Transporter Form Designer Set Steps Colors VPL Compiler The Time Machine Search and Replace in the Steps Tree Interaction Designer Transporter Designer PWCT Environment and the Goal Designer When we run PWCT, we see the next window

Transcript of Programming Without Coding Technology (PWCT) Environment

Page 1: Programming Without Coding Technology (PWCT) Environment

Programming Without Coding

Technology (PWCT)

Environment Reference

Table of Contents

Introduction

Getting Started

PWCT Features - Visual Programming

PWCT Features - Practical Editor

PWCT Features - Programming Paradigm

PWCT Features - Compatable

PWCT Features - Programming Scope

PWCT Features - Framework and Extension

PWCT Features - Operating System

PWCT Features - More

Many Tutorials and Samples

PWCT Environment and the Goal Designer

Menubar

Select The Active Visual Programming Language

Server Units Window

Search In The Server Units

New File Window

New Template

Components Browser

Interaction Using Transporter

Form Designer

Set Steps Colors

VPL Compiler

The Time Machine

Search and Replace in the Steps Tree

Interaction Designer

Transporter Designer

PWCT Environment and the Goal

Designer

When we run PWCT, we see the next window

Page 2: Programming Without Coding Technology (PWCT) Environment

The next table explain the window items

Index Description

1 Window Title and the active visual source file name, Start.SSF

2 Menubar

3 Toolbar

4 Main windows (Server units window, Goal Designer, Transporter Designer and

Interaction Designer)

5 Statusbar

6 Button to open the Log Window

7 Child window title (Goal Designer)

8 Child window (Goal Designer) buttons - Group (1)

9 Child window (Goal Designer) buttons - Group (2)

10 Component Name and Domain Tree of the selected step

11 The Steps Tree

Menubar

Menu Description

Page 3: Programming Without Coding Technology (PWCT) Environment

From this menu, you can create new files,

open files, save file content and close files.

Also you can close PWCT

If the Goal Designer is the active window

then these options will work with *.SSF

files

If the Transporter Designer is the active

window then these options will work with

*.TRF files

If the Interaction Designer is the active

window then these options will work with

*.IDF files

If the Interaction Pages Generator is the

active window then these options will

work with *.ISF files

From this menu, you can cut, copy and

paste any text

If the Goal Designer is the active window

then the cut,copy & paste options can work

on the steps in the Steps Tree

Also you can use the search, to find any

item the data unit, code unit, veto unit or

goal unit

Page 4: Programming Without Coding Technology (PWCT) Environment

From this menu, you can create, edit and

modify items in the Data Unit

The Data Unit can be used to represent the

application data structure (Optional)

The Electron can be a Variable, Reference

or Data

The SubShell is a Group of Electrons

You can deal with the SubShell as an

Array of Items, Stack or Queue

The Shell is an array of SubShells

The Atom is an array of Shells

The Vessel is an array of Atoms

The Reaction is a filter to the Atoms and

Vessels based on Shells and SubShells

names

You can deal with the SubShell as Client-

Server data structure When you load

SubShell, the Electrons in this SubShell

that are defined as variables will be ready

for use as variables defined in the local

scope

You can read and modify the values of

these variables

You can upload the values to the SubShell

after modification (optional)

You are free to determine the Shell Name

You can use common names like

K,L,M,N,O,P and Q

You are free to determine the SubShell

Name

You can use common names like S,P,D

and F

You can use Two SubShells as Virtual

Data File The first SubShell will define the

Virtual Data File structure The second

SubShell will contains the virtual file data

Page 5: Programming Without Coding Technology (PWCT) Environment

From this menu you can create, modify

and delete Circuits, Branches &

Resistances

The Circuit is a group of Branches

The Branch is a group of Resistances

The Resistance is a Block of code under

common name

You can consider the resistance as a

procedure, function or method

The code unit can be used to represent the

Event-Loop in event-driven application

When the loop starts, Circuits are executed

You can stop a circuit using the circuit

switch

You can stop a branch using the branch

switch

You enable the circuit or the branch again

using the circuit switch or the branch

switch

Executing Circuits is optional and this

called "Server FireOn"

Instead of executing the circuits, you can

call only the main resistance

The veto unit is used to control the

communication between Servers

From this menu you can create, modify

and delete a Veto, Channel or Connection

The veto is a message that can be recevied

by the server from another server

The channel is a buffer for vetos

(messages) and Data received or sent from

the server

The connection is used to connect to

another server

When a server send a connection request to

another server, the receiver can accept or

reject the request

When there is a connection between two

servers, they can exchange vetos and data

From this menu you can mange the

Domain Tree

You can install,reinstall and uninstall new

components (*.TRF files)

Page 6: Programming Without Coding Technology (PWCT) Environment

From this menu you can manage the Goals

You can create, modify and delete the

Goals

The Goal override a resistance in the Code

Unit

We determine the goal function using the

Goal Designer

We can use the Goal Viewer to work on

more than one step at the same time

We can use the Code Extractor

Application to get the Steps Tree as Text

File and to get the generated source code

of one or more of goals

From this menu we can create new

components

The Inteaction pages generator is used to

generate interaction file and transporter file

that link to the interaction page

The interaction page is a data-entry form

that will be used to enter the data required

to the component

The Transporter (Component) control the

process of code generation and visual

representation generation (steps tree)

The Interaction Designer is used to design

the interaction files (*.IDF)

The Transporter Designer is used to design

the transporter files (*.TRF)

The Interaction Pages Generator work on

(*.ISF) files

From this menu we can create, modify and

install package files (*.PAK)

The package file is a copy from the

Domain Tree

The idea is to save the domain tree to a file

Then you can restore the domain tree or

merge it to another domain tree

The package file doesn't contain the

components content, Only the domain tree

structure, component names and

component file names.

Page 7: Programming Without Coding Technology (PWCT) Environment

From this menu you can Run Supernova

programs (*.NOVA)

And you can open the Supernova

documentation

Supernova is a simple scripting

programming language developed using

HarbourPWCT

From this menu, you can run the Notepad,

Calculator and the Paint programs

From the Help menu you can open PWCT

website, run the Samples/Tutorials/Movies

manager

Also you can open PWCT Page and

PWCT Group on Facebook

You can go to PWCT Blog to know what

is new

You can go to PWCT Forum to post

questions, feature request and bug report.

You can go to the online documentation to

see the tutorials online and download

samples You can go to PWCT Offer for

Arab to find many movies to learn PWCT

in Arabic language

Select the Active Visual Programming

Language

From this combobox you can change the active Visual Programming Language

HarbourPWCT : Visual language generate the source code in the Harbour language

SupernovaPWCT : Visual language generate the source code in the Supernova language

CPWCT : Visual language generate the source code in the C language

C#PWCT : Visual language generate the source code in the C# language

PythonPWCT : Visual language generate the source code in the Python language

WebPWCT (Under development ) : Visual language generate the source code in HTML,

CSS, JS & PHP.

Page 8: Programming Without Coding Technology (PWCT) Environment

Server Units Window

Using HarbourPWCT, our application is a Server

Using the Server Units Window, we can mange the Server Units

We have a combobox to select any item in any unit

We have the Units Tree contains four units (Data, Code, Veto & Goal).

At the left side we have buttons to Add, Edit, Delete, Move Up, Move Down & Search

We have four tabs (Details, Code, Compile & Info).

Inside the details tab we see the server name, here is Server1

The program can get parameters using the command line

These parameters are stored in variables SP1, SP2, SP3, SP4, SP5, SP6, SP7 & SP8

You can change this line to determine the number of parameters and the variables names

Insilde the details tab we have four sub tabs (Data Unit, Code Unit, Veto Unit & Goal

Unit)

From these sub tabs we get information and statistics

We can know the number of Atoms, Shells, SubShells, Vessels & Reactions in the data

unit

We can know the number of Circuits, Branches & Resistances in the Code Unit

We can know the number of Connection, channels & vetos in the veto unit

We can know the number of goals in the Goal Unit.

Inside the code tab we can write the resistance code

Inside the code unit, we have a group of circuits

Page 9: Programming Without Coding Technology (PWCT) Environment

Each circuit may contains a group of branches and each branch may contains a group of

resistances

The resistance is a block of code under the resistance name

When we call a resistance (Execute this block of code) we type Call Resistance

Circuits\CircuitName\BrachName\ResistanceName

There is no need to write the resistance code by hand

The resistance code can be replaced by a goal from the Goal Unit

From the Compile tab we have a group of options that control the type of the visual

source

At first we can select the user interface type, we have Console & GUI options

We have a checkbox carry the name "Server Extension"

the default status of this checkbox is FALSE (Not active)

This means that the visual source is a complete application or the main visual source file

In this case when we press CTRL+R, we expect the result to be the application during the

runtime

If this checkbox is enabled/active (True)

In this case the visual source will be sub part of the program (not complete application

and not the main visual source file).

In this case when we press CTRL+R , we get only the generated source code file

Later the generated source code file can be linked to another visual source file

The generated source code file may contains Functions/Procedures/Classes that can be

used by another visual source file

Also these Functions/Procedures/Classes may be a library that will be shared with more

than one program.

We have two options to run the application

The first option is "Call Main Resistance"

In this case at the application startup, the main resistance will be executed

The resistance is a block of code

We can write this code or override it using a goal then use the Goal Designer to create the

application using Visual Programming

The Second option is "Server FireOn"

In this case the circuits will be executed one by one

Executing a circuit means executing the circuit branches

Executing a branch means executing the branch resistances

Before executing a circuit the circuit switch must be ON

Before executing a branch; the branch switch must be ON.

Page 10: Programming Without Coding Technology (PWCT) Environment

We can change the switch status of the Circuit or the Branch in the Design time or in the

Runtime.

We have three buttons

The button "Generate" will generate the source code file

The button "Build" will generate the source code file then build the application

The button "Run" will generate the source code, build the application then will run the

application.

In the Info tab we have an editbox where we can write any comments

Search In The Server Units

From the Menubar, Edit Menu we can get the Search window

Using this window we can find items in data, code, veto and goal units

Page 11: Programming Without Coding Technology (PWCT) Environment

New File Window

When we are using HarbourPWCT, and the Goal Designer is the active window then we

create new file from the toolbar, menubar or by pressing CTRL+N we get the next

window

From this window we can select a template to use it in create our application

We can use templates to create Console/GUI applications by writing the code (Resistance

Code)

Or we can create our Console/GUI application without coding using the Goal Designer

Page 12: Programming Without Coding Technology (PWCT) Environment

Also we have other templates to quickly create database applications using Object

Oriented Programming Paradigm and ADO (ActiveX Data Object)

After selecting the template we can Press ENTER, Double Click the item or click on the

"create" button

We have two buttons "+" and "-" to add and remove templates from the list

New Template

From this window we can define new template and add it to the templates list that

appears when we create new file

All what we need is to determine the template name and the template file.

We can write the file name using the textbox or we can select the file using the file

browser window by clicking on the button next to the filename textbox

Components Browser

Using the Components Browser, we can select a component to use it for generating steps

inside the steps tree

We have the Domain Tree, at first we select the domain, then from the components list

that are related to the selected domain; we can select the component

We can quickly find a component using a search process by the component name

Once we write the first letters in the component name, the interactive search can search

and select the component

To use the selected component, you can press ENTER, Double Click the component

name or click on the "OK" button

To cancel the process, you can click on the "Cancel" button or press "ESC".

Page 13: Programming Without Coding Technology (PWCT) Environment

Interaction using Transporter

Using the "Interaction using Transporter" window, we can enter the data to the

interaction pages "data-entry forms"

Once we enter the data we can click "OK" or press CTRL+W to end the interaction

process and see the generated steps in the steps tree

We can click on "Again" button or press CTRL+A to use the same component for

another time

The component may use more than one interaction page, in this case we can move

between the pages using buttons or using the pages combobox

When we enter the data using the textbox, we can use the mouse right click to get a

shourtcut menu; this menu will provide options that help in entering the data like select

color, font, object, etc.

Page 14: Programming Without Coding Technology (PWCT) Environment

Form Designer

From the Goal Designer window we can open the Form Designer window using the Form

Designer button or by pressing CTRL+F

Inside the steps tree we may have more than one window, in this case we will get a list of

windows to select a one before opening the form designer

If we opened the form designer while the steps of a window is selected, this window will

be opened directly

Using the form designer we can design the user interface of our programs

We can use the button "Add Control" to add new controls quickly to the window

We can double click a control to open the interaction page of the component

We can open the interaction page also by clicking on the "Modify" button.

Using the form designer we can use the keyboard or the mouse to move or resize one or

more of controls

We can set the font, text color and back color for one or more of controls

We have many options that help in the design like Align, Size, Move, Spacing and

Resize.

After modifying the user interface we can click "Save" or "Cancel"

Page 15: Programming Without Coding Technology (PWCT) Environment

Set Steps Colors

From the Goal Designer window we can open the Steps Colors window by clicking on

the "Steps Colors" button

Using the Steps Colors window, we can select the step color based on the step type

Also we have a list of styles where we can quickly select a style and use it

One important feature here is that we can hide some steps based on the step type

Using this feature we can reduce the number of the steps based on what we are doing

For example for reading the steps tree, we can hide steps of type "Generated Leaf"

VPL Compiler

Page 16: Programming Without Coding Technology (PWCT) Environment

From the Goal Desinger window we can run the VPL (Visual Programming Language)

Compiler by clicking on the "VPL Compiler" button.

Using the VPL compiler we can detect the errors in the visual source

These errors could happen when we work on the steps tree while the Syntax Directed

Editor is OFF

Also at the end of compiling the visual source, we get the number of Interactions, Steps

and Errors.

The next list contains the errors that can be detected by the VPL Compiler

Error Message

Error : Step ( "Step Name" ) Enable/Ignore status is not correct

Error : Step ( "Step Name" ) is not expected to be in this order

Error : Step ( "Step Name" ) order is not correct

Error : Step ( "Step Name" ) Contains Bad Substep

Error : Step ( "Step Name" ) is duplicated

Error : Step ( "Step Name" ) Parent is not correct

The Time Machine

Inside the Goal Designer window, we have the Time Machine button

When we click on this button we get a menu of options

From this menu we can play the program as movie

When we do this, we will see how to create the visual source (The Steps Tree) step by

step

We will see the program construction process from the First Step to selecting components

and entering data to the interaction pages

When we paly the movie, we can stop it at any point, also we can continue

Page 17: Programming Without Coding Technology (PWCT) Environment

At any point we can run the program and see results in the runtime at this point

When we play the movie, we listen to a voice. This voice read the step name

We can enable/disable this voice

When we play th movie can select to see only the steps (no interaction pages - no

components browser)

From this menu we have other options

For example we can refresh the steps tree after updating the visual components

By doing this when we modify the component code mask script, the changes will be

reflected to the program

Also from the same menu, we can run the documentation generator after playing the

program as movie

The documentation generator can create an HTML file which explains how to create the

program step by step

Using this generator, we created many tutorials from PWCT Samples, and these tutorials

are online (thousands of pages).

Search and Replace in the Steps Tree

From the Goal Designer window, we can open the search window by clicking on the

search button

Using this search window we can do Search and Replace operations on the steps tree

We can find a step/steps by typing part of the Step Name and/or Step Data

Page 18: Programming Without Coding Technology (PWCT) Environment

Interaction Designer

Using the Interaction Designer, we can design the interaction pages that are used by the

visual components (transporters).

The interaction page is a data-entry form, using the form the user will enter the required

data to the component

The interaction page could contains many controls (Label, Textbox, Checkbox &

Listbox)

Using a textbox we can ask the user to enter any text (string, number, expressions, etc)

The textbox value will be stored in a variable and we can determine the name of this

variable

We can add Checkbox to the interaction page and determine the checkbox variable name.

Page 19: Programming Without Coding Technology (PWCT) Environment

The checkbox variable value will be 1 when the checkbox is active/enabled/true

The checkbox variable value will be 0 when the checkbox is not active/disabled/false.

We can add a listbox to the interaction page and we can determine the listbox varaible

name.

We can determine the listbox items, also we can determine the default item.

We can set the listbox variable to contains the selected item text or the selected item

index.

The Interaction designer window display the active interaction page file name (*.IDF)

At the left side we have small toolbar contains buttons to add controls the interaction

page

We have buttons to add Label, Textbox, Checkbox and Listbox

We have a Properties tab where we can set the properties of each control in the

interaction page

We can Show/Hide the properties tab using the properties button

We have the Objects Combobox which contains a list of the interaction page objects and

we can select an object from this list

Using right click on the interaction page region we can get a shourtcut menu to select the

page color or picture

Using the mouse we can move and resize the objects, also we can do this using the

properties tab

To move an object, select the object using the mouse and move it by moving the mouse

while pressing the left button

To resize an object go to the right-down corner of the object, you will see a black

rectangle, press the mouse left button and keep pressing while moving the mouse to

resize the control

When the interaction designer window is active, you can use the file menu to create, open

and close the interaction pages files (*.IDF)

Most of the interaction pages are not designed using the interaction designer

Most of the interaction pages are generated using the Interaction pages generator

Then we use the interaction designer to see the interaction page, enter the listbox items

and set the default values.

When we enter the listbox items, we can enter the items one by one or import the items

from a text file

Page 20: Programming Without Coding Technology (PWCT) Environment

By using the keyword DEFAULT between "<" and ">" we can set the default control

By using the keyword AUTONUMBER between "<" and ">" we can ask for automatic

name

By using the keyword LISTBOXDEFAULT between "<" and ">" in the listbox item

name we can set the default item.

Transporter Designer

Programming inside PWCT is done using Visual Components

The visual component inside PWCT is called the Transporter

This name comes because the component get input from the user through the interaction

pages (data-entry forms)

Then transport this input from the interaction pages to the code mask interpreter

The code mask is a script program which control the visual representation generation

(steps)

Also the code mask generate the text based source code

The code mask may contains varaibles, and we may have interaction pages which could

contains variables

In the matching process we match between the variable name in the interaction page and

the variable name in the code mask

When we use the same variable name in the interaction page and in the code mask we can

do automatic matching

We can use the Rules to determine the relationship between components

These rules is used by the goal designer when the Syntax Directed Editor is ON

Page 21: Programming Without Coding Technology (PWCT) Environment

These rules is used also by the VPL (Visual Programming Language) Compiler to check

the program for errors

The programmer may have errors he works while the Syntax Directed Editor is OFF

The transporter designer window display the active component file name (*.TRF)

Then the window display 4 tabs

The first tab contains the Interaction Pages

Each interaction page is represent by a name and a file (*.IDF)

We have the buttons Add, Edit & Delete to work on the interaction pages list

When we select an interaction page from the list, we see the interaction page file name

We can determine or change the interaction page file name

To do this click on the button which is next to the textbox which display the interaction

page file name

We have the button "Open", when we click on it; we see that the interaction page file is

opened using the interaction designer

We have the button "Install Component"

We can click on this button after designing the component to add it to the Domain Tree

When we use the components, using the components browser, we select the domain first

from the Domain Tree then we select the component

The second tab is called "Code Mask"

In the editbox we can write the code mask

The code mask is a script written in a scripting language developed and embedded inside

PWCT

This scripting language is called RPWI

RPWI is very simple and when you write the code mask you can use Mouse Right Click

to get a list of all instructions

The next table contains a list of instructions and rules for writing the Code Mask

Instruction Description

Page 22: Programming Without Coding Technology (PWCT) Environment

RPWI:POSITIVE Execute the instructions inside the test block

when the result of the test is TRUE

RPWI:NEGATIVE Execute the instructions inside the test block

when the result of the test is FALSE

RPWI:VALUE

Determine the value that will be used in the test

condition. for example "1" or "0" for True and

False

RPWI:TEST start a test block, determine the variables that

will be tested using the test value

RPWI:ENDTEST End a test block

RPWI:PUTMARK store the active step number in a fixed register

(using numbers from 1 to 20)

RPWI:SETMARK

Set the active step (parent step) using a register

contains the step id, the register number from 1

to 20

RPWI:NEWSTEP Create new step inside the step tree

RPWI:SELECTSTEPBYNAME Select the active (parent) step using the step

name

RPWI:TABPUSH Add new nested level to the generated source

code

RPWI:TABPOP End a nesting level in the generated source

code

RPWI:NOTE Add a comment

RPWI:NOTE Add a comment

RPWI:NEWVAR Create new variable

RPWI:SETVARVALUE Set the active variable value

RPWI:SELECTVAR Select the active variable

RPWI:REPLACEVARSWITHVALUES Replace variables created in the code mask

with their values

RPWI:IGNORELAST Remove one or more of characters from the end

of the generated code before this instruction

RPWI:IGNORELEVEL

Determine the level of the

RPWI:IGNORELAST , the level code be the

code in the current step of the parent step

RPWI:INFORMATION Add information to the generated step

PWCT:TOFILE Start code generation to a file, here we

determine the file name

PWCT:ENDFILE End of the block that will generate code to a

file

Page 23: Programming Without Coding Technology (PWCT) Environment

PWCT:ADDVAR

Determine a variable name that will be replace

with a value when extracting the code from the

goal to the source file

PWCT:SETVAR Set the variable name

PWCT:MERGENEXTTOPREV Merge the generated code in the next line to the

previous line

PWCT:IGNORELAST

The same as RPWI:IGNORELAST but will be

executed only when extracting the code from

the goal to the source file

"<" and ">" We write any variable name or instruction

between "<" and ">"

generated code

We write the generated code (behind the step)

directly, anything which is not variable or

instruction is a generated code

variables inside generated code

We can insert variable to the generated code,

these variables will be replace with values from

interaction pages or from the code mask

variables

Nested Test blocks Nested Test blocks are allowed, we can use

RPWI:TEST inside another RPWI:TEST

Test Condition The test condition is variable or many variables

that will be compared with the test value

In the Matching tab, we match between the variables in the interaction page and variables

in the code mask script

To do a match, we select two variables then click on the button with the Down icon

If the variable name is the same in the two lists, we can click on automatic matching

button to do the process automatically

To delete a matching record; select the record then click on the "Delete" button.

Page 24: Programming Without Coding Technology (PWCT) Environment

In the Rules tab, we can write the rules that will control the relationships between the

component and the other components

The rules determine what is the type of the parent and/or child components

The rules also determine which step in the generated steps will allow adding child steps

to it

The next table present the rules that can be applied on the component

Rule Description

AllowParent:Root

The parent of the component must be the Start point, Nested

steps from the start point that are created as comments like

"The first step" are allowed also as parent.

AllowParent:General No rules determine the parent component; any parent are

allowed.

AllowParent:Custom We will determine the list of components that are allowed as

parent by name

AllowInteraction: Number

of the step Determine the step that allow adding child steps

Scope: General Using Scope: General After AllowInteraction means that no

rules determine the child component (any one is allowed)

Scope: Custom We will determine the list of components that are allowed as

child by name

Allow: component name Add a component name to the list of allowed components

End End the list of allowed components

Allowroot: step number Select a step to be another root step (like the first generated

step).

NoDuplication: interaction

page variable

Determine the variable name in the interaction page where

the duplication is not allowed

Scope: Parent When used after NoDuplication; will set the scope of

Page 25: Programming Without Coding Technology (PWCT) Environment

duplication checking to the parent component only.

End of Document

Home