PWCT is a Free-Open Source project. Installing PWCT on MS-Windows is easy over simple installation program, after downloading the software you can download many samples, tutorials and movies. Some of PWCT users are using the software to create presentations and education software. Many users are using the software for business applications. This language is called the Supernova programming language, and it is a free, Open Source project hosted on Source forge. So, the software can be used in many different applications. Similarly, we developed the Ring Programming Language using PWCT based on the C programming language.The area of the problem is called “Visual Programming Languages.” There are many projects in this domain, but most of these languages are domain-specific languages that are used in education. PWCT don’t use the Drag-and-Drop method. PWCT provide a new method based on Automatic Steps Tree Generation and Update in response to communication with components that provide to the user simple data entry forms. The mindfulness behind this new method is to mix between programming using Diagrammatic approach and programming using Form-based approach where the integration between the two approaches are done flawlessly through an Automatic Visual Representation Generation process. This is just the basic idea and many other ideas are developed around this concept to get a real-world general-purpose visual programming language.
The visual source inside PWCT is designed using the Goal Designer where the programmer can generate the steps tree through the interaction with the graphic language components. Inside PWCT, the visual source is a collection of goals, each goal contains tree of steps and each step/node inside the steps tree may contains one or more of data entry forms. Steps tree uses colors that tell the programmer about the step type. Some steps allow containing sub steps, other steps don’t allow this, also some steps is not more than comments for the programmer. The steps tree gives the programmer two dimensions where the relationship between the node and another node could be “next to” or “contains” where the programmer can go depth-first or breadth-first when he/she interacts with the steps tree. The programmer can use the dimension “contains” to do an operation on a group of steps/nodes at the same time (move up / move down / cut/ copy / delete).The programmer can use the form designer to design the user interface. The programmer can use the time dimension where we can know when each step is created (Date & Time) and can move along the time dimension to see only the steps at any point during the development process.
Inside the Goal Designer, the user can use the mouse or the keyboard to select the visual components and generate new steps in the steps tree. Using the mouse, the programmer can explore the environment to see the components that are ready for use. Using the Keyboard by typing the component name, the programmer can quickly get any component and start using it.
The PWCT visual programming language components are classified into the next categories:
HarbourPWCT: Visual Components that generate source code in the Harbour programming language.
SupernovaPWCT: Visual Components that generate source code in the Supernova programming language.
PythonPWCT: Visual Components that generate source code in the Python programming language.
CPWCT: Visual Components that generate source code in the C programming language.
C#PWCT: Visual Components that generate source code in the C# programming language.
The programmer can extend PWCT to support code generation in any text based programming language.PWCT is a visual programming language and reading the text based code is optional.The programmer can create and modify the programs using the visual source without any interaction with the text based source code.
Hello World Program
- Run PWCT
- From the menu bar select “File” then “New”
- Select the template “Console Application without coding”
- Determine the visual source file name, for example Hello.SSF
- From the components browser window, select the domain (Print Text) then select the component (Print Text to console) then click OK button or press CTRL+W.
- In the interaction page (data-entry form), type the text, then click OK button or press CTRL+W.
- Now we see a new step added to the program, Press CTRL+R to run the application.
Open Source Projects
Some of the open source projects that are developed using PWCT are as listed below:
- Critical Nodes
- Smart POS System
- Supernova programming language
The critical nodes application is a Free Open Source Implementation of a new Localized Algorithm for detection of Critical Nodes.
The smart POS system is a Free open source project for sales management:
The Supernova programming language is a Modern scripting language and the first one that presents the concept of programming with direct fiction description using a clear subset of pure human language.
Supernova started as a research and example about what we can do using PWCT:
PWCT is not a wizard for creating your application in a few steps, rather, it is a general-purpose visual programming tool that has been designed for novice and expert programmers.
A novice programmer can use PWCT to learn programming concepts like Data Structure, Control Structure, Programming Paradigm etc. Whereas an expert programmer can use PWCT to develop large and/or complex software.
The developers used PWCT to develop a textual programming language Compiler and Virtual Machine called Supernova. Other projects developed using PWCT are the Smart POS System and the Critical Nodes Application. PWCT support Harbour, Supernova, C, Python, & C#.NET. You can also extend PWCT to support code generation in any text based programming language. PWCT also comes with many samples, tutorials & movies to get you started.
PWCT is owned by PWCT (http://doublesvsoop.sourceforge.net/) and they own all related trademarks and IP rights for this software.
PWCT on cloud for AWS
The straightforward ideas behind PWCT is using Visual Programming to program as an alternative of typing text-based source code. Here we will sightsee some of VP features in general and how PWCT implement some of the VP concepts in a new style by mixing ideas together and by presenting new thoughts.
More than one dimension When the programmer write text based code in programming languages like ASM, C, C++, JAVA, JS, PHP, Python, Ruby, Harbour & Lua for example, the text based source code is one dimension where the relationship between each token and the other token is “next to” and the compiler read the source code token by token .In visual programming languages, the visual source is more than one dimension (two or more), these dimensions could be formed by a mix of text, shapes, colors, icons, time & more. When we do programming in a visual programming language like PWCT, we can interact with the visual source of the program using this multi dimensions feature.
Inside PWCT, the visual source is a collection of goals, each goal contains tree of steps and each step/node inside the steps tree may contains one or more of data entry forms, we also have the time dimension where we can know when each step is created (Date & Time) and we can move along the time dimension to see only the steps at any point during the development process.
Steps tree uses colors that tell the programmer about the step type. Some steps allow containing sub steps, other steps don’t allow this, also some steps is not more than comments for the programmer. The steps tree gives the programmer two dimensions where the relationship between the node and another node could be “next to” or “contains” where you can go depth-first or breadth-first. You can use the dimension “contains” to do an operation on a group of steps/nodes at the same time (move up / move down / cut/ copy / delete).
We can use the form designer to design the user interface, this part is previously known to most of programmers/developers with an understanding from using other tools like Visual studio, NetBeans & Qt creator.
We can consider programming language as a user interface between the programmer and the computer where the goal is to give directions to the computer to regulate what will be done and how. The user interface is based on commands, menus or GUI. The default user interface of the operating systems is changed from the command line to the GUI, the user expect to find a way to do things using an easy to learn and simple GUI instead of typing commands in the command line and the need to remember the syntax of the commands.
No Syntax Errors
In the programming languages world, we can have an IDE on the top of the text-based programming language compiler, Using the IDE we can have a modern text code editor with many useful features like Syntax Highlighting & Code Completion. We can do many things in our project without coding using advanced designers like Form Designer & Report Designer, But after all of this advanced technology we still need to use the code editor and type commands to do useful tasks. Typing commands or text-based source code means that we can make syntax errors and we need to remember many things about the language, Also we lives in one dimension world and we are restricted with the programming language keywords which is written in English. Using a GUI to program where we do visual programming instead of typing commands using a text-based code editor, we can get many advantages, for example we can use the Mouse to navigate and explore when we forget something or we want to discover something new. We can have the text which we see inside the GUI in any human language like English & Arabic for example. We don’t make syntax errors because the text-based source code is generated in the background and we don’t type it directly. We can customize the environment.
Time Dimension Using the time dimension, we can move to the past at any point during the application development process, we can run the program at this point, we can play programs as movie to see how to create the program step by step inside the environment and we can automatically create a documentation to the program creation process during the movie playing process.This feature could help the programmer in many ways, In program understanding where we can see the order of creating steps and how each step is generated, also this feature could help in program debugging where we can run the program at any point in the past to check the results at that point.
Colors Inside PWCT, the step colors help in knowing the step type, based on the step type we can know what steps can be used as parent to other steps, what steps hide only block of code, what steps is the first step generated by a component, what steps is used for comments.We can change the colors from the steps colors window, to open this window click on the “Steps Colors” button in the goal designer.
Colors In PWCT, the step colors help in knowing the step type and based on the step type we can know what steps can be used as parent to other steps, what steps hide only block of code, what steps is the first step generated by a component, what steps is used for comments. We can change the colors from the steps colors window, to open this window click on the “Steps Colors” button in the goal designer. We have some styles to select from; also we can create our style by clicking on the color box to select a new color.An important feature here is that we can hide steps based on what we are doing (Reading the program steps) or (Creating the program steps).Steps like (End of Window), (End of IF Statement) & (End of Procedure) are of type Generated (Leaf) and these steps can be hidden if you are using any visual programming language inside the PWCT environment. Python programmers know that this feature is already available in the python language, but when they use PythonPWCT this feature becomes an option where they can use it or not.
Major Features of PWCT
- Dynamic Generation instead of Drag & Drop.
- General and Practical.
- Samples/Tutorial/Movies Manager.
- Play programs as movie.
- Run programs in the past.
- You can use PWCT to create commercial closed source applications.
Installation Instructions For Windows
Note: How to find PublicDNS in AWS
Step 1) RDP Connection: To connect to the deployed instance, Please follow Instructions to Connect to Windows instance on AWS Cloud
1) Connect to the virtual machine using following RDP credentials:
- Hostname: PublicDNS / IP of machine
- Port : 3389
Username: To connect to the operating system, use RDP and the username is Administrator.
Password: Please Click here to know how to get password .
Step 2) Click the Windows “Start” button and select “All Programs” and then point to PWCT.
Step 3) Other Information:
1.Default installation path: will be in your root folder “C:\PWCT19”
- Windows Machines: RDP Port – 3389
- Http: 80
- Https: 443
Configure custom inbound and outbound rules using this link
Installation Step by Step Screenshots
Installation Instructions for Windows
Step 1) VM Creation:
- Click the Launch on Compute Engine button to choose the hardware and network settings.
- You can see at this page, an overview of Cognosys Image as well as estimated cost of running the instance.
- In the settings page, you can choose the number of CPUs and amount of RAM, the disk size and type etc.
Step 2) RDP Connection: To initialize the DB Server connect to the deployed instance, Please follow Instructions to Connect to Windows instance on Google Cloud
Step 3) Click the Windows “Start” button and select “All Programs” and then point to PWCT.
Step 4) Other Information:
1.Default installation path: will be in your root folder “C:\PWCT19”
- Windows Machines: RDP Port – 3389
- Http: 80
- Https: 443