Steve Baird

Steve has been involved with the Ada language and its implementation since 1981, and is an active member of the ISO/IEC JTC1/SC22/WG9 Ada Rapporteur Group (the “ARG”). The ARG decides technical issues relating to the maintenance and development of the Ada language. As an ARG member, he has made valuable contributions to the latest language version, Ada 2005.

From 9/81 through 8/08, Steve worked on various aspects of Ada compilation and implementation for Rational, which was acquired by IBM in 2003. In the course of working on the Rational (later IBM/Rational) Ada compiler, he implemented the static semantics (i.e., the compile time language rules) of Ada95 and the dynamic semantics (i.e., the execution time language rules) of Ada05.

Steve holds a Master of Science degree in Computer Science from Stanford University and a Bachelor of Science in Mathematics and Computer Science from the University of Michigan.

What does Frontline Support mean to you?

The elimination of the distinction between development and customer support. Developers working directly with customers to identify improvements that would add value. A faster path from the identification of a problem to the availability of a solution with fewer opportunities for intermediate miscommunication.

What drew you to Ada?

I know of no language that does a better job than Ada of allowing the developer to communicate his or her intent to the compiler, particularly in expressing the invariants that the program depends on. The more that you can tell the compiler about how you want your program to work, the more the compiler can help you ensure that it does. There does not have to be a tradeoff between runtime performance and program maintainability – accurately capturing the developer’s intent provides a big boost in both directions. Ada’s encapsulation mechanisms provide tremendous benefits in maintainability at no cost in performance. Ada’s emphasis on static checking ensures that most bugs are caught at compile time; Ada’s dynamic checking ensures that other bugs can be debugged at the Ada source level and that type safety is preserved. Ada’s stack-based handling of dynamic storage allocation (e.g., functions with unconstrained results, dynamic-sized local objects) provides a more balanced alternative to either of the simpler extremes (i.e., either no language support for dynamic data structures or a do-everything-on-the-heap model which relies on garbage collection).

Incidentally, my favorite of the features added in Ada05 is the elimination of the Ada95 rule disallowing the declaration of a tagged type extension in a more nested scope than that of the parent type.

What’s your favorite feature of GNAT Pro Technology?

Easily my favorite feature of GNAT Pro Technology is its momentum. The recently announced partnerships with Praxis and SofCheck, the addition of new targets, and the continued improvement of the product line in many directions at once are all consequences of the fact that AdaCore is a company with the people, the resources, and the commitment needed to do the job right.