Visual Programming and Program Visualization – Towards an Ideal Visual Software Engineering System –
Upcoming SlideShare
Loading in...5
×
 

Visual Programming and Program Visualization – Towards an Ideal Visual Software Engineering System –

on

  • 489 views

There has been a great interest recently in systems ...

There has been a great interest recently in systems
that use graphics to aid in the programming, debugging, and
understanding of computer systems. The ‘’Visual
Programming’’ and ‘’Program Visualization’’ are exciting
areas of active computer science research that show promise
for improving the programming process, for this they have
been applied to these systems. This article attempts to provide
more meaning to these terms by giving precise definitions,
and then surveys a number of systems that can be classified as
providing Visual Programming or Program Visualization.
These systems are organized by classifying them into two
different taxonomies. The paper also gives a brief description
of our approach that concentrated on both Visual Programming
and Program Visualization for an Ideal Visual Software
Engineering System. We consider it as a new promising trend
in software engineering.

Statistics

Views

Total Views
489
Slideshare-icon Views on SlideShare
489
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Visual Programming and Program Visualization – Towards an Ideal Visual Software Engineering System – Visual Programming and Program Visualization – Towards an Ideal Visual Software Engineering System – Document Transcript

    • ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011 Visual Programming and Program Visualization – Towards an Ideal Visual Software Engineering System – Sassi Bentrad1 and Djamel Meslati2 1 University Badji Mokhtar-Annaba /Computer Science, Annaba, Algeria Email: sassi_bentrad@hotmail.fr 2 University Badji Mokhtar-Annaba /Computer Science, Annaba, Algeria Email: meslati_djamel@yahoo.comAbstract— There has been a great interest recently in systems but the internal program code is now much more complicatedthat use graphics to aid in the programming, debugging, and (due to the extra code to handle the user interface). Therefore,understanding of computer systems. The ‘’Visual we must find ways to make the programming task moreProgramming’’ and ‘’Program Visualization’’ are exciting accessible to users. One approach to this problem is toareas of active computer science research that show promisefor improving the programming process, for this they have investigate the use of graphics as the programming language.been applied to these systems. This article attempts to provide This has been called ‘’Visual Programming’’ or ‘’Graphicalmore meaning to these terms by giving precise definitions, Programming’’. Some Visual Programming systems haveand then surveys a number of systems that can be classified as successfully demonstrated that non-programmers can createproviding Visual Programming or Program Visualization. fairly complex programs with little training [3]. Another classThese systems are organized by classifying them into two of systems try to make programs more understandable bydifferent taxonomies. The paper also gives a brief description using graphics to illustrate the programs after they have beenof our approach that concentrated on both Visual Programming created. These are called ‘’Program Visualization’’ systemsand Program Visualization for an Ideal Visual Software and are usually used during debugging or when teachingEngineering System. We consider it as a new promising trend students how to program [4] [5]. The rest of this paper isin software engineering. organized as follows. The next section attempts to provide aIndex Terms— visual language, visual programming, program more formal definition of these terms. The third sectionvisualization. discusses why graphical techniques are appropriate for use with programming. Then, the various approaches to Visual I. INTRODUCTION Programming and Program Visualization are illustrated through a survey of relevant systems. This survey is organized around Today industrial systems require more complex software two taxonomies presented in Section 4. In Section 5, we givedevelopment with high qualities in terms of maintainability an overview of an evaluation of visual programming andand reusability. The development of software is a complicated program visualization. Section 6 discuss about Visualand tedious process, requiring highly specialized skills in Programming versus Program Visualization. In Section 7, somesystems programming. It is well-known that conventional general problems and areas for further research are addressed.programming languages are difficult to learn and use, requiring Finally Sections 8 present our brief conclusion.skills that many people do not have [1]. However, there aresignificant advantages to supplying programming capabilities II. DEFINITIONSin the user interfaces of a wide variety of programs. Recently,however, a software framework has been introduced to reduce Programming. In this paper, a computer ‘’program’’ isthe development time and costs associated with programming. defined as ‘’a set of statements that can be submitted as aFor example, the success of spreadsheets can be partially unit to some computer system and used to direct the behaviorattributed to the ability of users to write programs (as of that system” [6]. While the ability to compute ‘’everything’’collections of ‘’formulas’’). As the distribution of personal is not required, the system must include the ability to handlecomputers grows, the majority of computer users now do not variables, conditionals and iteration, at least implicitly.know how to program, however. They buy computers with Interpretive vs. Compiled. Any programming languagepackaged software and are not able to modify the software system may either be ‘’interpretive’’ or ‘’compiled.’’ A compiledeven to make small changes. In order to allow the end user to system has a large processing delay before statements canreconfigure and modify the system, the software may provide be run while they are converted into a lower-levelvarious options, but these often make the system more representation in a batch fashion. An interpretive systemcomplex and still may not address the users’ problems. ‘’Easy- allows statements to be executed when they are entered. Thisto-use’’ software, such as ‘’Direct Manipulation’’ systems characterization is actu­ally more of a continuum rather than[2] actually make the user—programmer gap worse since more a dichotomy since even interpretive languages like Lisppeople will be able to use the software (since it is easy to use), typically require groups of statements (such as an entire© 2011 ACEEE 56DOI: 01.IJIT.01.03.22
    • ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011procedure) to be specified before they are executed. appealing ideas for a number of reasons. The human visualVisual Programming. ‘’Visual Programming’’ (VP) refers to system and human visual information processing are clearlyany system that allows the user to specify a program in a two optimized for multi-dimensional data. Computer programs,(or more) dimensional fashion. Although this is a very broad however, are conventionally presented in a one-dimensionaldefinition, conventional textual languages are not considered textual form, not utilizing the full power of the brain. Two-two dimensional since the com­pilers or interpreters process dimensional displays for programs, such as flowcharts andthem as long, one-dimensional streams. Visual Programming even the indenting of block structured programs; have longdoes not include systems that use conventional (linear) been known to be helpful aids in program understanding [9].programming languages to define pic­tures, such as, Clarisse [10] claims that graphical programming uses informa-Sketchpad, CORE, PHIGS, the Macintosh Toolbox, or X-II tion in a format that is closer to the user’s mental representa-Window Manager Toolkit [7]. It also does not include drawing tions of problems, and will allow data to be processed in apackages like Apple Macintosh MacDraw, since these do format closer to the way objects are manipulated in the realnot create ‘’programs’’ as defined above. Visual programming world. It seems clear that a more visual style of programmingcontains various graphical approaches to specify programs. could be easier to understand and generate for humans, espe-Program Visualization. ‘’Program Visualization’’ (PV) is an cially for non-programmers or novice programmers. Anotherentirely different concept from Visual Programming. In Visual motivation for using graphics is that it tends to be a higher-Programming, the graphics is used to create the program level description of the desired actions (often de-emphasiz-itself, but in Program Visualization, the program is specified ing issues of syntax and providing a higher level of abstrac-in a conventional, textual manner, and the graphics and tion) and may therefore make the programming task easieranimations is used to illustrate some aspects of the program even for professional programmers. This may be especiallyor its run-time execution. Program Visualization systems can true during debugging, where graphics can be used to presentbe utilized in program development, research, and teaching much more information about the program state (such asto help programmers and learners understand the structure, current variables and data structures) than is possible withabstract and concrete execution as well as the evolution of purely textual displays. This is one of the goals of Programsoftware. Unfortunately, in the past, many PV systems have Visualization. Other Program Visualization systems use graph-been incorrectly labeled “Visual Programming” (as in [8]). PV ics to help teach computer programming. Also, some typessystems can be classified using two axes: whether they of complex programs, such as those that use concurrent pro-illustrate the code, data or algorithm of the program, and cesses or deal with real-time systems, are difficult to describewhether they are dynamic or static. with textual languages so graphical specifications may be‘’Data Visualization’’ systems show pictures of the actual more appropriate. The popularity of ‘’direct manipulation’’data of the pro­gram. Similarly, ‘’Code Visualization’’ interfaces [2], where there are items on the computer screenillustrates the actual program text, by adding graphical marks that can be pointed to and operated on using a mouse, alsoto it or by converting it to a graphical form (such as a contributes to the desire for Visual Languages. Since manyflowchart). Systems that illustrate the ‘’algorithm’’ use Visual Languages use icons and other graphical objects, edi-graphics to show abstractly how the program operates. This tors for these languages usually have a direct manipulationis different from data and code visualization because with user interface. The user has the impression of more directlyalgorithm visualization, the pictures may not correspond constructing a program rather than having to abstractly de-directly to data in the program, and changes in the pictures sign it.might not correspond to specific pieces of the code. Forexample, an algorithm animation of a sort rou­tine might show IV. TAXONOMIES OF VISUAL LANGUAGESthe data as lines of different heights, and swaps of two items This paper presents two classifications. The first,might be shown as a smooth animation of the lines moving. discussed in the subsection A, lists the various ways thatThe ‘’swap’’ operation may not be explicitly in the code, Visual Programming systems have represented the program.however. The second classification (subsection B) is for Program‘’Dynamic’’ visualizations refer to systems that can show an Visualization systems, and shows whether the systemsanimation of the program running, whereas ‘’static’’ systems illustrate the code, data or algorithm of programs. Of course,are limited to snapshots of the program at certain points. a single system may have features that fit into variousVisual Languages. ‘’Visual Languages’’ refer to all systems categories and some systems may be hard to classify, sothat use graphics, including Visual Programming and Program these taxonomies attempt to characterize the systems by theirVisualization systems. Although all these terms are somewhat most prominent features. Also, the systems discussed heresimilar and confusing, it is important to have different names are only representative; there are many systems that havefor the different kinds of systems, and these are the names not been. Since there are so many visual language systems,that are conventionally used in the literature. it would be impossible to survey them all in a single article. III. ADVANTAGES OF USING GRAPHICS A.Classification of Visual Programming Systems (VPSs) Visual Programming and Program Visualization are very VPSs (or VPLs: Visual Programming Languages) can be classified in different categories according to their general© 2011 ACEEE 57DOI: 0.IJIT.01.03. 22
    • ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011program representation paradigm [11]. As the field of VPSs programmer to visualize the execution of a program as ahas matured, more and more interest has been focused on sequence of different cell states which progress through time.creating a robust, standardized classification for work in the Examples of form-based VPSs are Forms/3, ASP (Analyticarea. Such a classification system not only aids researchers Spreadsheet Package), NoPumpG, NoPumpII and Penguims.in finding related work but also provides a baseline with which Besides that, there are VPSs such as Vampire [14], ChemTrainsto compare and evaluate different systems. Some of the most and BITPICT which combine visual object-orientedimportant names in the field, including Chang, Shu, and programming language with a rule-base approach.Burnett, have worked on identifying the defining TABLE I. C LASSIFICATION OF VISUAL PROGRAMMING LANGUAGES.characteristics of the major categories of VPSs [17, 16, 11].Thefollowing presents a summary of the classification schemediscussed below:  Purely visual language  Hybrid text and visual systems  Others, such as Programming-by-example systems, Constraint-oriented systems and Form-based systemsNote that the categories are by no means mutually exclusive.Indeed, many languages can be placed in more than onecategory. The single most important category has to be purelyvisual languages that have been derived entirely orpredominantly from graphical rules. Such languages arecharacterized by heavy reliance on visual techniques It is important to note that in each of the categories mentionedthroughout the programming process. The programmer above, we can find examples of both general-purpose VPSsmanipulates icons or other graphical representations to create and languages designed for domain-specific applications.a program which is subsequently debugged and executed in Table 1 summarizes classification of most of the visual systemthe same visual environment. The program created is compiled or VPSs frequently quoted according to the three categoriesdirectly from its visual representation and is never translated highlighted above. The field of visual programming hasinto an interim text-based language. Examples of these evolved greatly over the last ten years. Continuallanguages include Pictorial Janus, VIPR, Prograph and PICT. development and refinement of languages in the categoriesThere are other suggestion to subdivide this category into discussed above have led to some work which was initiallymore specific language paradigm such as object-oriented, considered to be part of the field being reclassified as relatedfunctional, imperative and logic. Burnett and Baker [11] have to but not actually exemplifying visual programming. Thesedeveloped a classification scheme for classifying VPS research VPS orphans, so to speak, include algorithm animationpapers. Their aim is to help other researchers to easily locate systems, such as BALSA [17], which provide interactiverelevant works in this field. Another subset of VPSs favors graphical displays of executing programs and graphical userthe idea of integration of visual languages with well- interface development tools, like those provided with manyestablished textual programming languages. They perceive modern compilers including Microsoft Visual C++. Both typesthe integration might be more likely to meet the actual of systems certainly include highly visual components, butrequirements of practical software development than the they are more graphics applications and template generatorshighly ambitious goal of creating purely visual languages. than actual programming languages.These hybrid systems may include both programs createdvisually and then translated into high-level textual language, B. Classification of Program Visualization Systems (PVSs)or programs which involve the use of graphical elements in a The systems discussed in this section are nottextual language. The work of Andrew, Erwig and Meyer [12] programming systems since code is created in theare examples of programs created graphically and the system conventional manner. Therefore, none of the systemsgenerates textual program from it. The latter includes works discussed below appears in the previous sections. Graphicsto extend existing textual language such as C++ and Basic. is used here to illustrate some aspect of the program after it isThe current commercial system in this category includes written. Table 2 shows some Program Visualization systemsVisual Basic and Visual C++. Beside the two major categories classified by whether they attempt to illustrate the code, datadiscussed, there exist many VPSs which fall into smaller or algorithm of a program, and whether the displays are staticclassifications similar to Pygmalion or Sketchpad. They are or dynamic. Some systems fit into multiple categories, becausetermed constraint-based languages which are especially they illustrate multiple aspects or have different modes.popular for simulation design. An example of this is ThingLabII [13], which is an object-oriented and constraintedprogramming system. A few other VPSs follow the metaphorof spreadsheets and these languages are classified as form-based VPSs. Programming using form-based VPSs involvesaltering a group of interconnected cells and allowing the© 2011 ACEEE 58DOI: 01.IJIT.01.03.22
    • ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011 TABLE I. CLASSIFICATION OF PROGRAM VISUALIZATION SYSTEMS. of these two categories have not intersected; VP interfaces allow for the creation of programs from graphical elements representing specific static-code procedures, whereas PV interfaces permit graphical viewing of arbitrary (though finite in range) procedures within a program without any capability to change the program. However, in a reconfigurable system, the user must be able to manipulate pre-existing dynamic arbitrary procedures to create programs. Thus, traditional visual languages, VP and PV, are not useful for a reconfigurable system when taken separately; the system in fact requires both. A. A Round-Trip Visual Engineering In classical programming languages, programs are represented as text, and the meaning results from the linear order of lexical elements. Visual programs consist of graphical V. EVALUATION OF VISUAL PROGRAMMING AND PROGRAM and often also textual elements. The meaning of the programs VISUALIZATION Visual Languages are new paradigms for programming,and clearly the existing systems have not been completelyconvincing. The challenge clearly is to demonstrate thatVisual Program­ming and Program Visualization can help with depends on the spatial placement of and the connectionreal-world problems. The key to this, in my opinion, is to find between these elements. In accordance with variousappropriate domains and new domains to apply these programming paradigms, there are control-flow, data-flow,technologies to. For general-purpose programming by functional, object-oriented, rule-based, form-based, andprofessional programmers, textual languages are probably hybrid (multi-paradigm) visual programming languages. Manymore appropriate. However, we will find new domains and visual programming languages just allow the user more ornew forms of Visual Language where using graphics will be less to visually build the abstract syntax tree of a textualbeneficial. The systems discussed in this paper show that program1. If a program created using Visual Programming issome successful areas so far include: to be displayed or debugged, clearly this should be done in a graphical manner, which might be considered a form ofFor Visual Programming: Program Visualization. However, it is more accurate to use  Helping to teach programming (FPL, Pict, etc.), the term Visual Programming for systems that allow the  Allowing non-programmers to enter information in limited program to be created using graphics, and Program domains (OPAL, spread-sheets), Visualization for systems that use graphics only for illustrating  Allowing non-programmers to construct animations programs after they have been created. The distinction (PLAY) and simple computerized lessons for computer- between the Visual Programming Language and Visualization aided instruction (Rehearsal World), subareas is that visualization employs visual techniques to  Helping with the construction of user interfaces (Peridot, display data, software, algorithms and programs, but does State Transition UIMS), and not use these techniques to program visually.  Most significantly, financial planning with spreadsheets.For Program Visualization:  Helping to teach algorithms involving data structures (Sorting out Sorting, BALSA),  Helping to teach program concepts, such as Prolog code execution (TPM), and  Helping to debug programs (MacGnome). VI. VISUAL PROGRAMMING VERSUS PROGRAM VISUALIZATION Graphical interfaces fall within one of two categories:Visual Programming (VP) or Program Visualization (PV), bothof which are subclasses of Visual Languages. The formercategory is comprised of interfaces which allow the user to Figure 1. Visual Programming vs. Program Visualizationcreate programs graphically, whereas the latter category is 1comprised of interfaces which convert previously-written There a re also integrated development environments for textual programming languages that have been called “visual” for marketingconventional code to a viewable form. In the past, the domains reasons.© 2011 ACEEE 59DOI: 0.IJIT.01.03. 22
    • ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011As shown in Figure 1, visual programming and program constructed, or to be understood and analyzed. The knowledgevisualization complement each other. Program visualization K is obtained through the user’s cognitive capability C,generates visualizations from specifications of software particularly the perceptual ability in the context of visualsystems, while visual programming generates software programming and program visualization. The knowledge alsosystems from visual specifications. Combining the two enhances the cognitive capability and plays the key role inapproaches allows Round-Trip Visualization, for example by driving the interactive exploration E through the user interface.producing a visual presentation from the source code of a Through the user interface, the user provides specifications Ssystem, changing this visual presentation, and generating a for the program to be developed or the algorithms and theirnew system. By such a definition, the system which we hope parameters to be applied. Upon the specification supplied, ato achieve through our approach proposed would technically visual program V is displayed and ed­ited as an image I. In thebe referred to as a VP system, since the “only” qualifier in the context of program visualization, V represents the visualizationPV definition eliminates any other possibility. That is, a VP of a program’s properties, such as status, structure, interac­tionsystem can have some PV aspects, such as graphical among its components, or output results. Its image I is perceiveddebugging, and yet still be considered VP. However, it is by the user, with an increase in knowledge K as a result. Programunclear in our minds that such definitions were meant to P is what the user is interested. It is to be developed in the caseapply to a system with extensive use of both PV and VP of visual programming, or comprehended and analyzed in thetechniques, as would be needed in a reconfig­urable system. case of pro­gram visualization. The program in this conceptualWe therefore anticipate a need for a new class of visual model has a broader sense than the traditionally understoodlanguage which extensively incorporates both PV and VP program as defined by Graham (1987). P can be any of thetechniques. Such a hybrid visual programming language following:would permit the graphical creation of pro­grams (as in VP)  A code sequence conforming to a traditionalfrom visualized pre-existing conventional code (as in PV). programming language such as Java,The pre-existing conventional code could be adjusted  A code sequence conforming to a mark-up languageexternal to the system, and subsequent system sessions such as XML which may not necessarily carry anywould then reflect these changes using PV techniques. The computation, orcode could then be configured interactively us­ing VP  A binary code or data structure generated (e.g. by atechniques. These ideas are included in our approach and parser) from a high-level specification.will be implementing within a software framework which As defined in Section 2, visual programming (VP) refers to athrough him we hope to achieve an Ideal Visual Software process in which the user specifies programs in a two or moreEngineering System. dimensional fashion, i.e. in the direction of V to P. Program visualization (PV), on the other hand, refers to a process in whichB. The Conceptual Model certain properties of a program are displayed in a two or more To explain the visual programming process supported by dimensional fashion according to the user’s selec­tion ofa VPL, we use a high level conceptual model to illustrate the parameters and/or algorithms. The process of PV is clearly inroles of the user, user interface, and visual program. This the direction of P to V. Usually, a VPL aims at easing the processmodel also clearly defines the differences between visual of program specification S through graphical interaction andprogramming and program visualization, which play direct manipulation with a minimal requirement of thecomplementary roles in software development. We adapt the programming knowledge. The easiness of the specification Smodel of van Wijk (2006) that was used to identify the major for a given program P is measured by the amount of time Tingredients, costs and gains in the field of visualization. The required, represented by dS/dt, While a PV system aims atadapted model, illustrated in Figure 2, considers the major maximizing the user’s gain in his/her knowledge K about theingredients of the user, user-interface, and program, rather program P under analysis. The measurement of PV’sthan those of the user, visualization, and data in the context effectiveness is made when the user takes time T to gainof visualization. additional knowledge K(T)-K(0) about the program P, represented by dK/dt. An Ideal Visual Software Engineering System should support Round-Trip Vis-ual Engineering by incorporating both visual programming and program visualization. Consistent graphical formalisms in both VP and PV are desirable in order to maintain the user’s mental map (Misue et al, 1995) throughout the life-cycle of the development. VII.GENERAL PROBLEMS AND AREAS FOR FUTURE RESEARCHFigure 2. A Conceptuel Model of Visual Programming and Program Visualization As described in the previous section, the largest area forThe boxes in Figure 2 denote containers; add circles denote future research is to prove that Visual Languages will actuallyprocesses that transform inputs into outputs. The user is help users. Although these systems are attractive for a numbermodeled with his/her knowledge K about the program to be of reasons, and some have been successfully used, they share© 2011 ACEEE 60DOI: 01.IJIT.01.03.22
    • ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011a number of more technical problems unsolved which are fruitful Fortunately, prelim­inary results are appearing for the advantagesareas for future research. of using graphics for teaching students how to program [18]. Poor representations. Many visual representations are simplyA. All Visual Languages not very good. Programs are hard to understand once created The problems mentioned in this section apply to many Visual and difficult to debug and edit. This is especially true once theProgramming and Program Visualization Systems. programs get to be a non-trivial size.Difficulty with large programs or large data. Almost all visual Lack of Portability of Programs. A program written in arepresentations are physically larger than the text they replace, textual language can be sent through electronic mail, and used,so there is often a problem that too little will fit on the screen. read and edited by anybody. Graphical languages require specialThis problem is alleviated to some extent by scrolling and various software to view and edit; otherwise they can only be viewedabstraction mechanisms. on hard­copy.Need for automatic layout. When the program or data gets tobe large, it can be very tedious for the user to have to place each B. Specific Problems for Visual Programmingcomponent, so the system should lay out the pic­ture Lack of functionality. Many VP systems work only in aautomatically. Unfortunately, for many graphical representations, limited domain.generating an attractive layout can be difficult, and generating a Inefficiency: Most VP systems run programs very slowly.perfect layout may be intractable. For example, generating an  Unstructured programs. Many VP systems promoteoptimal layout of graphs and trees is NP-Complete [20]. More unstructured programming practices in the software engineeringresearch is needed, therefore, on fast layout algorithms for graphs sense (like GOTO). Many do not provide abstraction mechanismsthat have good user interface characteristics, such as avoiding (procedures, local variables, etc.) which are necessary forlarge scale changes to the display after a small edit. programs of a reasonable size.Lack of formal specification. Currently, there is no formal way  Static representations of programs that are hard to underto describe a Visual Language. Something equivalent to the stand. For flowcharts, AMBIT and similar systems, the pro-BNFs used for textual languages is needed. This would provide gram begins to look like a maze of wires. For Rehearsal Worldthe field with a ‘’hard science’’ foundation, and may allow tools and similar  systems, the static representation is simplyto be created that will make the construction of editors and normal linear code.compilers for Visual Languages easier. Chang [19] [21], Glinert No place for comments. An interesting point is that virtually[22] and Selker [23] have made attempts in this direc­tion, but no VP system provides a place for comments.much more work is needed. Many Visual Programs do not integrate with programsTremendous difficulty in building editors and environments. created in different languages, such as text. A Visual ProgramMost Visual Languages require a specialized editor, compiler, might be appropriate for some aspects of the programming taskand debugger to be created to allow the user to use the language. but not others. An exception is MPL (A Graphical ProgrammingWith textual languages, conventional, existing text editors can Environment for Matrix Processing based on Logic andbe used and only a compiler and possibly a debugger need to be Constraints) which uses a Visual Language for matrices and awritten. Currently, each graphical language requires its own editor textual language for everything else. Another approach is forand environment, since there are no general purpose Visual the compiler for the visual programming language to generateLanguage editors. These editors are hard to create because there conventional computer programs (e.g., in C), so they can beare no ‘’editor­­compilers’’ or other similar tools to help. The combined with other programs.‘’compiler-compiler’’ tools used to build compilers for textual C. Specific Problems for Program Visualizationlanguages are also rarely useful for building compilers andinter­preters for Visual Languages. In addition, the language  Difficulty in specifying the display. Newer Programdesigner must create a system to display the pictures from the Visualization systems are beginning to ease the task of specifyinglanguage, which usually requires low-level graphics the display, but it can still be very difficult to design and pro­grampro­gramming. Other tools that traditionally exist for textual the desired graphics. Some systems, such as BALSA-II make itlanguages must also be created, including pretty-printers, hard- easy to choose from a pre-defined set of displays, but creatingcopy facilities, program checkers, indexers, cross-referencers, other displays can still be very difficult because it involves makingpattern matching and searching (e.g., ‘’grep’’ in Unix), etc. These low-level calls to the graphics primitives.problems are made worse by the historical lack of portability of Problem of controlling timing. For dynamic data visualization,most graphics programs. it is difficult to specify when the displays should be updated.Lack of evidence of their worth. There are not many Visual Issues of aesthetics in timing are very important to produceLanguages that would be generally agreed are ‘’successful,’’ useful animations.and there is little in the way of formal experiments or informalexperience that shows that Visual Languages are good. It would VIII. SUMMARYbe interesting to see experimental results that demonstrated that Visual Programming and Program Visualization are excitingvisual programming techniques or iconic languages were better areas of active computer science research that show promise forthan good textual methods for performing the same tasks. Metrics improving the programming process (i.e. to improve the usermight include learning time, execution speed, retention, etc. interface to programming environments), especially for non-© 2011 ACEEE 61DOI: 0.IJIT.01.03. 22
    • ACEEE Int. J. on Information Technology, Vol. 01, No. 03, Dec 2011programmers or novice programmers, but more work needs to [10] Olivier Clarisse and Shi-Kuo Chang, “VICON: A Visual Iconbe done. A number of interesting systems have been created in Manager”, Visual Languages. New York: Plenum Press, pp. 151–each area, and there are some that cross the boundaries. This 190, 1986.paper has attempted to classify some of these systems and [11] Burnett, M.M., Baker, M.J.: A classification system for visual programming languages. J. Vis. Lang. Comput. 5(3), pp. 287–300present the general problems with them in hopes that this will ,1994.clarify the use of the terms and provide a context for future [12] M. Erwig, and B. Meyer.: Heterogeneous Visual Languages-research. The success of spreadsheets demonstrates that if we Integrating Visual and Textual Programming. In 11th IEEE Symp,find the appropriate paradigms, graphical techniques can On Visual Languages, Darmstadt. pp. 318–325, 1995.revolutionize the way people interact with computers. The paper [13] J. H. Maloney, A. Borning and B. N. Freeman-Benson.:also gives a brief description of our approach that concentrated Constraint Technology for User-Interface Construction in ThingLabon both Visual Programming and Program Visualization for II. In Proceedings OOPSLA 89, ACM SIGPLAN Notices, Vol. 24,an Ideal Visual Software Engineering Environment. This No. 10, pp. 381–388, 1989.has allowed us to reduce training time and programming time [14] D. W. Mcintyre.: Design and Implementation with Vampire. In M. M. Burnett, A. Goldberg, and T. Lewis, eds.: Visual Object-on our manipulators from weeks to days, or even hours. We Oriented Programming: Concepts and Environments. Englewoodbelieve that this novel approach will open a new-direction in Cliffs, Prentice-Hall, 1994.the programming languages development field. [15] C. Dos Santos, “Visualisation métaphorique tridimensionnelle de l’information”, Ph.D. thesis, Ecole nationale supérieure des REFERENCES télécommunications, PARIS-ENST, 2002. [16] Shu, N. C. Visual Programming Languages: A Perspective and[1] C. Lewis and G.M. Olson. “Can Principles of Cognition Lower a Dimensional Analysis, pp. 11–34. Plenum Press, 1986.the Barriers to Programming?”, Empirical Studies of Programmers, [17] Chang, S. Visual languages: A tutorial and survey. IEEEvol. 2, Ablex, 1987. Software, 4(1):pp. 29–39, January 1987.[2] Ben Shneiderman, “Direct Manipulation: A Step Beyond [18] Nancy Cunniff, Robert P. Taylor, and John B. Black, “DoesProgramming Languages”, IEEE Computer. pp. 57–69, Aug, 1983. Programming Language Affect the Type of Conceptual Bugs in[3] Daniel C. Halbert, “Programming by Example”, PhD Thesis, Beginners’ Programs? A Comparison of FPL and Pascal”,Computer Science Division, Dept. of EE&CS, University of Proceedings SIGCHI’86: Human Factors in Computing Systems,California, Berkeley, 1984, Also: Xerox Office Systems Division, Boston, MA. pp. 175–182, April 13–17, 1986.Systems Development Department, TR OSD-T8402, December, [19] S. K. Chang, M. Tauber, B. Yu, and J.S. Yu, “A Visual Language1984. Compiler”, IEEE Transactions on Software Engineering. pp. 506–[4] Brad A. Myers, “Visual Programming, Programming by 525, May, 1989.Example, and Program Visualization; A Taxonomy”, Proceedings [20] D. S. Johnson, “The NP-Completeness Column: an ongoingSIGCHI’86: Human Factors in Computing Systems. Boston, MA, guide”, Journal of Algorithms, pp. 89–99, 1982.pp. 59–66, April 13–17, 1986. [21] Shi-Kuo Chang, G. Tortora, Bing Yu, and A. Guercio, “Icon[5] Brad A. Myers, “The State of the Art in Visual Programming Purity - Toward a Formal Theory of Icons”, 1987 Workshop onand Program Visualization”, Carnegie Mellon University Computer Visual Languages. August 19–21, 1987. Linkoping, Sweden. IEEEScience Department Technical Report No. CMU-CS-88-114. Feb, Computer Society, pp. 3–16.1988. [22] Ephraim P. Glinert and Jakob Gonczarowski, “A (Formal)[6] Dictionary of Computing. Oxford: Oxford University Press, Model for (Iconic) Programming Environments”, Human-Computer1983. Interaction-Interact’87, Elsevier Science Publishers (North[7] Joel McCormack and Paul Asente, “An Overview of the X Holland). pp. 283–290, 1987.Toolkit”, Proceedings of the ACM SIGGRAPH Symposium on User [23[ Ted Selker and Larry Koved, “Elements of Visual Language”,Interface Software, Banff, Alberta, Canada. pp 46–55, Oct, 17-19, IEEE Workshop on Visual Languages. October 10–12, 1988.1988. Pittsburgh,[8] Robert B. Grafton and Tadao Ichikawa, eds. IEEE Computer, PA. Computer Society Order Number 876, IEEE Computer SocietySpecial Issue on Visual Programming. Aug, 1985. Press, Terminal Annex, P.0. Box 4699, Los Angeles, CA 90051. pp.[9] David C. Smith, “Pygmalion: A Computer Program to Model 38–43, 1988.and Stimulate Creative”, Thought. Basel, Stuttgart: Birkhauser,1977.© 2011 ACEEE 62DOI: 01.IJIT.01.03.22