LabVIEW

LabVIEW
复制标题

DOI:
10.1145/3386328
复制
发表时间:
2020-06-01
影响因子:
1.8
通讯作者:
Kodosky, Jeffrey
Kodosky, Jeffrey
中科院分区:
其他
文献类型:
--
作者:
Kodosky, Jeffrey

文献摘要

被引文献

相似文献

LabVIEWT是不寻常的编程语言,我们不打算创建一个新的语言,而是开发一个工具,为非程序员的科学家和工程师,以帮助他们在自动化的测试和测量系统。以前的经验,创造软件控制仪器使我们的观点,软件应该被建模为一个层次的“虚拟仪器”。最低级的虚拟仪器,不过是他们操控的物理仪器的镜像。更高级别的虚拟仪器结合了较低级别的虚拟仪器,以提供更复杂的测量。频率响应虚拟仪器可以使用电压表和正弦波发生器在一个循环内实现,该循环步进通过一个频率范围。这在当时是一个抽象的概念,因为很难想象现有的语言或工具如何提供使用真实的乐器的丰富而直观的体验。受到第一台Macintosh计算机的启发,我们很快意识到图形用户界面将是与虚拟乐器交互的自然方式,但它也激发了我们关于使用图形在更高抽象层次上创建软件的想象力。1982年2月的IEEE计算机杂志专门讨论了计算的数据流模型,它使我们相信,图形化的数据流图需要成为解决方案的一部分。然而,我们看到的主要困难是需要在数据流图中使用循环来表示循环。循环增加了复杂性,使图表难以理解,甚至更难创建。这种关注导致了创建LabVIEW的重大创新:将结构化编程概念与数据流相结合。我们将控制流结构表示为数据流图中的方框。我们知道如何推理循环,所以我们可以将它们作为图形表示的第一类元素引入,而不是从低级元素构建。盒子可以封装迭代行为的语义,它可以清楚地将循环的主体(盒子内的图)与循环前后的代码(盒子外的图)分开,并且它的边界可以保存迭代状态信息,这些基本的“图形化”,“结构化”和“数据流”概念使我们能够提出一个软件产品。我们组建了一个小型的臭鼬工作小组来实现它,我们称之为LabVIEW。它将成为工程师自动化测量系统的工具。起初,我们不愿意承认我们已经创建了一个图形化编程语言。当我们最终这样做时,我们给它起了个绰号G,代表图形语言,这样我们就可以把这种语言与集成开发环境(IDE)LabVIEW区别开来。在实践中,几乎所有人都把这门语言和IDE都称为LabVIEW。我们无意中创建了一种与以前截然不同的编程语言,开创了图形化创建和查看代码的技术,消除了手动内存管理而不增加垃圾收集开销,并预见了现代大规模并行系统。LabVIEW经过30多年的发展和繁荣。
LabVIEWT 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.