Visual Programming: Concepts and Implementations

Total Page:16

File Type:pdf, Size:1020Kb

Visual Programming: Concepts and Implementations Computer Science and Systems Analysis Computer Science and Systems Analysis Technical Reports Miami University Year Visual Programming: Concepts and Implementations Elizabeth Howard Miami University, [email protected] This paper is posted at Scholarly Commons at Miami University. http://sc.lib.muohio.edu/csa techreports/33 DEPARTMENT OF COMPUTER SCIENCE & SYSTEMS ANALYSIS TECHNICAL REPORT: MU-SEAS-CSA-1994-000 Visual Programming: Concepts and Implementations Elizabeth Vera Howard School of Engineering & Applied Science | Oxford, Ohio 45056 | 513-529-5928 ABSTRACT VISUAL PROGRAMMING: CONCEPTS AND IMPLEMENTATIONS by Elizabeth Vera Howard The computing environment has changed dramatically since the advent of the computer. Enhanced computer graphics and sheer processing power have ushered in a new age of computing. User interfaces have advanced from simple line entry to powerful graphical interfaces. With these advances, computer languages are no longer forced to be sequentially and textually-based. A new programming paradigm has evolved to harness the power of today's computing environment - visual programming. Visual programming provides the user with visible models which reflect physical objects. By connecting these visible models to each other, an executable program is created. By removing the inherent abstractions of textual languages, visual programming could lead computing into a new era. This paper will introduce the concepts of visual computing. A set of evaluative criteria for visual programming languages has been developed and will be used to compare two visual languages: National Instrument's LabVlEW and The Gunakara Sun Systems' ProGraph. VISUAL PROGRAMMING: CONCEPTS AND IMPLEMENTATIONS A Thesis Submitted to the Faculty of Miami University in partial fulfillment of the requirements for the degree of Master of Systems Analysis Department of Systems Analysis by Elizabeth Vera Howard Miami University Oxford, Ohio 1994 Reader ;P; $?A Table of Contents 1.0 Introduction ....................................:........................................................................... 1 2.0 Visual Computing ........................................................................................................2 2.1 Interfacing With Computers ............................................................................. 3 2.2 Scientific Visualization .....................................................................................4 3.0 Visual Aids for Programming ....................................................................................... 6 3.1 Visualization ...................................................................................................7 4.0 Visual Programming ....................................................................................................9 5.0 Visual Language Evaluation .......................................................................................16 6.0 Comparison of Two Visual Languages: LabVlEW and ProGraph ...............................22 6.1 LabVIEW ........................................................................................................26 6.1.1 Overview ..........................................................................................26 6.1.2 Scope ..............................................................................................35 6.1.3 Intended Audience ..........................................................................36 6.1.4 Paradigm......................................................................................... 36 6.1.4.1 Dataflow Programming...................................................... 37 6.1.5 Ease of Use .....................................................................................39 6.1.6 Visual Representation...................................................................... 40 6.1.7 Compiler ..........................................................................................40 6.1.8 Reusability .......................................................................................40 6.1.9 Data Structures and Types ..............................................................41 6.1 -10 Effective Use of Screen Area .........................................................41 6.1.1 1 Hardware .......................................................................................42 6.1.1 2 Operating Systems ........................................................................42 6.1.1 3 Animation (runtime visualization) ....................................................42 6.1.14 Effective Use of Colors................................................................... 42 6.1.1 5 Clarity of Graphical Symbols........................................................... 43 6.1.1 6 Interactive Capabilities................................................................... 43 6.1.1 7 Extensibility.................................................................................... 43 6.1.1 8 Interface Capabilities With Other Languages .................................44 6.1.1 9 Analysis Capabilities ......................................................................44 6.2 LabVlEW Implementation of a Spectrum Analyzer Virtual Instrument .............. 45 6.3 ProGraph........................................................................................................ 56 6.3.1 Overview ..........................................................................................56 6.3.2 Scope ..............................................................................................60 6.3.3 Intended Audience ..........................................................................60 6.3.4 Paradigm .........................................................................................60 6.3.4.1 Object-Oriented Programming ...........................................61 6.3.4.2 Classification of Objects and Encapsulation ...................... 61 6.3.4.3 Inheritance .......................................................................62 6.3.5 Ease of Use..................................................................................... 66 6.3.6 Visual Representation...................................................................... 67 6.3.7 Compiler ..........................................................................................67 6.3.8 Reusability .......................................................................................68 6.3.9 Data Structures and Types ..............................................................68 6.3.10 Effective Use of Screen Area .........................................................68 6.3.11 Hardware .......................................................................................69 6.3.1 2 Operating Systems ........................................................................69 6.3.1 3 Animation (runtime visualization) ....................................................69 6.3.1 4 Effective Use of Colors................................................................... 69 6.3.1 5 Clarity of Graphical Symbols........................................................... 70 6.3.1 6 Interactive Capabilities ...................................................................70 6.3.1 7 Extensibility.................................................................................... 70 6.3.18 Interface Capabilities with Other Languages ..................................70 6.3.1 9 Analysis Capabilities ......................................................................71 6.4 ProGraph Implementation of an Object-Oriented Gradebook Application ........ 72 7.0 Conclusion.................................................................................................................. 85 7.1 Evaluative Criteria ...........................................................................................85 7.2 LabVlEW versus ProGraph .............................................................................85 7.3 Usefulness of the Visual Programming Paradigm ............................................89 8.0 Reflections.................................................................................................................. 91 Appendix A . Student Class Method Diagrams of ProGraph Gradebook Application ...........92 Bibliography................................................................................................................. 102 iii 1.0 Introduction Early programming languages mimicked the needs of von Neumann computer architecture hardware and necessarily used sequential, simple, character-based input and output statements. Programming languages progressed from machine and assembly code to natural language-based textual approaches in an effort to make algorithms more readable. Textual languages are inherently one-dimensional and focus on sequential execution of algorithms. This forced programmers essentially to restrict their designs to a linear organization. The facilities that textual programming languages "provide for describing algorithms correspond more closely to how computers operate than to the cognitive or perceptual processes of the programmer." [Cox et a/ 19891. Computer hardware technology, however, has improved at an impressively high rate since the advent of the computer. With the introduction of new processor chips, such as DEC's Alpha, Motorola's PowerPC, and Intel's Pentium, the race is afoot to offer even greater capabilities and sheer processing power. Computer
Recommended publications
  • Advancing Automatic Programming: Regeneration, Meta-Circularity, and Two-Sided Interfaces
    SOFTNET 2019 Advancing Automatic Programming: Regeneration, Meta-circularity, and Two-Sided Interfaces HERWIGMANNAERT NOVEMBER 2 7 , 2 0 1 9 • Automatic Programming • Toward Automatic Regeneration • Creating Meta-Circular Regeneration • On Meta-Programming Interfaces ADVANCING AUTOMATIC PROGRAMMING • Concluding Facts and Thoughts Overview • Questions and Discussion • Automatic Programming • Concept and Trends • Remaining Challenges • Toward Automatic Regeneration ADVANCING AUTOMATIC PROGRAMMING • Creating Meta-Circular Regeneration • On Meta-Programming Interfaces Overview • Concluding Facts and Thoughts • Questions and Discussion Automatic Programming • Automatic programming: • The act of automatically generating source code from a model or template • Sometimes distinguished from code generation, as performed by a compiler • Has always been a euphemism for programming in a higher-level language than was then available to the programmer [David Parnas] • Also referred to a generative or meta-programming • To manufacture software components in an automated way • It is as old as programming itself: System.out.println(“Hello world.”); System.out.println(“System.out.println(\“Hello world.\”);”); The Need for Automatic Programming • Goal is and has always been to improve programmer productivity • In general, to manufacture software components in an automated way, in the same way as automation in the industrial revolution, would: • Increase programming productivity • Consolidate programming knowledge • Eliminate human programming errors • Such
    [Show full text]
  • Turing's Influence on Programming — Book Extract from “The Dawn of Software Engineering: from Turing to Dijkstra”
    Turing's Influence on Programming | Book extract from \The Dawn of Software Engineering: from Turing to Dijkstra" Edgar G. Daylight∗ Eindhoven University of Technology, The Netherlands [email protected] Abstract Turing's involvement with computer building was popularized in the 1970s and later. Most notable are the books by Brian Randell (1973), Andrew Hodges (1983), and Martin Davis (2000). A central question is whether John von Neumann was influenced by Turing's 1936 paper when he helped build the EDVAC machine, even though he never cited Turing's work. This question remains unsettled up till this day. As remarked by Charles Petzold, one standard history barely mentions Turing, while the other, written by a logician, makes Turing a key player. Contrast these observations then with the fact that Turing's 1936 paper was cited and heavily discussed in 1959 among computer programmers. In 1966, the first Turing award was given to a programmer, not a computer builder, as were several subsequent Turing awards. An historical investigation of Turing's influence on computing, presented here, shows that Turing's 1936 notion of universality became increasingly relevant among programmers during the 1950s. The central thesis of this paper states that Turing's in- fluence was felt more in programming after his death than in computer building during the 1940s. 1 Introduction Many people today are led to believe that Turing is the father of the computer, the father of our digital society, as also the following praise for Martin Davis's bestseller The Universal Computer: The Road from Leibniz to Turing1 suggests: At last, a book about the origin of the computer that goes to the heart of the story: the human struggle for logic and truth.
    [Show full text]
  • Model Based Software Development: Issues & Challenges
    Model Based Software Development: Issues & Challenges N Md Jubair Basha 1, Salman Abdul Moiz 2 & Mohammed Rizwanullah 3 1&3 IT Department, Muffakham Jah College of Engineering & Technology, Hyderabad, India 2IT Department, MVSR Engineering College, Hyderabad, India E-mail : [email protected] 1, [email protected] 2, [email protected] 3 Abstract - One of the goals of software design is to model a system in such a way that it is easily understandable . Nowadays the tendency for software development is changing from manual coding to automatic code generation; it is becoming model-based. This is a response to the software crisis, in which the cost of hardware has decreased and conversely the cost of software development has increased sharply. The methodologies that allowed this change are model-based, thus relieving the human from detailed coding. Still there is a long way to achieve this goal, but work is being done worldwide to achieve this objective. This paper presents the drastic changes related to modeling and important challenging issues and techniques that recur in MBSD. Keywords - model based software; domain engineering; domain specificity; transformations. I. INTRODUCTION domain engineering and application. The system described by a model may or may not exist at the time Model is an abstraction of some aspect of a system. the model is created. Models are created to serve Model-based software and system design is based on the particular purposes, for example, to present a human end-to-end use of formal, composable and manipulable understandable description of some aspect of a system models in the product life-cycle.
    [Show full text]
  • Visual Programming: a Programming Tool for Increasing Mathematics Achivement
    ARTICLES VISUAL PROGRAMMING: A PROGRAMMING TOOL FOR INCREASING MATHEMATICS ACHIVEMENT By CHERYL SWANIER * CHERYL D. SEALS ** ELODIE BILLIONNIERE *** * Associate Professor, Mathematics and Computer Science Department, Fort Valley State University ** Associate Professor, Computer Science and Software Engineering Department, Auburn University *** Doctoral Student, Computer Science and Engineering Department, Arizona State University ABSTRACT This paper aims to address the need of increasing student achievement in mathematics using a visual programming language such as Scratch. This visual programming language facilitates creating an environment where students in K-12 education can develop mathematical simulations while learning a visual programming language at the same time. Furthermore, the study of visual programming tools as a means to increase student achievement in mathematics could possibly generate interests within the computer-supported collaborative learning community. According to Jerome Bruner in Children Learn By Doing, "knowing how something is put together is worth a thousand facts about it. It permits you to go beyond it” (Bruner, 1984, p.183). Keywords : Achievement, Creativity, End User Programming, Mathematics Education, K-12, Learning, Scratch, Squeak, Visual Programming INTRODUCTION programming language as a tool to create Across the nation, math scores lag (Lewin, 2006). Students mathematical tutorials. Additionally, this paper provides a are performing lower than ever. Lewin reports, for “the modicum of information as it relates to the educational second time in a generation, education officials are value of visual programming to mathematical rethinking the teaching of math in American schools” achievement. Peppler and Kafai (2007) indicate “game (p.1). It is imperative that higher education, industry, and players program their own games and learn about K-12 collaborate to ascertain a viable solution to the software and interface design.
    [Show full text]
  • Comparing SSD Forensics with HDD Forensics
    St. Cloud State University theRepository at St. Cloud State Culminating Projects in Information Assurance Department of Information Systems 5-2020 Comparing SSD Forensics with HDD Forensics Varun Reddy Kondam [email protected] Follow this and additional works at: https://repository.stcloudstate.edu/msia_etds Recommended Citation Kondam, Varun Reddy, "Comparing SSD Forensics with HDD Forensics" (2020). Culminating Projects in Information Assurance. 105. https://repository.stcloudstate.edu/msia_etds/105 This Starred Paper is brought to you for free and open access by the Department of Information Systems at theRepository at St. Cloud State. It has been accepted for inclusion in Culminating Projects in Information Assurance by an authorized administrator of theRepository at St. Cloud State. For more information, please contact [email protected]. Comparing SSD Forensics with HDD Forensics By Varun Reddy Kondam A Starred Paper Submitted to the Graduate Faculty of St. Cloud State University in Partial Fulfillment of the Requirements for the Degree Master of Science in Information Assurance May 2020 Starred Paper Committee: Mark Schmidt, Chairperson Lynn Collen Sneh Kalia 2 Abstract The technological industry is growing at an unprecedented rate; to adequately evaluate this shift in the fast-paced industry, one would first need to deliberate on the differences between the Hard Disk Drive (HDD) and Solid-State Drive (SSD). HDD is a hard disk drive that was conventionally used to store data, whereas SSD is a more modern and compact substitute; SSDs comprises of flash memory technology, which is the modern-day method of storing data. Though the inception of data storage began with HDD, they proved to be less accessible and stored less data as compared to the present-day SSDs, which can easily store up to 1 Terabyte in a minuscule chip-size frame.
    [Show full text]
  • What Is It and Why Should VFP Developers Care?
    The X-Sharp Project What is it and why should VFP developers care? X# Vendor Session October 2019 X#: a new incarnation of an old development language X# Vendor Session October 2019 Agenda • A bit of history • Why X# • What is X# • X# and Visual FoxPro • New Features • Where can I get it X# Vendor Session October 2019 xBase languages, a bit of History -1 • Started at JPL with a project called Vulcan, by Wayne Ratliff (PTDOS, Later CP/M) (1978) • Ashton Tate bought it and released it under the name dBASE II for Apple II and DOS (1980) • An improved version dBASE III in 1984 • In the 80’s several competitors appeared on the market: Clipper, FoxBASE, DBXL, QuickSilver, Arago, Force, FlagShip and many more. Together these products were called “xBase”. The share the programming language and many functions and working with DBF files • Some were faster, others allowed to sell royalty free compiled versions of apps • Then Microsoft launched Windows in 1990 X# Vendor Session October 2019 xBase languages, a bit of History -2 • The move to Windows resulted in several product changes, also products were sold and resold: • dBase (AT) -> (Borland, Inprise, Borland) • QuickSilver -> Borland, then vanished • FlagShip -> MultiSoft (Various Unix versions, Windows) • Clipper (Nantucket)-> Visual Objects (Computer Associates) • FoxBASE (Fox Software) -> FoxPro (Microsoft) • Some products “died” • New products appeared, especially as successors of Clipper • (x) Harbour (open source, also for unix) • Xbase++ X# Vendor Session October 2019 xBase languages, a bit of History -3 • Now in the 2010’s most of these products are ‘dead’, no longer developed for various reasons.
    [Show full text]
  • E.W. Dijkstra Archive: on the Cruelty of Really Teaching Computing Science
    On the cruelty of really teaching computing science Edsger W. Dijkstra. (EWD1036) http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF The second part of this talk pursues some of the scientific and educational consequences of the assumption that computers represent a radical novelty. In order to give this assumption clear contents, we have to be much more precise as to what we mean in this context by the adjective "radical". We shall do so in the first part of this talk, in which we shall furthermore supply evidence in support of our assumption. The usual way in which we plan today for tomorrow is in yesterday’s vocabulary. We do so, because we try to get away with the concepts we are familiar with and that have acquired their meanings in our past experience. Of course, the words and the concepts don’t quite fit because our future differs from our past, but then we stretch them a little bit. Linguists are quite familiar with the phenomenon that the meanings of words evolve over time, but also know that this is a slow and gradual process. It is the most common way of trying to cope with novelty: by means of metaphors and analogies we try to link the new to the old, the novel to the familiar. Under sufficiently slow and gradual change, it works reasonably well; in the case of a sharp discontinuity, however, the method breaks down: though we may glorify it with the name "common sense", our past experience is no longer relevant, the analogies become too shallow, and the metaphors become more misleading than illuminating.
    [Show full text]
  • A Visual Programming Language for Data Flow Systems
    Rochester Institute of Technology RIT Scholar Works Theses 10-14-1988 A Visual Programming Language for Data Flow Systems Timothy J. Wilson Follow this and additional works at: https://scholarworks.rit.edu/theses Recommended Citation Wilson, Timothy J., "A Visual Programming Language for Data Flow Systems" (1988). Thesis. Rochester Institute of Technology. Accessed from This Thesis is brought to you for free and open access by RIT Scholar Works. It has been accepted for inclusion in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact [email protected]. Rochester Institute of Technology School of Computer Science and Technology A Visual Programming Language for Data Flow Systems by Timothy J. Wilson A thesis submitted to The Faculty of the School of Computer Science and Technology in partial fulfillment of the requirements for the degree of Master of Science in Computer Science. Approved by: Dr. Peter Lutz 10-18-88 Dr. Andrew Kitchen 10-18-88 Dr. Peter Anderson 10-18-88 October 14, 1988 Abstract The concept ofvisual programming languages is described and some necessary terms are defined. The value of visual languages is presented and a number of different visual languages are described. Various issues, such as user interface design, are discussed. As an example of a visual programming language, a graphical data flow programming environment is developed for the Macintosh workstation which functions as a preprocessor to a data flow simulator developed at RIT. Examples are presented demonstrating the use of the language environment. Issues related to the devel opment of the programming environment are described and conclusions regarding the development ofvisual programming languages in general are presented.
    [Show full text]
  • 2019 State of Computer Science Education Equity and Diversity
    2019 State of Computer Science Education Equity and Diversity About the Code.org About the CSTA About the ECEP Alliance Advocacy Coalition Advocacy Coalition The Computer Science Teachers The Expanding Computing Bringing together more than 70 Association (CSTA) is a membership Education Pathways (ECEP) Alliance industry, non-profit, and advocacy organization that supports and is an NSF-funded Broadening organizations, the Code.org promotes the teaching of computer Participation in Computing Alliance Advocacy Coalition is growing science. CSTA provides opportunities (NSF-CNS-1822011). As an alliance the movement to make computer for K–12 teachers and their students to of 22 states and Puerto Rico, ECEP science a fundamental part of better understand computer science seeks to increase the number and K–12 education. and to more successfully prepare diversity of students in computing themselves to teach and learn. and computing-intensive degrees Advocacy through advocacy and policy reform. Coalition About the Code.org About the Expanding Computing Advocacy Coalition Education Pathways Alliance Advocacy Coalition Bringing together more than 70 industry, non-profit, The Expanding Computing Education Pathways and advocacy organizations, the Code.org Advocacy (ECEP) Alliance is an NSF-funded Broadening Coalition is growing the movement to make computer Participation in Computing Alliance (NSF-CNS-1822011). science a fundamental part of K–12 education. ECEP seeks to increase the number and diversity of students in computing and computing-intensive About the CSTA degrees by promoting state-level computer science education reform. Working with the collective impact model, ECEP supports an alliance of 22 states and Puerto Rico to identify and develop effective The Computer Science Teachers Association (CSTA) educational interventions, and expand state-level is a membership organization that supports and infrastructure to drive educational policy change.
    [Show full text]
  • Adaptec Maxcache™ SSD Caching Solutions: Reduce Latency by 13X; Improve Application Performance by up To
    Adaptec maxCache™ SSD Caching Solutions: Read Caching1 Performance — IOPs and2 Latency Reduce Latency by 13x; Improve Application SAS HDDs SAS HDDs w/maxCache SAS HDDs SAS HDDs w/maxCache Performance by up to 13x 50,000 100 40,000 What is SSD Caching? 75 30,000 ms SSD caching uses Solid State Drives (SSDs) and Hard Disk Drives (HDDs) to alleviate the bottleneck that can I/Os 50 20,000 occur between server processors and hard drives by intelligently routing data to the performance-optimized location. 10,000 25 0 0 SSD Caching and Adaptec maxCache SSD Caching Solutions I OP s Latency Adaptec maxCache 2.0 delivers up to 13x performance improvement in read-intensive I/O operations per • RAID 0 performance comparison under 100% Random Read IOmeter workload second (IOPs), and up to 13x latency reduction in read-intensive applications. Adaptec maxCache 2.0 also • SAS HDDs: eight 300GB 15k SAS HDDs in RAID 0 • SAS HDDs with maxCache3/5 2.0: eight 300GB 15k SAS HDDS in RAID4/6 0 with two 100GB introduces caching of write data to leverage the performance and latency capabilities of SSD technology SATA SSDs for maxCache cache pool for workloads with reads and writes. SAS HDDs SATA HDDs w/maxCache SAS HDDs SATA HDDs w/maxCache Adaptec maxCache 2.0 is available on 6Gb/s Series 6Q RAID controllers. Why Do Your Customers Need SSD Caching? 125 2,000 Information Technology (IT) and cloud computing environments around 1,600 100 the world are facing intense pressure to reduce capital and operating costs 75 while maintaining the highest levels of system1,200 performance.
    [Show full text]
  • Automatic Data Visualization for Novice Pascal Programmers
    Automatic Data Visualization for Novice Pascal Programmers Brad A. Myers Ravinder Chandhok Atul Sareen Computer Science Department Camegie Mellon University Pittsburgh, PA 15213-3890 (412) 268-2565 [email protected] ABSTRACT were designed to explain important concepts, such as which dimension of a multi-dimensioned array comes first, and Previous work has demonstrated that presenting the data which types are assignment compatible. In addition, a structures from programs in a graphical manner can graphic artist participated in the design so the pictures will be significantly help programmers understand and debug their visually appealing. programs. In most previous systems, however, the graphical displays, called data visualizations, had to be laboriously Graphical presentations for data structures are important for a hand created. The Amethyst system, which runs on Apple number of reasons. Human information processing is clearly Macintosh computers, provides attractive and appropriate optimized for pictorial information, and pictures make the default displays for data structures. The default displays data easier to understand for the programmer. This will make include the appropriate forms for literals of the simple types program debugging and program comprehension easier, inside type-specific shapes, and stacked boxes for records because the pictures provide a higher level of abstraction that and arrays. In the near future, we plan to develop rules for removes a number of irrelevant details. In particular, some layout of simple dynamic data structures (like linked lists and of the programming concepts that students have particular binary trees), and simple mechanisms for creating difficulty with can be much better explained with pictures. customized displays.
    [Show full text]
  • Taxonomies of Visual Programming and Program Visualization
    Taxonomies of Visual Programming and Program Visualization Brad A. Myers September 20, 1989 School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213-3890 [email protected] (412) 268-5150 The research described in this paper was partially funded by the National Science and Engineering Research Council (NSERC) of Canada while I was at the Computer Systems Research Institute, Univer- sity of Toronto, and partially by the Defense Advanced Research Projects Agency (DOD), ARPA Order No. 4976 under contract F33615-87-C-1499 and monitored by the Avionics Laboratory, Air Force Wright Aeronautical Laboratories, Aeronautical Systems Division (AFSC), Wright-Patterson AFB, OH 45433-6543. The views and conclusions contained in this document are those of the author and should not be interpreted as representing the of®cial policies, either expressed or implied, of the Defense Advanced Research Projects Agency of the US Government. This paper is an updated version of [4] and [5]. Part of the work for this article was performed while the author was at the University of Toronto in Toronto, Ontario, Canada. Taxonomies of Visual Programming and Program Visualization Brad A. Myers ABSTRACT There has been a great interest recently in systems that use graphics to aid in the programming, debugging, and understanding of computer systems. The terms ``Visual Programming'' and ``Program Visualization'' have been applied to these systems. This paper attempts to provide more meaning to these terms by giving precise de®nitions, and then surveys a number of sys- tems that can be classi®ed as providing Visual Programming or Program Visualization. These systems are organized by classifying them into three different taxonomies.
    [Show full text]