SlideShare une entreprise Scribd logo
1  sur  6
Télécharger pour lire hors ligne
PWCT Features - Visual Programming
One of the basic ideas behind PWCT is using Visual Programming (VP) to program instead of typing text
based source code. In this document we will explore 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 introducing some new
ideas.
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 (these tokens are generated from the lexical analysis phase of the compiler).
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).
You can use the form designer to design the user interface, this part is already known to most of
programmers/developers with experience from using other tools like Visual studio, Netbeans & Qt
creator.
Figure (1) the Steps Tree inside PWCT

Figure (2) Data entry form belongs to the step “Define new window”
Figure (3) using the time machine slider to move to the past during the program construction

Figure (4) using the form designer to set the position of the window controls.

Programming using a GUI
We can look at the programming language as a user interface between the programmer and the computer
where the goal is to give instructions to the computer to determine what will be done and how.
In general the user interface could be 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.
Figure(5) Command window inside Microsoft Windows 7

Figure(6) terminal window – Ubuntu Linux

No Syntax Errors
In the programming languages world, we can have an IDE (Integrated Development Environment) 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.

Figure (7) Steps Colors window

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. Also this
features is a gift to other programmers using other visual languages inside PWCT like HarbourPWCT &
CPWCT for example.
Figure (8) The steps tree after hiding the steps of the type “Generated (Leaf)”

HOME

Contenu connexe

En vedette

En vedette (10)

Programming Without Coding Technology (PWCT) - Frame control
Programming Without Coding Technology (PWCT) - Frame controlProgramming Without Coding Technology (PWCT) - Frame control
Programming Without Coding Technology (PWCT) - Frame control
 
Programming Without Coding Technology (PWCT) - Adding controls to windows.
Programming Without Coding Technology (PWCT) - Adding controls to windows.Programming Without Coding Technology (PWCT) - Adding controls to windows.
Programming Without Coding Technology (PWCT) - Adding controls to windows.
 
Programming Without Coding Technology (PWCT) - Textbox Control
Programming Without Coding Technology (PWCT) - Textbox ControlProgramming Without Coding Technology (PWCT) - Textbox Control
Programming Without Coding Technology (PWCT) - Textbox Control
 
Programming Without Coding Technology (PWCT) - Grid control
Programming Without Coding Technology (PWCT) - Grid controlProgramming Without Coding Technology (PWCT) - Grid control
Programming Without Coding Technology (PWCT) - Grid control
 
Programming Without Coding Technology (PWCT) - Variables
Programming Without Coding Technology (PWCT) - VariablesProgramming Without Coding Technology (PWCT) - Variables
Programming Without Coding Technology (PWCT) - Variables
 
Programming Without Coding Technology (PWCT) - Center Window
Programming Without Coding Technology (PWCT) - Center WindowProgramming Without Coding Technology (PWCT) - Center Window
Programming Without Coding Technology (PWCT) - Center Window
 
Programming Without Coding Technology (PWCT) - Encrypt/Decrypt Files using Po...
Programming Without Coding Technology (PWCT) - Encrypt/Decrypt Files using Po...Programming Without Coding Technology (PWCT) - Encrypt/Decrypt Files using Po...
Programming Without Coding Technology (PWCT) - Encrypt/Decrypt Files using Po...
 
Programming Without Coding Technology (PWCT) - ShellExplorer Sample
Programming Without Coding Technology (PWCT) - ShellExplorer SampleProgramming Without Coding Technology (PWCT) - ShellExplorer Sample
Programming Without Coding Technology (PWCT) - ShellExplorer Sample
 
Programming Without Coding Technology (PWCT) - Functions and Procedures
Programming Without Coding Technology (PWCT) - Functions and ProceduresProgramming Without Coding Technology (PWCT) - Functions and Procedures
Programming Without Coding Technology (PWCT) - Functions and Procedures
 
SEMIOLOGIA CARDIACA
SEMIOLOGIA CARDIACASEMIOLOGIA CARDIACA
SEMIOLOGIA CARDIACA
 

Plus de Mahmoud Samir Fayed

Plus de Mahmoud Samir Fayed (20)

The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212
 
The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212
 
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212
 
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212
 
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212
 
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212
 
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212
 
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212
 
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212
 
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212
 
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212
 
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212
 
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212
 
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212
 
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212
 
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212
 
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212
 
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212
 
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212
 
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Programming Without Coding Technology (PWCT) Features - visual programming

  • 1. PWCT Features - Visual Programming One of the basic ideas behind PWCT is using Visual Programming (VP) to program instead of typing text based source code. In this document we will explore 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 introducing some new ideas. 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 (these tokens are generated from the lexical analysis phase of the compiler). 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). You can use the form designer to design the user interface, this part is already known to most of programmers/developers with experience from using other tools like Visual studio, Netbeans & Qt creator.
  • 2. Figure (1) the Steps Tree inside PWCT Figure (2) Data entry form belongs to the step “Define new window”
  • 3. Figure (3) using the time machine slider to move to the past during the program construction Figure (4) using the form designer to set the position of the window controls. Programming using a GUI We can look at the programming language as a user interface between the programmer and the computer where the goal is to give instructions to the computer to determine what will be done and how. In general the user interface could be 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.
  • 4. Figure(5) Command window inside Microsoft Windows 7 Figure(6) terminal window – Ubuntu Linux No Syntax Errors In the programming languages world, we can have an IDE (Integrated Development Environment) 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
  • 5. 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. Figure (7) Steps Colors window 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. Also this features is a gift to other programmers using other visual languages inside PWCT like HarbourPWCT & CPWCT for example.
  • 6. Figure (8) The steps tree after hiding the steps of the type “Generated (Leaf)” HOME