Designing IA for AI - Information Architecture Conference 2024
Programming Without Coding Technology (PWCT) Features - Framework & Extension
1. PWCT Features – Framework and Extension
When we program using PWCT, we uses one of the available visual programming languages like
HarbourPWCT, CPWCT, PythonPWCT & SupernovaPWCT. All of these visual programming languages
are developed inside PWCT Environment. PWCT provide us with the designers that we can use to
develop new components. A visual programming language inside PWCT is not more than a collection of
components working together to wrap a text based programming language. We can develop our visual
programming languages on the top of a compiler or interpreter, also we can use a framework to get more
high level results. And we can develop our visual language on the top of a very low level language like
ASM.
Inside PWCT, the visual programming language is a ( Domain Tree + Components )
From the menu bar, in the (Domain Tree) popup, we have a group of options, we can open the domain
tree window, install component, reinstall component or uninstall component.
Fig.1 Domain Tree Popup
2. Fig. 2 Domain Tree window
Using the “Domain Tree” window we can create & modify our domain tree.
Using the “Install component” window, we can install new components to our domain tree.
Fig. 3 Install Component.
To install new component, we enter the component name, select the component file (*.TRF) and select
3. the component domain in the domain tree.
Each component file (*.TRF) may contains one or more of interaction pages (*.IDF), the interaction page
is a data entry form which ask the user to enter data required by the component. For example the printf
component asks the user to enter the string that will be printed on the screen.
This component is considered low level, because using it requires remembering things like “n” which is
related to the text based programming language world. In the visual programming world we try to avoid
things like that, using PWCT we can avoid these things, also we can use it if we want. The choice returns
to the visual programming language designer. He/she could design a visual language that force one way
or give the freedom to the user to select any way. If he forced the user to use one way, the user can
change this because he could modify or add to the components list.
Fig. 4 Interaction Page
Each component file (*.TRF) is created using the Transporter designer.
4. Fig. 5 Transporter Designer
Each interaction page file (*.IDF) could be created using the Interaction designer or using the Interaction
Pages Generator.
Fig. 6 Interaction Designer
5. Fig. 7 Running the Interaction Pages Generator
Fig. 8 The Interaction Pages Generator
Using the interaction pages generator, we can quickly generate an interaction page file (*.IDF) and a
component file (*.TRF) contains a reference to this interaction page. Using the interaction designer, we
can customize the user interface of the interaction page, and we can add default values to the controls
(textbox, listbox & checkbox). To control the operation of steps generation in the goal designer, and the
operation of code generation, we write a script in the code mask section, in the transporter designer.
6. Fig. 9 Transporter Designer – Code Mask
PWCT comes with very simple scripting language called (RPWI) for controlling the process of steps
generation and code generation. For example the command <RPWI:NEWSTEP> is used to create a new
step. The generated code is written directly. The variable is written between „<‟ and „>‟ , i.e.
<variable_name_is_here> . You don‟t need to save these commands, using a right click while typing the
code mask, you will get a popup menu with all of the commands in RPWI. We have variables in the
interaction pages, and we have variables in the code mask, in the matching section we can do automatic
matching between variables names in the code mask and the variables names in the interaction pages. Or
we can do manual matching based on our needs. Automatic matching requires similar names between the
variables here (code mask) and there (interaction page).
7. Fig. 10 Transporter Designer – Matching.
In the rules section, we determine the rules of composition between this component and other
components.
Fig. 11 Transporter Designer – Rules
PWCT is open source, you can open any component in any visual programming language and see the
8. Code Mask script to learn how this component is created, how it‟s working.
If you want to create new visual programming language inside PWCT, and you want to learn step by step
how to create your components, how to distribute the visual language to other PWCT users, we provide
tutorials that will let you in little hours get the knowledge to do this.
To create a new visual programming language, pick a useful text based programming language, collect a
group of useful libraries and frameworks for this language, you may create your own libraries based on
your needs, design the visual components, the user interface of each component, the relationship between
components, develop your components, test them, create samples & tutorials then share what you have
done with us, we will distribute your work with PWCT.
You can speed up the development process by using components designed for another language, change
the code mask, and get the required result. This works perfectly when the two languages share many
things.
Creating New VPL (Visual Programming Language) tutorials
Tutorials (PDF Files)
Starting new VPL project
Creating, Installing & Using your first component
Adding Interaction pages to your component
Using the Interaction Pages Generator
Adding Checkbox to Interaction pages
Take decision if the checkbox value is FALSE
Writing code mask to generate a steps and substeps (Determine the step parent)
Adding Listbox to Interaction pages
Adding TABs to the generated source code
Using Variables in the Code Mask
Generate steps in different locations in the steps tree
9. Writing the Code Mask and the Rules inside the Transporter Designer
Rapid components development
Table 1. Creating new VPL tutorials
HOME