SlideShare a Scribd company logo
1 of 6
Download to read offline
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

More Related Content

Viewers also liked

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 controlMahmoud Samir Fayed
 
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.Mahmoud Samir Fayed
 
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 ControlMahmoud Samir Fayed
 
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 controlMahmoud Samir Fayed
 
Programming Without Coding Technology (PWCT) - Variables
Programming Without Coding Technology (PWCT) - VariablesProgramming Without Coding Technology (PWCT) - Variables
Programming Without Coding Technology (PWCT) - VariablesMahmoud Samir Fayed
 
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 WindowMahmoud Samir Fayed
 
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...Mahmoud Samir Fayed
 
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 SampleMahmoud Samir Fayed
 
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 ProceduresMahmoud Samir Fayed
 

Viewers also liked (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
 

More from Mahmoud Samir Fayed

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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 
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 212Mahmoud Samir Fayed
 

More from 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
 

Recently uploaded

Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxFIDO Alliance
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfFIDO Alliance
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsLeah Henrickson
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?Mark Billinghurst
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Patrick Viafore
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfUK Journal
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...ScyllaDB
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideStefan Dietze
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireExakis Nelite
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGDSC PJATK
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 

Recently uploaded (20)

Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptxHarnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
Harnessing Passkeys in the Battle Against AI-Powered Cyber Threats.pptx
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdfSimplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
Simplified FDO Manufacturing Flow with TPMs _ Liam at Infineon.pdf
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The InsideCollecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
Collecting & Temporal Analysis of Behavioral Web Data - Tales From The Inside
 
Microsoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - QuestionnaireMicrosoft CSP Briefing Pre-Engagement - Questionnaire
Microsoft CSP Briefing Pre-Engagement - Questionnaire
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 

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