Fundación Arturo Rosenblueth. Insurgentes 670-3. Colonia del Valle.
CP 03 100. Mexico, D.F, Mexico. firstname.lastname@example.org email@example.com humbe
Abstract. For a long time software developers have done their work using textual programming languages, but that is about to change. This article presents the p aradigm of visual programming and visual programming languages as an alternative to improve the production of software applications. Keywords: visual programmin g, visual programming languages.
1. What is visual programming?
The concept of visual programming is a bit confusing since he is currently consi
dered visual programming to textual programming languages have a graphical inter
face to visualize what one is developing. This visual programming concept is wro
ng because this is one that by creating programs icons you can go without a back
of the textual language. Visual programming (visual programming) refers to soft
ware development where the graphical notations and interactively manipulate soft
ware components are mainly used to define and compose programs. Visual programmi
ng is commonly defined as the use of visual expressions (such as graphics, anima
tion or icons) in the process of programming can be used to form the syntax of n
ew visual programming languages leading to new paradigms such as programming by
demonstration, or can be used in graphical presentations of the behavior or stru
cture of a program. The goal of visual programming is to improve understanding o
f programs and simplify the programming itself. Further, visual programming shou
ld encourage end users to build their own programs, which otherwise must be writ
ten by professional programmers.
2. Visual programming languages
The visual programming based on the use of visual languages (LVP). A visual prog
ramming language can be defined as: A programming language that uses a visual re
presentation (such as graphics, drawings, animations or icons, partially or comp
letely). A visual language manipulates visual information or supports visual int
eraction, or allows programming with visual expressions. A visual language is a
set of spatial arrangements of text and graphics symbols with a semantic interpr
etation that is used to communicate actions in an environment. The LVPS are prog
ramming languages which uses visual techniques to express relationships or chang
es in the information. For example, a visual object that represents a process of
addition (addition) takes two inputs and an output. LVP In a typical data flow,
the user simply selects an input value and select a port of entry in order to e
stablish a relationship between data and process. The genesis of PVL came in 197
5 with the publication of David Canfield Smith, "Pygmalion: A Creative Programmi
ng Environment.'' For example, Pygmalion incorporated a programming paradigm bas
ed on icons created objects which could be modified, and connected together, hav
ing the characteristics set to perform computations. Many modern LPV used an app
roach based on icons like Smith. Pygmalion also made the idea of programming by
example, where the system shows the user how to perform a task on a specific cas
e and the system uses this information to generate a program which performs the
task in general cases. Why insist on using computers to communicate with textual
programming languages? Is not it better communicate with computers using a repr
esentation that take advantage of our visual nature? Obviously, the authors of v
isual programming languages (LPV) argue that the answer to both questions is yes
. The main motivation for most research in PVL are: Many people think and rememb
er things in terms of pictures. She is related to the world in a graphic inheren
tly uses images as the primary component of creative thought.
elimination of the need to translate visual ideas into text representations can help mitigate this problem the learning curve. In addition, a variety of applic ations,including scientific visualization and interactive simulation lends itse lf well to visual methods of development. A LPV is NOT an integrated development environment (or IDE). The difference is that a VPL must be able to perform all programming tasks visually, without having to resort to the text representation.
3. Classification of visual languages
Visual languages are divided into the following categories:••••• Hybrid sys
tems purely visual languages of text and visual elements such as system programm
ing (Programming-by-example) Systems-oriented constraints (Constraint-oriented s
ystems) based systems forms (entries such as "Spreadsheet" animated)
Although the LPVs communicate information in a more visual than traditional text ual languages, the text still has its place in the visual programming. There are three areas that illustrate the superiority of the text in some situations: • • • documentation, assign names to distinguish between elements of the same type, and express well-known concepts are inherently compact and textual (eg algebrai c formulas)
4. Main concepts of visual languages
The main concepts of visual languages are: • • procedural abstraction (decomposi
tion of the program modules) data abstraction is to encapsulate abstract data ty
pes defined by the user, allowing access only by means of operations defined. Co
ntrol System flow rate control structures (selection, iteration) formats and sta
ndards. It refers to the definition of rules to specify the elements of LPV (eg
GXL, XGMML, GML) grammars of visual languages. Visual languages specified by a t
riple (ID, G, B), where: • ID is the dictionary icon, which is a generalized set
of icons, each represented by a pair (Xm, Xi), where Xm is the logic (meaning)
and Xi is the physical part (image).
le icons using spatial relational operators. B is a base of domain-specific know ledge, which contains the information needed to construct the meaning of the sen tence visual (event names, relationships, references to objects, etc).
To demonstrate the use of LPV was conducted to develop an artificial neuron (NA) using the tool Sanscript. Sanscript worth mentioning that implements the follow ing basic abstractions: • • Functions, which are the building blocks with which applications are built in Sanscript. A function has inputs, run a calculation an d produces outputs. Flowcharts (flowgrams), which are diagrams of functions conn ected with functions which specifies an action (equivalent to a textual program, only visual). Connections, which are the links (relations) between applications functions, which are programs that run out of the tool
Each of these parts are implemented as follows: 1. Entry List. Because we have N inputs into the neuron it is best to have a list so that we have the tickets in a single data structure and that structure to obtain values for the sum of the weights for the inputs. List of pesos. As should be the same amount of weight en tries to perform the weighted sum, we must have a data structure like that of th e entries, but now with the weights.
Fig 4. Structures for the entries and weights for the NA
Weighted Sum. To make the weighted sum have to be the length of our listings to
The iterator obtained from the list of inputs and outputs the value at position N of the lists that are f, g, f * g and multiply adds up. The cycle ends when no items in the list. In the case of the example implementation are two elements i n each of the lists,but you can have N elements.
Transfer Function. The transfer function makes the comparison between the result of the iterator (weighted sum) and the threshold of the neuron, if the result o f the cycle is greater than the threshold, the neuron fires, if the outcome of t he cycle is less then the neuron is inhibited (sent as a 0 value).
Some of the perspectives in the development of visual programming are: • • • Com
plement IDEs (eg Visual Age) Building on a platform native applications (eg Sans
cript) Code Generation (visual representation language textual)
The development of visual programming languages involve the coders lose its hege mony in the software development, which is healthy when you take into account th at having an expert in the syntax of a language and use of development tools, is
This action might not be possible to undo. Are you sure you want to continue?