The visual programming paradigm Eugenio Jacobo Hernández Manuel Uribe Valdelamar & Humberto Leon Fundación Arturo Rosenblueth

. Insurgentes 670-3. Colonia del Valle. CP 03 100. Mexico, D.F, Mexico. jack@mail.rosenblueth.mx jack_hv@yahoo.com humbe rtouribe@yahoo.com 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. In addition, textual programming languages have proved somewhat difficult for ma ny people to learn to use creative and intelligent effectively. The reduction or

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) Fig 1. Examples of visual programming tools 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). • • • • • • G is a grammar that specifies how composite objects can be constructed from simp 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). • 5. Case Study: Implementation of an artificial neuron Sanscript 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 • • Fig 2. Sanscript programming elements An artificial neuron basically consists of four parts, namely: • • • • Tickets w eights A function that calculates the weighted sum of the weights and input tran

sfer function The artificial neuron implemented only has 2 inputs and one output, but the mode l can be expanded easily. Fig 3. "Flow Chart" of an artificial neuron model 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. 2. Fig 4. Structures for the entries and weights for the NA 3. Weighted Sum. To make the weighted sum have to be the length of our listings to find out how many times we will perform the cycle as the two lists are the same length only do this step with the list of entries. Fig 5. Integration of the lists of weights weighted sum module 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. Figure 6. Implementation of the weighted sum operation 4. 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). Figure 7. The component transfer function and its implementation Thus, by integrating an artificial neural network, the outputs (axons) of each o f the neurons become inputs of others. Figure 8. Comparison between the diagram and flowchart NA 6. Conclusions. 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) • • • Merger with modeling language (UML + SDL) Integrating multimedia applications (P eriProducer, StagecastCreator) Creation of agent systems (AgentSheet) 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

far it is able to solve problems by using computing resources and computer syst ems. So the real developers can rest assured, they will improve their effectiven ess and productivity with tools to improve the screening of their mental models and solutions to given problems (tools 5a. Generation [1]). That users in develo ping raids it finally is healthy understand that incorrect or ambiguous requirem ents are a factor that promotes the headaches and the backlog of projects, in ad dition to getting some independence, improve the level of communication with dev elopers professionals. Is worth answering the question in advance of many develo pers: "I used the knowledge that I have or should we start again?". Manage visua l languages means to begin to know the syntax of the language (ie a constant), b ut from this point the benefits are many: • • • • • There is an integration tool components robust representation of the modules , subsystems and systems is und erstood by all team members miniespecificaciones fuse design to implementation d epending on the tool components can be reused commercially available platforms l earning programming techniques is faster and clear This new paradigm is an excellent way to teach programming and solve problems, a nd suggested its adoption in the training levels of education. References [1] The myth of code-centricity. Jack Harich. http://www.javaworld.com/javaworld /jw-08-2001/jw-0824-myth_p.html [2] Visual Programming ~ http://www-lsi.upc.es/ rbaeza / courses / vp / todo.html [3] Visual Programmin g Languages http://www.cs.washington.edu/homes/jpower/vpl/vpl_home.html [ 4] Vis ual Programming - Foundations and Applications http://www.swe.uni-linz.ac.at/res earch/visual_programming.html [5] International Telecommunication Union Recommen dation Z.109 "SDL Combined with UML http://www. itu.int / itu-doc / itu-t / rec / z / index.html [6] RFC OMG "Action semantics for the UML" http://www.omg.org 1 1/1999 [7] RFC OMG UML 2.0 superstructure "9 / 2000 http://www.omg.org