Site hosted by Angelfire.com: Build your free website today!
 
Lexical Integration Home
 
About Lexical 
Press Room 
Research && Development Programs 
Products 
Technical Support 
Customer Services 
Join Reseller Partners Program 
Lots of Information 
Downloads 
Contact Us 
Job Opportunities at Lexical 
 
 

Text courtesy of Dr. Robert C. Leif, Ph.D, Vice President Ada_Med

Dr. Robert C. Leif runs a medical equipment company called Ada_Med. Dr. Leif has written many publications on development of medical software using Ada.

 

FOREWORD

My associates and I have written extensively on medical device software. I am enclosing a bibliography. Since Java is not compiled, it does not have sufficient performance for many medical devices. It also lacks: many software engineering features, range checking, enumerated types, low level programing, and is not standardized. Aonix sells and ACT will make available an Ada J code compiler. Java has only one significant advantage over Ada, excellent, aggressive marketing.


Ada 95, because of its superb facilities for object oriented programming (OOP), presents an interesting challenge to the software industry, particularly here in the United States. Are we going to embrace total Quality Management or be governed by marketing hype? Cool is not an engineering term. Since we wish to emphasize the benefits of Ada, we will describe our technology. We will leave it to the JAVA converts to describe the sins of their previous language.

As most engineers and artists are painfully aware, it is extremely improbable to get something right the first time. Surprisingly, the first ISO (International Organization for Standardization) standardized version of Ada was sufficiently well designed that most of the changes for the second version were extensions rather than revisions. Most of the competing object-oriented languages are immature, since they have not even completed their first round of ISO standardization.

It has been argued in this magazine1 that “Although the language (Ada) has been with us more than a decade, it has sparked little interest in the private sector”. The new Boeing 777 and commercial satellite systems are significant counter examples. Ada 95 is still quite new. However, the best evidence that it often takes considerable time for a new language to be adopted in the commercial sector is Smalltalk, which predates Ada. Smalltalk has only caught on in the last few years.

The authors of this article will prove our point by showing below an example of Ada code for financial transactions with Microsoft WindowsTM. Dear reader, even if you have never seen Ada before, you will notice that the source code is eminently readable. This is a required characteristic of a document that will be of use to a maintenance programmer, who needs to determine what the program is doing. Source code is an artifact that is used by humans; computers prefer binary. In fact in the case of Ada, the term “Source Code” is a misnomer, which should be replaced by the term “Source Text”. Experience in cryptography is not a requirement for reading and understanding Ada.

Because Ada syntax is derived from Pascal, programmers trained in the Pascal family of languages have a significantly easier time learning Ada than members of the C family of languages. Ada’s Pascal heritage includes the use of the equal sign (=) for equality and (:=) for assignment (set equal to). Unlike C and its descendants including C++ and JAVA, where the accidental repetition of a single character can result in a day or more of debugging, in Ada, a repeated character almost always results in the compiler reporting an error including a diagnostic, which facilitates its rapid correction.

Reliability and correctness are very important features for many software products, such as financial, medical, transportation, engineering and military applications. In her recent excellent book, Safeware, System Safety and Computers, N. G. Leveson(2) states, “Not only must a language be simple, but it must encourage the production of simple and understandable programs. Although careful experimental results are limited, some programming language features have been found to be particularly prone to error --among them pointers, control transfers of various kinds, defaults and implicit type conversions, and global variables. Overloading variable names so that they are not unique and do not have a single purpose is also dangerous. On the other hand, the use of languages with static type checking and the use of guarded commands (ensuring that all possible conditions are accounted for in conditional statements and that each branch is fully specified as to the conditions under which it is taken) seem to help eliminate potential programming errors. Some of the most frequently used languages (such as C) are also those that, according to what is known about language design, are the most error prone.” Riehle(3) makes a very strong case for Ada where safety is required.


Bibliography

1. Leveson, N.G. Safeware, System Safety and Computers, Addison-Wesley, Reading, MA 412-413, 1995.

2. Riehle, R. “Can Software Be Safe? --An Ada Viewpoint,” Embedded Systems Programming, 9 (13) 28-40, 1996.

3. R. C. Leif, S. B. Leif, and S. H. Leif; "The Real World of Instrument Development". IEEE Symposium Record, Policy Issues In Information and Communication Technologies in Medical Applications, IEEE Catalog No. UH0181-8 (1988)

4. R. C. Leif, I. Rosello, D. Simler, G. P. Garcia, and S. B. Leif; "Ada Software for Cytometry". Analytical and Quantitative Cytology and Histology 13 pp. 440-450 (1991).

5. S. B. Leif and R. C. Leif; "Producing Quality Software According to Medical Regulations for Devices". Computer Based Medical Systems, Proceedings of the Fifth Annual IEEE Symposium 265-272 (1992).

6. R. C. Leif, J. Sara, I. Burgess, M. Kelly, S. B. Leif, and T. Daly, "The Development of Software in the Ada Language for a Mid-Range Hematology Analyzer". Tri-Ada '93 340-346 (1993).

7. Suzanne B. Leif, Stephanie H. Leif (Aha), and Robert C. Leif; "Setting Up a Pre-production Quality Management Process in the Medical Device Industry". in Software Quality Management II Vol. 1: Managing Quality Systems Ed. M. Ross, C. A. Brebbia, G. Staples, J. Stapleton, Computational Mechanics Publications, Southampton, Boston pp. 63-78 (1994).

8. R. C. Leif, S. B. Leif, S. H. Leif, and E. Bingue, "A Simple Solution to The Medical Instrumentation Software Problem". Progress in Biomedical Optics, Proceedings of Ultrasensitive Instrumentation for DNA Sequencing and Biochemical Diagnostics". Ed. G. E. Cohn, J. M. Lerner, K. J. Liddane, A. Scheeline, and S. A. Soper. A. Katzir Biomedical Optics Series Editor SPIE Proceedings Series, Vol. 2386, pp 236-249 (1995).

9. R. C. Leif, R. Rios, M. C. Becker, C. K. Becker, J. T. Self, and S. B. Leif, "The Creation of a Laboratory Instrument Quality Monitoring System with AdaSAGE". Advanced Techniques in Analytical Cytology, Optical Diagnosis of Living Cells and Biofluids, Ed. T. Askura, D. L. Farkas, R. C. Leif, A. V. Priezzhev, , and B. J. Tromberg.. A. Katzir Progress in Biomedical Optics Series Editor SPIE Proceedings Series, Vol. 2678, 232-239 (1996).

10. R. C. Leif and S. B. Leif, "Evolution of Flow Cytometry Standard, FCS3.0, into a DICOM-Compatible Format". Optical Diagnostics of Biological Fluids and Advanced Techniques in Analytical Cytology, Ed. A. V. Priezzhev , T. Asakura, and R. C. Leif. A. Katzir Series Editor, Progress Biomedical Optics Series , SPIE Proceedings Series,Vol. 2982, pp 354-366 (1997).

11. R. C. Leif, T. Moran, and R. Brukardt, "Ada 95, The Language Speaks for Itself", Object Magazine, Implementation Languages, 7 (3) pp. 32-39, May (1997).





Copyright © September 1997 Lexical Integration (M) Sdn Bhd.
Webmaster: spiderman.lexical@technologist.com