The Internet, personal devices and multicore computers have greatly changed and enhanced our lives by allowing us to access information and entertainment on-demand anytime, anywhere. While these technologies are great on their own merit, the reality is that in order to reap the benefits, someone has to program these devices to develop useful applications.
Historically, text-based high-level programming languages provided the first productive alternative to develop targeted applications. As more networked computing platforms enter the mainstream, the programming complexities of text based languages becomes a limiting factor, especially for domain experts who are typically not programming or computer science experts. The G programming language provides the next generation programming alternative allowing users to develop interactive parallel programs whether they have extensive programming experience or not. It's graphical syntax and constructs allow researchers, teachers, students and even children to program complex devices and systems in minutes rather than hours, days or even months.
G is a data flow graphical programming language. Originally designed to address test and measurement needs, its general purpose programming attributes has been applied in telecommunications, biomedical, aerospace, environmental and many other industries. In general, G is used in Science, Technology, Engineering and Math (STEM) projects and programs but is not limited to STEM.
The book was written to help the user learn the G programming syntax and begin developing G programs quickly and easily. Although familiarity with programming concepts could help learning G, the book assumes the user has had no previous exposure to any programming languages. Therefore, to avoid confusion, no pseudo-code or syntax comparisons are made with text-based programming languages. All examples in this book are working graphical examples and have been tested thoroughly. Chapter 1 is an introductory tutorial providing a reference for beginners and seasoned programmers alike. Subsequent chapters provide more details on the G syntax building up to the development of parallel programs that run on multicore platforms.
This book is not an introduction to programming, style guide, debugging or to development environments. It is strictly a concise G syntax. Additionally, the user must have access to National Instruments LabVIEW and be familiar with LabVIEW basics. Nonetheless, the user should be able to read along to learn and understand the benefits of G programming.
As one of the original LabVIEW development team members, developing G programs has been a pleasant and productive experience. It is the author's sincere hope that the user finds G programming and interesting endeavor as well.
Lalo Perez, Ph.D.