A Framework for GUI Program Portability Adam Faldalla Victor Matos Paul J. Jalics Payoff

Size: px
Start display at page:

Download "A Framework for GUI Program Portability Adam Faldalla Victor Matos Paul J. Jalics Payoff"

Transcription

1 A Framework for GUI Program Portability Adam Faldalla Victor Matos Paul J. Jalics Payoff From the programmer's point of view, writing new GUI-based applications is more difficult than writing non-gui-based programs, especially when using object-oriented (OO) design, implementation methodologies, and programming languages. One concern is the proliferation of different GUI systems and languages, as well as wizards that generate GUI interfaces, which makes the portability of such applications across systems difficult. This article presents a case study of a genealogical family-tree application implemented in six different GUI systems, to illustrate the cross-gui platform portability problems, and a proposal is presented for making such applications more portable across various GUI systems. Introduction The success of the ubiquitous personal computer (PC)as a multi-purpose tool is largely due to the simplification of the graphical user interface (GUI). The new generation of interfaces is based on intuitive, self-explanatory graphics that invite the user to explore the application in a more natural way. Programming for GUI-based applications, however, is much more complex than writing non-gui-based programs. This difference is especially apparent when object-oriented (OO) design, implementation methodologies, and OO programming languages are involved. The programmer can only hope that the additional complexity of writing such programs is counterbalanced by the quality of the human interface and the application's ease-of-use once running. Most important, the proliferation of GUI wizards, systems, and languages makes the portability of such applications across systems difficult indeed. This article presents a case study of a genealogical family-tree application implemented in six different GUI systems, which illustrates the cross-gui platform portability problems. The authors also propose a solution for making such applications more portable across various GUI systems. Higher-level programming languages, such as C and C++, have made great strides in program portability from platform to platform and across operating systems in the past 10 to 15 years. This portability is no longer so prevalent in GUI-based programs, because the GUI system calls are so different on the various GUI environments. Furthermore, even if the GUI calls are the same, class libraries that help simplify GUI access are generally incompatible across different compiler. Finally, even general-purpose libraries, such as container class libraries, are significantly incompatible on different compilers. Some hope of alleviating the problems exists in this area: A number of GUI systems, such as PowerBuilder, are available on multiple platforms. Of even more significance, Java browsers and GUI class libraries are designed to be platform and operating system independent. Today's programmer need only look at current PC and workstation applications to appreciate the quality of such applications as word processors, spreadsheets, and accounting packages. Not only do these programs provide an attractive graphical interface, but in many cases they also can be used without any training, because they adhere to common conventions and are designed to be intuitive. Most of these programs can be categorized as GUI programs, because they use GUI and in addition are organized very differently than non-gui programs.

2 Non-GUI programs tend to be deterministic: The program starts at the top, and then often goes into a loop, inputting data and waiting for the data to be ready. It then processes the data and outputs some results. The program executes operating system requests, which on a typical UNIX system could be any of about 64 services mostly related to input/output, with disk file reads and writes the most highly requested a vast majority of the time. GUI programs, on the other hand, often consist of code to paint a screen or window and then put themselves in an endless loop, waiting for such events as mouse clicks, character inputs, the push of a button, or the selection of a menu item. When one of these events occurs, the appropriate event-handler procedure is executed. Most application code is placed either in the event-handling procedures themselves or in procedure calls made from the event-handling procedures. GUI programs typically call on system services that are more complex, consisting of over 350 services on Microsoft windows and about 700 services on OS/2 Presentation Manager. To illustrate the points covered in this article, a case study of the FamTree application will be discussed in some detail. It is a family tree application with three screens, each of which has menus: A People Screen This is used to input, view, and modify data about individual persons in the family data base, including name, gender, and birth and death dates (see Exhibit 1). A Relationships Screen This is used to input, edit, and view relationships between any two persons in the family data base (see Exhibit 2). A FamTree Report Screen This is used to produce ancestor trees and descendent trees of persons in the family data base (see Exhibit 3). The FamTree people Screen The FamTree Relationship Screen The FamTree Report Screen A student wrote the application as a research project, on a Macintosh using Think C, an object-oriented language similar to C++. The application consists of 2,636 lines of Think C code. The program makes use of an object-oriented class library (Think) to interface to the GUI on the Macintosh. The authors of this article started with very little knowledge of any of the seven GUI systems involved but with a solid background in computer science and systems programming. The project's goal was to learn about application portability by making this application work in the same way on seven different GUI systems: Macintosh Think C. Microsoft Visual C++ on Microsoft Windows. Borland C++ on Microsoft Windows. X-Windows using the OSF/Motif GUI System.

3 Tcl/Tk on X-Windows interfacing to the C++ application code. Microsoft Visual Basic interfacing to the C++ application code. Microsoft Access under Windows. Porting to Microsoft Visual C++: Port 1 The first port (port 1) turned the Think C Application code into C++ with minimal difficulties. The GUI interface, however, was totally different and hard to understand. Replacing it with the Microsoft Foundation Classes (MFC)GUI Application Framework usage turned out to be a challenge. The menu, window, and screen (dialog box) creations were all in Think C calls and were replaced totally by design work in the interactive application studio. The studio allowed the menus and the three dialog boxes to be created in minutes in a totally visual manner, with no code written at all and thus not a single GUI system call and none of the myriad of parameters usually required for such calls. The rest of the application contained a few dozen GUI calls throughout the various implementation functions that were difficult to identify and replace with MFC calls. The C++ compiler proved very useful in pinpointing C++ classes that were in the Think C application framework but not in the Visual C++ environment. In fact, there is very little, if any, commonality of GUI interfaces at this time across different systems. As a first step, these calls were commented out and analogous calls were sought in the MFC application framework. The use of a dynamically growing array to store the people data posed another problem. This was done on the Macintosh using a container class library class, which did not exist in the other systems. The immediate solution was to substitute the MFC class for such arrays, but the same problem recurred on the next port to Borland C++. Finally, a new class was created and used throughout the application. The class was implemented as a wrapper class for the MFC class, so that the next port would simply involve changing the implementation of this class. The use of this array throughout the application reduces the effort at each porting. Porting to Borland C++: Port 2 This port is very similar to port 1; the developers, however, were more familiar with the application this time. The menus and the three dialog boxes were again created by time spent in the Resource Workshop, in which the facilities were similar to those in the Visual C++. The rest of the GUI calls were reinvented, but this process was much simpler because the functions that needed to be done, in what places in the code, were very clear. Investigation of the functionality of the Object Windows application framework was timeconsuming, but the results most often were in the form of a line-for-line replacement of the MFC C++code with Object Windows calling code. Inconveniences included situations in which both of the systems have a facility for serializing or archiving the family data base, but the code to do it was considerably different, and the disk files written by one could not be read by the other. Porting to OSF/Motif and X-Windows: Port 3 Another important GUI system is X-Windows on UNIX systems; the system is available in OSF/Motif and Xlib libraries of subroutines. The starting point was the Borland C++ code from port 2, although the Microsoft Visual C++ code(port 1) would have required just the same effort. There is nothing analogous to the Application Studio in this case, and the

4 system does not have the polish of the previous two systems investigated, from the developer's point of view. The menu and dialog box creation was all done using Motif or Xlib calls from within the code, similar to what was done originally in the Macintosh program. The debugging tools were also inferior to the previous two systems, although easy printf and I/O stream debug outputs to the UNIX window were easier and very useful for debugging. The code worked in a relatively short time, although the original appearance of the dialog boxes from the Macintosh was hard to mimic, because of the power and flexibility of placement of controls in a window and because of all the dynamic resizing based on current data and window size. Porting to Tcl/Tk under X-Windows: Port 4 In search of a system more polished and automated than Motif and X-Windows on UNIX systems, the authors attempted an interesting scripting language called Tcl, from UC Berkeley, with an X-Windows add-on called Tk. The goal here was to keep as much of the C++ application intact but to do the GUI in Tcl/Tk. This necessitated isolation of the GUI portion from the family tree application itself; the family tree application manages the family data base of persons and their relationships, and it is able to produce reports of those relationships. Because only the GUI aspects are to be done in Tk and the application itself did not need to be rewritten in Tcl, identification was necessary of all the GUI code. The developers had to remove it and replace it with procedure calls to a new C++ module, PortableGui.C, that then made calls to Tk, which had access to all the GUI interfaces. Exhibit 4 depicts the organization of this Tk-based family tree application. The TCL/Tk Program Structure Creating the menus and dialog boxes was ultimately much simpler than creating them in Motif, but the same difficulties showed up as did in Motif, in terms of recreating the screens to appear exactly like the originals in the Macintosh. Whereas this system is not at all like the Application Studio, it is easier than Motif calls from C++ and can be recommended for a host of applications under X-Windows. PortableGui.C had 24 functions to replace the 24 different GUI calls found in the C++ application after the port to Borland C++. The functions included setting and getting the values of text boxes, radio buttons, adding to and deleting from list boxes, and finding the currently selected entry in list boxes. (Exhibit 5 contains a full list of the functions.) GUI Access Calls Needed by the FamTree Application SetFileName(char *newfilename); GetFileName(char*filename, int maxlen); SetRel(char *newrelname); SetPerson1(char*newname); SetPerson2(char *newname); GetGens(char *newnumgens,int maxlen); int GetAncestor(); AddFtree(char *newname,int position); AddList1(char *newname,int position); AddList2(char*newname,int position); AddList3(char *newname,int position); DeleteList1(int poisition); GetRoot(char *newname,int maxlen); SetRoot(char*newname); GetName(char *newname,int maxlen); GetBirth(char*newname,int maxlen); GetDeath(char *newname,int maxlen); int GetMale();

5 int GetPerson1B(); SetName(char *newname); SetBirth(char*newname); SetDeath(char *newname); SetMale(int); int GetListPos(int listboxid); This one part of the GUI interface was always called from the C++ family tree application code, it set some part of the screen or instructed the C++ application as to what data was in that part of the screen. The other part of the GUI interface was the event handler, which by this point in the project was coded in Tk; the event handler needed to call the C++ family tree application whenever a menu choice was made or a button was pressed by the user, such as the one that caused a person to be added to the family data base in the People dialog box. In these cases, no data is passed to the C++ application. Instead, a C++ event-handler function is executed, and it may call PortableGui.C for getting the needed GUI data. Porting to Visual Basic: Port 5 Perhaps the most interesting port was to Microsoft Visual Basic (VB). The GUI aspects of Visual Basic were very impressive. The developers wanted to experiment with linking a VB GUI with the C++ application as it existed after the Tcl/Tk port. All that was needed was to replace the implementation of PortableGui.C with an implementation that calls VB instead of Tk. After much experimentation, the developers used a Windows facility, called Dynamic Data Exchange (DDE), to link VB with the C++ application, as shown in Exhibit 6. DDE functionality is now provided as part of OLE. Each of the text boxes became a DDE server that would respond to DDE requests from the C++ application. In addition, the C++ application became a server to which one could send command requests from VB, such as for a menu selection or a button having been pressed. A DDE remote-execute facility was used to communicate with some other controls, such as list boxes and radio buttons. Structure of a VB Application Porting to Microsoft Access under Windows: Port 6 The final port was attempted because a data base package might be seen as a natural choice for implementing the FamTree application. Interfacing to the C++ application was not considered; instead, however, the application was rewritten in Access Basic. The menu and dialog box design was done in an application studio similar to Borland C++ or Visual C++. The application code was rewritten in Access macros (80 lines) whenever possible and in Access Basic (941 lines) for the rest. Recoding the application code in Access Basic took less time and trouble than anticipated, and the language itself is much improved over the not-so-impressive ancestor, Basic. The number of lines of code is only half as much as any of the other implementations. However, the GUI work of dialog boxes and menus is not easily measured in lines of code, because this design work is all done interactively. There is no printable output similar to the noninteractively written code to create menus and dialog boxes, as is the C++ code in the Macintosh and X-Windows implementations.

6 Effort Needed for Each Porting The following table shows the number of hours of work required for each of the portings of the family tree application. The authors had much experience with C++, some experience with an older DOS-based Borland GUI class library called TurboVision, and very little GUI programming experience outside of small modifications to a small X- Windows program. Environment Conversion Hours Code Size (Lines) Macintosh Think C Microsoft Visual C Borland C OSF/Motif+X-Windows Tcl/Tk VB-DDE-C Microsoft Access Environment Conversion Hours Code Size (Lines) Macintosh Think C Microsoft Visual C Borland C OSF/Motif+X-Windows Tcl/Tk VB-DDE-C Microsoft Access The average time for porting the application is about 98 hours. Surprisingly, the very first port, Microsoft Visual C++ on Microsoft Windows, required one of the shortest times, 79 hours: The application was unknown to the authors when this began, and the Visual C++ environment was new to them as well. Port 2, Borland C++, took the shortest time: 75 hours. The authors had no experience with Borland C++, but by this time the application was better known and the functionality and ways of Borland and Visual C++ were quite familiar. Furthermore, the authors had some experience with Borland's earlier C++ compiler and the TurboVision GUI for DOS, as well as with the Borland container class library. X-Windows, port 3, took 92 hours, much of which was spent learning to paint the screens, which had to be programmed. The scheme for programming screens is complicated. Multiple layers of window frames had to be created and positioned to place the controls on the screen as desired. The algorithm of recursively going through the layers of window frames, determining what each needs for its dimensions, and then sizing each accordingly is very powerful but also difficult to work with. Tcl/Tk took 82 hours, most of which was spent on learning the Tcl/Tk scripting language and how it interfaces to C++ application code. Results for a subsequent GUI applications would likely yield much better times. Visual Basic took the longest time, 157 hours, most of which was spent trying to establish communication between the C++ application and Visual Basic. Learning to make clients and servers of both the application and the Visual Basic GUI is certainly in tune with current trends. The authors would, however, avoid this combination of C++ and Visual Basic if at all possible. Finally, Microsoft Access took 102 hours, most of which was spent learning this fourth-generation tool, which is very much different from the other third-generation language tools. If the authors were to choose a tool for implementing a similar GUI

7 application, they might well choose Access in the hopes of recovering their investment in time in the second application. Separating the Application from the GUI The above ports of the FamTree application naturally emphasized the need for creating GUI application programs to be portable across widely varying GUI systems. This is especially true because there is little standardization of GUI systems across platforms, operating systems, and language systems. As one example, one company has built a large business application in Objective C on a Next but now may need to rewrite it all in a Windows 95 environment. The amount of work needed to make this conversion is staggering. The road to the portability of GUI applications begins by separating the code into three parts: The Application Code This is GUI system independent; it calls the interface to access GUI. The Interface Module This module is called from the Application module to access GUI services. It is completely different for each application and consists of 24 very short procedures for FamTree. The GUI Module This part handles menus, paints the screens, and responds to such events as button pushes and mouse movements by calling the Application module. This decomposition process is summarized in the GUI programs' portability framework, as illustrated in Exhibit 7. Such decomposition is imperative, because the GUI code would by default be intermixed all over the application. The first goal in a portable system is to design the application part of the code so that it needs only to be recompiled to move to another system. The interface module(i.e., as in PortableGui.C) must implement GUI calls of the given system and will be rewritten completely for each GUI system for which the application needs to be ported. Finally, the GUI part must be written from scratch for each system. Overview of GUI Programs Portability Framework For the FamTree application the X-Windows Motif version the application code is 1,506 lines of code, or 75% of the total, the interface is 166 lines, or 8%, and the GUI code is 344 lines, 17%. When porting this application, developers may find that 75% of the code can stay untouched, that the 8% Interface needs major modification, and that the 17% GUI needs to be rewritten from scratch. The GUI code is often automatically generated based on interactive design in an application studio or resource workshop. Therefore, in such environments, the code for the main program, the event handlers, and the screen and menu display is all written by the compiler system itself. In a more polished system, such as Microsoft Visual C++ or Borland C++, porting an application involves some interactive work. This means using an application wizard to make the main program, using a resource workshop to design menus and screens, and a class wizard to create the event handlers required and then insert calls to the application code for each event. After that, the user must adapt the interface code to that GUI system. Thus the actual lines of code that need to be rewritten come to about 10% for the above application. In the judgment of the authors, this is a very satisfactory level of effort for porting a GUI application. Finally, if an application is ported again to a third system, the porting work done on the first port is so similar that it can be done with very modest effort. The only challenge is to

8 learn the GUI class library calls for the new target system, which is needed to modify the Interface. Interfaces between the application and the GUI The People screen (which is used to enter people and their data and to view and modify this data) is an example of the interface that the application code uses to access GUI data. The application needs the following functions, which are implemented in PortableGui.C, where they make up 10 of the 24 interface procedures: [Tab]GetName(char * name, int maxlen) SetName(char* newname) GetBirth(char * bdate, int maxlen) SetBirth(char* newname) GetDeath(char * bdate, int maxlen) SetDeath(char* newname) int GetMale() SetMale(int maleis1) AddList1(char* newname, int position) DeleteList1(char * int position) Exhibit 1, the FamTree People screen, shows that all the application needs to get the data that the user has typed on the screen is to use the Get procedures, which typically return a character string whose maximum length is specified as the second parameter. At other times, when the user has selected a different person by clicking the appropriate entry in the list box on the right, the application code must find and put on the screen the data for that person, which is done by the Set procedures. Finally, the AddList1 procedure adds an entry to the list box on the right at the position specified, whereas DeleteList1 deletes an existing entry. The only functions supported are those the FamTree uses, so there might be a Set for some controls without a Get if the application does not require one. As an example of the use of the above procedures, clicking Peter Miller in the list box causes the application to set the Name text box to Peter Miller using SetName( Peter Miller ). The application sets the birth date text box to by executing SetBirth( ),then executes SetDeath( ), and finally executes SetMale(1). There is no need for Set or Get procedures for the four buttons ADD, CHANGE, DELETE, and CLEAR, because users can select these themselves, causing an event-handling procedure that is part of the GUI code to be executed. That GUI event-handling procedure, perhaps for example named OnAddButton will, in turn, call the application code procedure DoCommand(ADDBUTTON). As an example of the implementation of this Interface, the implementations of GetName and SetMale for Visual C++ are shown as they occur in PortableGui.C: GetName(XLPSTR cptr, int smax) { gppeople->getdlgitemtext(idc_ppl_edit_name,(lpstr) cptr, smax); return 0; } SetMale(int ind) { int checked=ind? IDC_PPL_RAD_MALE : IDC_PPL_RAD_FEMALE; gppeople->checkradiobutton(idc_ppl_rad_male, IDC_PPL_RAD_FEMALE, checked); return 0; } The code is GUI system dependent and changes with every port. Porting GUI applications requires substantial effort unless the program design clearly isolates the application code, the GUI code, and an interface module that allows the application code to talk to the GUI components. If the code is so organized, porting such

9 an application is simpler, the code to be changed is well isolated and identified, and the amount of code that needs to be modified is as little as 10% of the total lines. The beginner's efforts to port an application for the various GUI systems attempted are all close, with only about a 20% difference between all but one system. Also, the work is smallest for the two commercial GUI systems, in which most of the GUI work is done interactively in an application studio instead of writing code that calls GUI system calls to paint screens and menus. These produce larger code sizes, but most of the extra code is automatically generated. Surprisingly, the results for some of the latest 4GL tools, such as Access and Visual Basic took more time than the traditional C++ programming environments. One of the obstacles to portability is that the GUI Class libraries are completely different on every compiler, on every platform. Until more standardization is achieved in this area, the authors' proposition is to isolate GUI code in an interface module clearly identified and localized. Similarly, general-purpose class libraries, such as container classes, are a stumbling block to portability. Users can avoid using these class libraries altogether to improve portability, or they can create wrapper classes of their own that make use of the local class libraries in implementing the wrapper class. Therefore, the application is unaware of their use, and porting to a new system consists of simply replacing the class implementation with the best facilities in the target environment. A special case of the above relates to the highly useful facility in C++ class libraries called archiving or serializing data to files. Not only are these facilities totally incompatible in the various systems, but the data files they create are incompatible across compilers. So if the developer wants to make the data from an application also portable, these facilities should be avoided in favor of the traditional way of writing the data to normal files that are more easily portable. Experimentation such as was done in this project is most useful in, even essential to, staying current in this rapidly changing field of applied computer science. Author Biographies Adam Faldalla Adam Faldalla, Ph.D., is Assistant Professor of Computer and Information Science at the Cleveland State University. Victor Matos Victor Matos, Ph.D., is Associate Professor of Computer and Information Science at the Cleveland State University. Paul J. Jalics Paul J. Jalics, Ph.D., is Professor of Computer and Information Science at the Cleveland State University.

10

11

12

13

14

15

In his paper of 1972, Parnas proposed the following problem [42]:

In his paper of 1972, Parnas proposed the following problem [42]: another part of its interface. (In fact, Unix pipe and filter systems do this, the file system playing the role of the repository and initialization switches playing the role of control.) Another example

More information

Figure 4.1: The evolution of a rooted tree.

Figure 4.1: The evolution of a rooted tree. 106 CHAPTER 4. INDUCTION, RECURSION AND RECURRENCES 4.6 Rooted Trees 4.6.1 The idea of a rooted tree We talked about how a tree diagram helps us visualize merge sort or other divide and conquer algorithms.

More information

Title Unknown Annapurna Valluri

Title Unknown Annapurna Valluri Title Unknown Annapurna Valluri 1. Introduction There are a number of situations, one comes across in one s life, in which one has to find the k nearest neighbors of an object, be it a location on a map,

More information

Autonomous Knowledge Agents

Autonomous Knowledge Agents Autonomous Knowledge Agents How Agents use the Tool Command Language Raymond W. Johnson Artificial Intelligence Center Lockheed Missiles and Space Corporation 3251 Hanover Street Palo Alto, CA 94304-1191

More information

Getting started 7. Setting properties 23

Getting started 7. Setting properties 23 Contents 1 2 3 Getting started 7 Introduction 8 Installing Visual Basic 10 Exploring the IDE 12 Starting a new project 14 Adding a visual control 16 Adding functional code 18 Saving projects 20 Reopening

More information

CPS221 Lecture: Threads

CPS221 Lecture: Threads Objectives CPS221 Lecture: Threads 1. To introduce threads in the context of processes 2. To introduce UML Activity Diagrams last revised 9/5/12 Materials: 1. Diagram showing state of memory for a process

More information

Preprocessor Directives

Preprocessor Directives C++ By 6 EXAMPLE Preprocessor Directives As you might recall from Chapter 2, What Is a Program?, the C++ compiler routes your programs through a preprocessor before it compiles them. The preprocessor can

More information

Using Microsoft Visual Studio to Create a Graphical User Interface

Using Microsoft Visual Studio to Create a Graphical User Interface Using Microsoft Visual Studio to Create a Graphical User Interface ECE 480: Design Team 11 Application Note Joshua Folks April 3, 2015 Abstract: Software Application programming involves the concept of

More information

OO Development and Maintenance Complexity. Daniel M. Berry based on a paper by Eliezer Kantorowitz

OO Development and Maintenance Complexity. Daniel M. Berry based on a paper by Eliezer Kantorowitz OO Development and Maintenance Complexity Daniel M. Berry based on a paper by Eliezer Kantorowitz Traditional Complexity Measures Traditionally, Time Complexity Space Complexity Both use theoretical measures,

More information

AS COMPUTERS AND THEIR USER INTERFACES have become easier to use,

AS COMPUTERS AND THEIR USER INTERFACES have become easier to use, AS COMPUTERS AND THEIR USER INTERFACES have become easier to use, they have also become more complex for programmers to deal with. You can write programs for a simple console-style user interface using

More information

Opening Microsoft Visual Studio. On Microsoft Windows Vista and XP to open the visual studio do the following:

Opening Microsoft Visual Studio. On Microsoft Windows Vista and XP to open the visual studio do the following: If you are a beginner on Microsoft Visual Studio 2008 then you will at first find that this powerful program is not that easy to use for a beginner this is the aim of this tutorial. I hope that it helps

More information

LECTURE/ STUDY NOTES ON C

LECTURE/ STUDY NOTES ON C LECTURE/ STUDY NOTES ON C PART I (Overview of C Programming) Introduction of C language History of C Importance of C Demerits of C Basic Structure of C Working steps of C compiler Source Code Object Code

More information

At the Forge Dojo Events and Ajax Reuven M. Lerner Abstract The quality of your Dojo depends upon your connections. Last month, we began looking at Dojo, one of the most popular open-source JavaScript

More information

An Overview of the BLITZ System

An Overview of the BLITZ System An Overview of the BLITZ System Harry H. Porter III Department of Computer Science Portland State University Introduction The BLITZ System is a collection of software designed to support a university-level

More information

How to Talk To Windows. What did it say?

How to Talk To Windows. What did it say? How to Talk To Windows What did it say? 1 DOS was essentially subservient. Your program was the master. When you wanted some service from DOS you called DOS it obeyed. You could even bypass DOS and communicate

More information

Introduction to Computers and Visual Basic.Net Pearson Education, Inc. All rights reserved.

Introduction to Computers and Visual Basic.Net Pearson Education, Inc. All rights reserved. 1 1 Introduction to Computers and Visual Basic.Net 2 OBJECTIVES In this chapter you will learn: Basic computing concepts. The different types of programming languages. The evolution of the Basic Programming

More information

Divisibility Rules and Their Explanations

Divisibility Rules and Their Explanations Divisibility Rules and Their Explanations Increase Your Number Sense These divisibility rules apply to determining the divisibility of a positive integer (1, 2, 3, ) by another positive integer or 0 (although

More information

C SCI The X Window System Stewart Weiss

C SCI The X Window System Stewart Weiss The X Window System The X Window System is a networking and display protocol which provides windowing on bitmapped displays. X provides the basic framework for building GUI environments, such as drawing

More information

Multi-touch Technology: Intuitive Functionality Advances Automation

Multi-touch Technology: Intuitive Functionality Advances Automation Multi-touch Technology: Intuitive Functionality Advances Automation Multi-touch HMI takes HMI visualization to the next level to improve performance, enhance safety and cut costs. A White Paper from InduSoft

More information

Chapter 5. Software Tools

Chapter 5. Software Tools Chapter 5 Software Tools 1 Introduction The demands of modern life require user-interface architects to build reliable, standard, safe, inexpensive, effective, and widely acceptable user interfaces on

More information

Spring It takes a really bad school to ruin a good student and a really fantastic school to rescue a bad student. Dennis J.

Spring It takes a really bad school to ruin a good student and a really fantastic school to rescue a bad student. Dennis J. Operating Systems * *Throughout the course we will use overheads that were adapted from those distributed from the textbook website. Slides are from the book authors, modified and selected by Jean Mayo,

More information

Achieving 24-bit Resolution with TASCAM s New-Generation DTRS Format Recorders / Reproducers

Achieving 24-bit Resolution with TASCAM s New-Generation DTRS Format Recorders / Reproducers Achieving 24-bit Resolution with TASCAM s New-Generation DTRS Format Recorders / Reproducers Introduction. The DTRS 16-bit format was originally seen by many people as an interim technology to bridge the

More information

First-Time Usability Testing for Bluetooth-Enabled Devices

First-Time Usability Testing for Bluetooth-Enabled Devices The University of Kansas Technical Report First-Time Usability Testing for Bluetooth-Enabled Devices Jim Juola and Drew Voegele ITTC-FY2005-TR-35580-02 July 2004 Project Sponsor: Bluetooth Special Interest

More information

FIOSys (How FIOSys Works)

FIOSys (How FIOSys Works) FIOSys (How FIOSys Works) A Software Developer's Tool that helps other Software Developers bring their products to market faster, with more advanced features, and added value so that their products are

More information

The Journal of Insect Science

The Journal of Insect Science The Journal of Insect Science http://www.insectscience.org Subject: Contact: Purpose: Publication Information / Workflow Adam Engelsgjerd 520.621.2502 engelsgjerda@u.library.arizona.edu This document is

More information

Usability Report. Author: Stephen Varnado Version: 1.0 Date: November 24, 2014

Usability Report. Author: Stephen Varnado Version: 1.0 Date: November 24, 2014 Usability Report Author: Stephen Varnado Version: 1.0 Date: November 24, 2014 2 Table of Contents Executive summary... 3 Introduction... 3 Methodology... 3 Usability test results... 4 Effectiveness ratings

More information

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science

Chapter 9. Introduction to High-Level Language Programming. INVITATION TO Computer Science Chapter 9 Introduction to High-Level Language Programming INVITATION TO Computer Science 1 Objectives After studying this chapter, students will be able to: Explain the advantages of high-level programming

More information

Scripting with CAMMaster and Visual Basic 2008

Scripting with CAMMaster and Visual Basic 2008 Introduction CAMMaster is a very high performance CAM software program. Most of the functions that you can perform manually can be automated by utilizing the methods and properties that are exposed by

More information

(Refer Slide Time 3:31)

(Refer Slide Time 3:31) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 5 Logic Simplification In the last lecture we talked about logic functions

More information

Visual Design Flows for Faster Debug and Time to Market FlowTracer White Paper

Visual Design Flows for Faster Debug and Time to Market FlowTracer White Paper Visual Design Flows for Faster Debug and Time to Market FlowTracer White Paper 2560 Mission College Blvd., Suite 130 Santa Clara, CA 95054 (408) 492-0940 Introduction As System-on-Chip (SoC) designs have

More information

Moving from BASIC to C with LabWindows /CVI

Moving from BASIC to C with LabWindows /CVI Application Note 055 Moving from BASIC to C with LabWindows /CVI John Pasquarette Introduction The instrumentation industry has historically used the BASIC language for automating test and measurement

More information

Graphics Performance Benchmarking Framework ATI. Presented to: Jerry Howard. By: Drew Roberts, Nicholas Tower, Jason Underhill

Graphics Performance Benchmarking Framework ATI. Presented to: Jerry Howard. By: Drew Roberts, Nicholas Tower, Jason Underhill Graphics Performance Benchmarking Framework ATI Presented to: Jerry Howard By: Drew Roberts, Nicholas Tower, Jason Underhill Executive Summary The goal of this project was to create a graphical benchmarking

More information

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS

PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Objective PRINCIPLES OF COMPILER DESIGN UNIT I INTRODUCTION TO COMPILERS Explain what is meant by compiler. Explain how the compiler works. Describe various analysis of the source program. Describe the

More information

An Operating System History of Operating Systems. Operating Systems. Autumn CS4023

An Operating System History of Operating Systems. Operating Systems. Autumn CS4023 Operating Systems Autumn 2017-2018 Outline 1 2 What is an Operating System? From the user s point of view an OS is: A program that acts as an intermediary between a user of a computer and the computer

More information

Project: E337 GRAPHIC INTERFACE DESIGN FOR SIMULATION SOFTWARE

Project: E337 GRAPHIC INTERFACE DESIGN FOR SIMULATION SOFTWARE Undergraduate Research Opportunity Programme (UROP) Project: E337 GRAPHIC INTERFACE DESIGN FOR SIMULATION SOFTWARE Supervisor Asst.Professor Ma MaoDe Nanyang Technological University Email: emdma@ntu.edu.sg

More information

Android PC Splash Brothers Design Specifications

Android PC Splash Brothers Design Specifications Android PC Splash Brothers Design Specifications Contributors: Zach Bair Taronish Daruwalla Joshua Duong Anthony Nguyen 1. Technology background The Android x86 project has been in existence since 2011.

More information

Scripting Languages TCL: Tool Command Language

Scripting Languages TCL: Tool Command Language History: Scripting Languages TCL: Tool Command Language 1987 Dr John Ousterhout plays with the idea of creating an embeddable command language so that all his little tools have the same language. Wanted

More information

Data analysis using Microsoft Excel

Data analysis using Microsoft Excel Introduction to Statistics Statistics may be defined as the science of collection, organization presentation analysis and interpretation of numerical data from the logical analysis. 1.Collection of Data

More information

Controlling Costs and Driving Agility in the Datacenter

Controlling Costs and Driving Agility in the Datacenter Controlling Costs and Driving Agility in the Datacenter Optimizing Server Infrastructure with Microsoft System Center Microsoft Corporation Published: November 2007 Executive Summary To help control costs,

More information

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen Computer Programming Computers can t do anything without being told what to do. To make the computer do something useful, you must give it instructions. You can give a computer instructions in two ways:

More information

Best Practice for Creation and Maintenance of a SAS Infrastructure

Best Practice for Creation and Maintenance of a SAS Infrastructure Paper 2501-2015 Best Practice for Creation and Maintenance of a SAS Infrastructure Paul Thomas, ASUP Ltd. ABSTRACT The advantage of using metadata to control and maintain data and access to data on databases,

More information

Getting started 7. Setting properties 23

Getting started 7. Setting properties 23 Contents 1 2 3 Getting started 7 Introducing Visual Basic 8 Installing Visual Studio 10 Exploring the IDE 12 Starting a new project 14 Adding a visual control 16 Adding functional code 18 Saving projects

More information

s(n) An Arithmetic Function of Some Interest, and Related Arithmetic

s(n) An Arithmetic Function of Some Interest, and Related Arithmetic s(n) An Arithmetic Function of Some Interest, and Related Arithmetic Gideon Samid, PhD samidg@tx.technion.ac.il Abstract: Every integer n > 0 є N defines an increasing monotonic series of integers: n 1,

More information

BECOME A LOAD TESTING ROCK STAR

BECOME A LOAD TESTING ROCK STAR 3 EASY STEPS TO BECOME A LOAD TESTING ROCK STAR Replicate real life conditions to improve application quality Telerik An Introduction Software load testing is generally understood to consist of exercising

More information

Utilizing a Common Language as a Generative Software Reuse Tool

Utilizing a Common Language as a Generative Software Reuse Tool Utilizing a Common Language as a Generative Software Reuse Tool Chris Henry and Stanislaw Jarzabek Department of Computer Science School of Computing, National University of Singapore 3 Science Drive,

More information

CS Reading Packet: "Database Processing and Development"

CS Reading Packet: Database Processing and Development CS 325 - Reading Packet: "Database Processing and Development" p. 1 CS 325 - Reading Packet: "Database Processing and Development" SOURCES: Kroenke, "Database Processing: Fundamentals, Design, and Implementation",

More information

Educational Fusion. Implementing a Production Quality User Interface With JFC

Educational Fusion. Implementing a Production Quality User Interface With JFC Educational Fusion Implementing a Production Quality User Interface With JFC Kevin Kennedy Prof. Seth Teller 6.199 May 1999 Abstract Educational Fusion is a online algorithmic teaching program implemented

More information

File System Interface and Implementation

File System Interface and Implementation Unit 8 Structure 8.1 Introduction Objectives 8.2 Concept of a File Attributes of a File Operations on Files Types of Files Structure of File 8.3 File Access Methods Sequential Access Direct Access Indexed

More information

HDF Virtualization Review

HDF Virtualization Review Scott Wegner Beginning in July 2008, The HDF Group embarked on a new project to transition Windows support to a virtualized environment using VMWare Workstation. We utilized virtual machines in order to

More information

Creating and Checking the PIRLS International Database

Creating and Checking the PIRLS International Database Chapter 8 Creating and Checking the PIRLS International Database Juliane Barth and Oliver Neuschmidt 8.1 Overview The PIRLS 2006 International Database is a unique resource for policy makers and analysts,

More information

Inventions on auto-configurable GUI-A TRIZ based analysis

Inventions on auto-configurable GUI-A TRIZ based analysis From the SelectedWorks of Umakant Mishra September, 2007 Inventions on auto-configurable GUI-A TRIZ based analysis Umakant Mishra Available at: https://works.bepress.com/umakant_mishra/66/ Inventions on

More information

An Overview of Visual Basic.NET: A History and a Demonstration

An Overview of Visual Basic.NET: A History and a Demonstration OVERVIEW o b j e c t i v e s This overview contains basic definitions and background information, including: A brief history of programming languages An introduction to the terminology used in object-oriented

More information

Virtual Machines WHEN YOU FINISH READING THIS CHAPTER YOU SHOULD BE ABLE TO:

Virtual Machines WHEN YOU FINISH READING THIS CHAPTER YOU SHOULD BE ABLE TO: C H A P T E R 1 9 Virtual Machines WHEN YOU FINISH READING THIS CHAPTER YOU SHOULD BE ABLE TO: Briefly describe the ideal program development environment. Distinguish between virtual and real. Briefly

More information

Developing Workstation-Based Client/Server Applications Steve Rabin

Developing Workstation-Based Client/Server Applications Steve Rabin 4-02-30 Developing Workstation-Based Client/Server Applications Steve Rabin Payoff Leveraging existing assets, both code and people, is one of the keys to successfully developing new distributed applications.

More information

CS140 Final Project. Nathan Crandall, Dane Pitkin, Introduction:

CS140 Final Project. Nathan Crandall, Dane Pitkin, Introduction: Nathan Crandall, 3970001 Dane Pitkin, 4085726 CS140 Final Project Introduction: Our goal was to parallelize the Breadth-first search algorithm using Cilk++. This algorithm works by starting at an initial

More information

Functional Programming Language Haskell

Functional Programming Language Haskell Functional Programming Language Haskell Mohammed Aslam CIS 24 Prof. Kopec Presentation: 03 Date: 05/05/2003 Haskell is a general purpose, purely functional programming language named after the logician

More information

Background Information About GTK+ and Related Libraries

Background Information About GTK+ and Related Libraries Background Information About GTK+ and Related Libraries The X Window System The X Window System is a networking and display protocol which provides windowing on bitmapped displays. X provides the basic

More information

Frequently asked questions from the previous class survey

Frequently asked questions from the previous class survey CS 370: OPERATING SYSTEMS [THREADS] Shrideep Pallickara Computer Science Colorado State University L7.1 Frequently asked questions from the previous class survey When a process is waiting, does it get

More information

Enhanced Debugging with Traces

Enhanced Debugging with Traces Enhanced Debugging with Traces An essential technique used in emulator development is a useful addition to any programmer s toolbox. Peter Phillips Creating an emulator to run old programs is a difficult

More information

Standards for Test Automation

Standards for Test Automation Standards for Test Automation Brian Tervo Windows XP Automation Applications Compatibility Test Lead Microsoft Corporation Overview Over the last five years, I ve had the opportunity to work in a group

More information

Optimizing Simulation of Movement in Buildings by Using People Flow Analysis Technology

Optimizing Simulation of Movement in Buildings by Using People Flow Analysis Technology Mobility Services for Better Urban Travel Experiences Optimizing Simulation of Movement in Buildings by Using People Flow Analysis Technology The high level of progress in urban planning is being accompanied

More information

(Refer Slide Time: 0:19)

(Refer Slide Time: 0:19) Theory of Computation. Professor somenath Biswas. Department of Computer Science & Engineering. Indian Institute of Technology, Kanpur. Lecture-15. Decision Problems for Regular Languages. (Refer Slide

More information

Binary Trees

Binary Trees Binary Trees 4-7-2005 Opening Discussion What did we talk about last class? Do you have any code to show? Do you have any questions about the assignment? What is a Tree? You are all familiar with what

More information

Software. CPU implements "machine code" instructions. --Each machine code instruction is extremely simple. --To run, expanded to about 10 machine code

Software. CPU implements machine code instructions. --Each machine code instruction is extremely simple. --To run, expanded to about 10 machine code Software Software - code that runs on the hardware I'm going to simplify things a bit here CPU implements "machine code" instructions --Each machine code instruction is extremely simple --e.g. add 2 numbers

More information

ELTMaestro for Spark: Data integration on clusters

ELTMaestro for Spark: Data integration on clusters Introduction Spark represents an important milestone in the effort to make computing on clusters practical and generally available. Hadoop / MapReduce, introduced the early 2000s, allows clusters to be

More information

COPYRIGHTED MATERIAL. Introduction. The History of the Platform. We learn from failure, not from success! Bram Stoker s Dracula

COPYRIGHTED MATERIAL. Introduction. The History of the Platform. We learn from failure, not from success! Bram Stoker s Dracula Introduction We learn from failure, not from success! Bram Stoker s Dracula The Microsoft Windows platform has evolved substantially over time. There have been clear ups and downs along the way, but Microsoft

More information

Lab Validation Report

Lab Validation Report Lab Validation Report NetApp SnapManager for Oracle Simple, Automated, Oracle Protection By Ginny Roth and Tony Palmer September 2010 Lab Validation: NetApp SnapManager for Oracle 2 Contents Introduction...

More information

OpenVMS Technical Journal V5

OpenVMS Technical Journal V5 OpenVMS Technical Journal V5 Porting RPG: Moving a Compiler to Itanium Mr. Bruce Claremont, Software Migration and OpenVMS Consultant Overview This article covers MSI's experience in porting its Migration

More information

Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay

Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Information Theory and Coding Prof. S. N. Merchant Department of Electrical Engineering Indian Institute of Technology, Bombay Lecture - 11 Coding Strategies and Introduction to Huffman Coding The Fundamental

More information

DRACULA. CSM Turner Connor Taylor, Trevor Worth June 18th, 2015

DRACULA. CSM Turner Connor Taylor, Trevor Worth June 18th, 2015 DRACULA CSM Turner Connor Taylor, Trevor Worth June 18th, 2015 Acknowledgments Support for this work was provided by the National Science Foundation Award No. CMMI-1304383 and CMMI-1234859. Any opinions,

More information

Computer Organization & Assembly Language Programming

Computer Organization & Assembly Language Programming Computer Organization & Assembly Language Programming CSE 2312 Lecture 11 Introduction of Assembly Language 1 Assembly Language Translation The Assembly Language layer is implemented by translation rather

More information

Microsoft Excel 2010

Microsoft Excel 2010 www.jadehorizon.com Microsoft Excel 2010 Sorting and Filtering Sorting and Filtering Microsoft Excel 2010 Table of Contents Table of Contents INTRODUCTION... 3 CONVENTIONS... 3 TABLE DESIGN RULES... 5

More information

Technical Briefing. The TAOS Operating System: An introduction. October 1994

Technical Briefing. The TAOS Operating System: An introduction. October 1994 Technical Briefing The TAOS Operating System: An introduction October 1994 Disclaimer: Provided for information only. This does not imply Acorn has any intention or contract to use or sell any products

More information

Lecture 1: Overview

Lecture 1: Overview 15-150 Lecture 1: Overview Lecture by Stefan Muller May 21, 2018 Welcome to 15-150! Today s lecture was an overview that showed the highlights of everything you re learning this semester, which also meant

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Use Default Form Instances

Use Default Form Instances Use Default Form Instances Created: 2011-01-03 Modified:2012-07-05 Contents Introduction... 2 Add Form Classes... 3 Starting Form (Home Page)... 5 Use Multiple Forms... 6 Different Ways of Showing Forms...

More information

Introduction. A. Bellaachia Page: 1

Introduction. A. Bellaachia Page: 1 Introduction 1. Objectives... 2 2. Why are there so many programming languages?... 2 3. What makes a language successful?... 2 4. Programming Domains... 3 5. Language and Computer Architecture... 4 6.

More information

Learning to Provide Modern Solutions

Learning to Provide Modern Solutions 1 Learning to Provide Modern Solutions Over the course of this book, you will learn to enhance your existing applications to modernize the output of the system. To do this, we ll take advantage of the

More information

Organization of User Interface Software

Organization of User Interface Software Organization of User Interface Software Administration Questions about assignments due and assignments assigned 2 What we will talk about Ways to organize UI code Different models of user interfaces as

More information

Object-Oriented Thinking

Object-Oriented Thinking Chapter 9 Object-Oriented Thinking Smalltalk is one of the pure Object-Oriented (OO) languages. Unlike C++, which makes it very easy to write procedural code (ie, use C++ as a better C), Smalltalk makes

More information

Multi-threading technology and the challenges of meeting performance and power consumption demands for mobile applications

Multi-threading technology and the challenges of meeting performance and power consumption demands for mobile applications Multi-threading technology and the challenges of meeting performance and power consumption demands for mobile applications September 2013 Navigating between ever-higher performance targets and strict limits

More information

Migrating IONA Orbix 3 Applications

Migrating IONA Orbix 3 Applications Migrating IONA Orbix 3 Applications Contrasting the migration path of Orbix 3 applications to Orbix 2000 and to Borland Enterprise Server, VisiBroker Edition by Will Edwards, Senior Consultant, The New

More information

Operating Systems 2010/2011

Operating Systems 2010/2011 Operating Systems 2010/2011 Introduction Johan Lukkien 1 Agenda OS: place in the system Some common notions Motivation & OS tasks Extra-functional requirements Course overview Read chapters 1 + 2 2 A computer

More information

An FPGA Project for use in a Digital Logic Course

An FPGA Project for use in a Digital Logic Course Session 3226 An FPGA Project for use in a Digital Logic Course Daniel C. Gray, Thomas D. Wagner United States Military Academy Abstract The Digital Computer Logic Course offered at the United States Military

More information

EPS Import Functionality for ReportLab

EPS Import Functionality for ReportLab A Proposal for the Synopsis By Mark Peters mark.peters@ivanhouse.com ReportLab is a Python Library designed to easily implement PDF output functionality into Python programs. Currently, ReportLab can import

More information

SAP testing accelerators are a new trend from software testing vendors

SAP testing accelerators are a new trend from software testing vendors APPENDIX B * Case Study: Accelerating SAP Testing SAP testing accelerators are a new trend from software testing vendors to introduce or facilitate automation testing efforts. SAP test accelerators are

More information

(Refer Slide Time: 01:40)

(Refer Slide Time: 01:40) Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #25 Javascript Part I Today will be talking about a language

More information

The Migration/Modernization Dilemma

The Migration/Modernization Dilemma The Migration/Modernization Dilemma By William Calcagni www.languageportability.com 866.731.9977 Approaches to Legacy Conversion For many years businesses have sought to reduce costs by moving their legacy

More information

Promoting Component Architectures in a Dysfunctional Organization

Promoting Component Architectures in a Dysfunctional Organization Promoting Component Architectures in a Dysfunctional Organization by Raj Kesarapalli Product Manager Rational Software When I first began my career as a software developer, I didn't quite understand what

More information

Excel programmers develop two basic types of spreadsheets: spreadsheets

Excel programmers develop two basic types of spreadsheets: spreadsheets Bonus Chapter 1 Creating Excel Applications for Others In This Chapter Developing spreadsheets for yourself and for other people Knowing what makes a good spreadsheet application Using guidelines for developing

More information

Control Abstraction. Hwansoo Han

Control Abstraction. Hwansoo Han Control Abstraction Hwansoo Han Review of Static Allocation Static allocation strategies Code Global variables Own variables (live within an encapsulation - static in C) Explicit constants (including strings,

More information

Running Head: Lab 4 STAT User Manual. User Manual. Prepared by: 411 Blue Team. Date: 12 December, Version 3

Running Head: Lab 4 STAT User Manual. User Manual. Prepared by: 411 Blue Team. Date: 12 December, Version 3 Running Head: Lab 4 STAT User Manual User Manual Prepared by: 411 Blue Team Date: 12 December, 2013 Version 3 Lab 4: STAT User Manual 2 Contents 1. Introduction (Christian)... 5 1.1 Background... 5 1.2

More information

developer.* The Independent Magazine for Software Professionals

developer.* The Independent Magazine for Software Professionals developer.* The Independent Magazine for Software Professionals Improving Developer Productivity With Domain-Specific Modeling Languages by Steven Kelly, PhD According to Software Productivity Research,

More information

In this article, a data format called ZINC is described that is both isomorphic to CIF

In this article, a data format called ZINC is described that is both isomorphic to CIF ZINC - Galvanizing CIF to Work with UNIX David R. Stampf Protein Data Bank Brookhaven National Laboratory Upton, NY 11973 Introduction Two of the stated goals of STAR 1 (and CIF 2 ) were to define a self-defining

More information

Benefits of Programming Graphically in NI LabVIEW

Benefits of Programming Graphically in NI LabVIEW Benefits of Programming Graphically in NI LabVIEW Publish Date: Jun 14, 2013 0 Ratings 0.00 out of 5 Overview For more than 20 years, NI LabVIEW has been used by millions of engineers and scientists to

More information

Introduction to SPIM Programming

Introduction to SPIM Programming Introduction to SPIM Programming It is important to note that the GT SPIM datapath is intended to serve as an example of a datapath programmed at the assembly language level as well as serve to convey

More information

Benefits of Programming Graphically in NI LabVIEW

Benefits of Programming Graphically in NI LabVIEW 1 of 8 12/24/2013 2:22 PM Benefits of Programming Graphically in NI LabVIEW Publish Date: Jun 14, 2013 0 Ratings 0.00 out of 5 Overview For more than 20 years, NI LabVIEW has been used by millions of engineers

More information

VISUAL EXPERT. "Comprehensive Application Documentation and Impact Analysis" PRODUCT REVIEWS CLUB. Discover Visual Expert!

VISUAL EXPERT. Comprehensive Application Documentation and Impact Analysis PRODUCT REVIEWS CLUB. Discover Visual Expert! PRODUCT REVIEWS VISUAL EXPERT "Comprehensive Application Documentation and Impact Analysis" About the Author William (Bill) Green is a well-known and sought after speaker at many user conferences and seminars.

More information

extend Release Notes

extend Release Notes extend 9.2.1 Release Notes Micro Focus The Lawn 22-30 Old Bath Road Newbury, Berkshire RG14 1QN UK http://www.microfocus.com Copyright Micro Focus 2009-2013. All rights reserved. MICRO FOCUS, the Micro

More information

OpenVMS Technical Journal V6. Porting RPG: Moving a Compiler to the HP Integrity Server

OpenVMS Technical Journal V6. Porting RPG: Moving a Compiler to the HP Integrity Server OpenVMS Technical Journal V6 Porting RPG: Moving a Compiler to the HP Integrity Server Porting RPG: Moving a Compiler to the HP Integrity Server... 2 Overview... 2 Introduction... 2 Software Development

More information