Ada language upgrade includes contract capabilities, multicore accommodations

17.08.2012
While a long-time dignitary in the technology space still is not convinced, advocates of the Ada programming language are touting benefits of an upgrade to the platform as well as their company's accommodations for it.

Ada 2012, an upgrade to language due later this year, will feature contract capabilities, multicore programming accommodations, iterators, and quantified expressions, said Ed Schonberg, vice president of AdaCore, which provides commercial software solutions based on Ada, including the company's Gnat Pro Ada development platform. Gnat Pro will be upgraded to support Ada 2012 in a few weeks, while Ada 2012 is awaiting affirmation at the ISO (International Standards Organization) standard, Schonberg said.

Ada, though, has had a strong critic in Tim Bray, co-author of the XML specification who is now at Google. He referred to Ada in 2008 as Asked about Ada again this week, Bray held firm. "I stand by my comments," he said in an email. Schonberg, though, said Bray's comment was uninformed. But Schonberg acknowledged Ada did initially suffer from a delay in delivery of compilers, which were also expensive.

The language is geared to embedded applications, AdaCore officials said. With contracts, programs can be annotated to provide additional explanations on how a system is supposed to work, Schonberg said. Users indicate under what condition a program can be called and what can be guaranteed. "[Contracts serve] as a formal agreement between the user of the API and the author of an API. [They] indicate more clearly what the intent of a piece of software is," said Schonberg, who noted that Ada "is really the first mainstream language to have contracts built into the language."

Historically, Ada has had an advantage over C, C++, and Java in its provision of parallel capabilities, Schonberg said. "Parallelism was built into the language. It was not a matter of libraries of threads that were outside the language whose semantics were not well-defined."