skip to main content
research-article
Open Access

LabVIEW

Published:12 June 2020Publication History
Skip Abstract Section

Abstract

LabVIEW™ is unusual among programming languages in that we did not intend to create a new language but rather to develop a tool for non-programmer scientists and engineers to assist them in automating their test and measurement systems.

Prior experience creating software for controlling instruments led us to the perspective that the software ought to be modeled as a hierarchy of ”virtual instruments”. The lowest level virtual instruments were simply reflections of the individual physical instruments they controlled. Higher level virtual instruments combined lower level ones to deliver more complex measurements. A frequency response virtual instrument could be implemented using a voltmeter and a sine-wave generator inside a loop that stepped through a frequency range. This was mostly an abstract concept at the time because it was hard to imagine how an existing language or tool could provide the rich yet intuitive experience of using a real instrument.

Inspired by the first Macintosh computer, we quickly realized the graphical user interface would be a natural way to interact with a virtual instrument, but it also sparked our imaginations about using graphics for creating software at a higher level of abstraction.

The February 1982 issue of IEEE Computer was devoted to data-flow models of computation, and it convinced us that graphical data-flow diagrams needed to be part of the solution. The major difficulty we saw, however, was the need to use cycles in the data-flow diagram to represent loops. Cycles increased complexity and made diagrams hard to understand and even harder to create.

This concern led to a major innovation in creating LabVIEW: merging structured programming concepts with data-flow. We represented control-flow structures as boxes in a data-flow diagram. We knew how to reason about loops, so we could introduce them as first class elements of the graphical representation rather than being constructed from lower-level elements. A box could encapsulate the semantics of the iterative behavior; it could clearly separate the body of the loop (the diagram inside the box) from the code before and after the loop (the diagram outside the box); and, its boundary could hold iteration state information.

Those fundamental concepts of ”graphical”, ”structured” and ”data-flow” enabled us to propose a software product. We staffed up a small skunkworks team to implement it. We called it LabVIEW. It was to be an engineer’s tool for automating measurement systems. At first, we were reluctant to admit that we had created a graphical programming language. When we finally did, we nicknamed it G, for Graphical language, so we could talk about the language as distinct from the integrated development environment (IDE), LabVIEW. In practice, almost everyone refers to both the language and the IDE as LabVIEW.

Without intending to do so, we created a programming language radically different from those that came before, pioneering techniques of graphically creating and viewing code, eliminating manual memory management without adding garbage collection overhead, and anticipating the massively parallel systems of the modern era. LabVIEW continues to evolve and thrive after more than 30 years.

References

  1. Samah Abu-Mahmeed, Cheryl Mccosh, Zoran Budimlić, Ken Kennedy, Kaushik Ravindran, Kevin Hogan, Paul Austin, Steve Rogers, and Jacob Kornerup. 2009. Scheduling Tasks to Maximize Usage of Aggregate Variables in Place. In Proceedings of the 18th International Conference on Compiler Construction: Held As Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009 (York, UK) (CC ’09). Springer-Verlag, Berlin, Heidelberg, 204–219. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Mahesh L. Chugani, Abhay R. Samant, and Michael Cerna. 1998. LabVIEW Signal Processing. Prentice-Hall, Upper Saddle River, NJ, USA.Google ScholarGoogle Scholar
  3. Fabian Czerwinski and Lene B. Oddershede. 2011. TimeSeriesStreaming.vi: LabVIEW program for reliable data streaming of large analog time series. Computer Physics Communications 182, 2 (Feb.), 485–489. Google ScholarGoogle ScholarCross RefCross Ref
  4. Alan L. Davis and Robert M. Keller. 1982. Data flow program graphs. Computer 15, 2 (Feb.), 26–41.Google ScholarGoogle ScholarCross RefCross Ref
  5. D. D. Gajski, D. A. Padua, and D. J. Kuck. 1982. A Second Opinion on Data Flow Machines and Languages. Computer 15, 2 (Feb), 58–69. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Per Brinch Hansen. 1975. The Programming Language Concurrent Pascal. IEEE Trans. Softw. Eng. 1, 1 (March), 199–207. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. IEEE. 1988. IEEE Standard Digital Interface for Programmable Instrumentation. ANSI/IEEE Std 488.1-1987 1, 488 (June), 1–96. Google ScholarGoogle ScholarCross RefCross Ref
  8. R. Jamal and L. Wenzel. 1995. The applicability of the visual programming language LabVIEW to large real-world applications. In Proceedings of Symposium on Visual Languages. IEEE, Darmstadt, Germany, Germany (Sep.), 99–106. Google ScholarGoogle ScholarCross RefCross Ref
  9. Gary W. Johnson and Richard Jennings. 2001. LabVIEW Graphical Programming (3rd ed.). McGraw-Hill Professional, New York, NY, USA.Google ScholarGoogle Scholar
  10. J. Kodosky, J. MacCrisken, and G. Rymar. 1991. Visual programming using structured data flow. In Proceedings 1991 IEEE Workshop on Visual Languages. IEEE, Kobe, Japan, Japan (Oct), 34–39. Google ScholarGoogle ScholarCross RefCross Ref
  11. Roberto Losito and Alessandro Masi. 2008. Controlling and measuring ion beams in real time - Researchers at CERN overcome unique and stringent test and measurement contraints using an integrated software and data acquisition system. R and d -Newton- 50 (04), 54–54.Google ScholarGoogle Scholar
  12. Alan S. Morris Morris and Reza Langari. 2016. Data Acquisition with LabVIEW. Chapter 12 of Measurement and Instrumentation: Theory and Application (2 ed.). Elsevier, North Andover, MA, USA. 347–374 pages.Google ScholarGoogle Scholar
  13. Barry E. Paton. 1999. Sensors, Transducers, &Amp; LabVIEW. Prentice Hall PTR, Upper Saddle River, NJ, USA.Google ScholarGoogle Scholar
  14. Stijn Schacht. 2018. The Materialise Control Platform: Using CompactRIO to Revolutionize 3D Printing. https://web.archive. org/web/20181002045341/http://sine.ni.com/cs/app/doc/p/id/cs-17674 . May 2018. Materialise used CompactRIO and LabVIEW to develop a ready-to-start, software-driven, embedded controller platform specifically for laser-based 3D printing applications. Accessed: 02-07-2020.Google ScholarGoogle Scholar
  15. Jeffrey Travis. 2000. Internet Applications in LabVIEW. Prentice Hall PTR, Upper Saddle River, NJ, USA.Google ScholarGoogle Scholar
  16. James J. Truchard and L. Wayne Ashby. 1978. AN/FQM-12(V) sonar test set. I: an automated acoustical measurement system. The Journal of the Acoustical Society of America 64, S1, S7–S7. Google ScholarGoogle ScholarCross RefCross Ref
  17. Zhongyuan Wang, Yongheng Shang, Jiarui Liu, and Xidong Wu. 2012. A LabVIEW based automatic test system for sieving chips. Measurement 46 (11).Google ScholarGoogle Scholar
  18. Kirsten N. Whitley, Laura R. Novick, and Doug Fisher. 2006. Evidence in Favor of Visual Representation for the Dataflow Paradigm: An Experiment Testing LabVIEW’s Comprehensibility. Int. J. Hum.-Comput. Stud. 64, 4 (April), 281–303. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Michael Wiltberger. 2007. Improving Retinal Disease Treatment with LabVIEW FPGA and Intelligent DAQ. https://web. archive.org/web/20190719014626/http://sine.ni.com/cs/app/doc/p/id/cs-698 . OptiMedica developed a system for the automated delivery of precisely timed, highly accurate laser pulses to treat retinal diseases. The company used LabVIEW FPGA and intelligent data acquisition hardware to deploy a controller for its innovative pattern scan laser photocoagulator. Accessed: 02-07-2020.Google ScholarGoogle Scholar
  20. Pawel Wrobel, M Bogovac, H Sghaier, Juan Leani, Alessandro Migliori, Roman Padilla Alvarez, Mateusz Czyzycki, Janos Osan, Ralf Kaiser, and Andreas Karydas. 2016. LabVIEW interface with Tango control system for a multi-technique X-ray spectrometry IAEA beamline end-station at Elettra Sincrotrone Trieste. Nuclear Instruments and Methods in Physics Research Section A: Accelerators, Spectrometers, Detectors and Associated Equipment 833 (07). Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. LabVIEW

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image Proceedings of the ACM on Programming Languages
          Proceedings of the ACM on Programming Languages  Volume 4, Issue HOPL
          June 2020
          1524 pages
          EISSN:2475-1421
          DOI:10.1145/3406494
          Issue’s Table of Contents

          Copyright © 2020 Owner/Author

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 12 June 2020
          • Online AM: 7 May 2020
          Published in pacmpl Volume 4, Issue HOPL

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!