<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AdaCore - The GNAT Pro Company &#187; Technical Papers</title>
	<atom:link href="http://libre.adacore.com/category/developers-center/reference-library/technical-papers/feed/" rel="self" type="application/rss+xml" />
	<link>http://libre.adacore.com</link>
	<description>AdaCore technology and news</description>
	<lastBuildDate>Sat, 04 Feb 2012 07:42:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Towards Certification of Object-Oriented Code with the GNAT Compiler</title>
		<link>http://libre.adacore.com/2011/01/05/towards-certification-of-object-oriented-code-with-the-gnat-compiler/</link>
		<comments>http://libre.adacore.com/2011/01/05/towards-certification-of-object-oriented-code-with-the-gnat-compiler/#comments</comments>
		<pubDate>Wed, 05 Jan 2011 13:31:57 +0000</pubDate>
		<dc:creator>AdaCore</dc:creator>
				<category><![CDATA[GNAT Compilation System]]></category>
		<category><![CDATA[Technical Papers]]></category>

		<guid isPermaLink="false">http://www2.adacore.com/?p=6740</guid>
		<description><![CDATA[
This paper was originally published in volume 28 of the Ada User Journal in 2007. 



Abstract:



Dynamic binding, the ability to link at runtime a method call with a subprogram that depends on the class of the object, is strongly discouraged by current standards for avionics airborne systems. This is partly due to dynamic dispatching, the [...]]]></description>
			<content:encoded><![CDATA[
<p>This paper was originally published in volume 28 of the Ada User Journal in 2007. <br/>
<br/>


Abstract:<br/>
<br/>


Dynamic binding, the ability to link at runtime a method call with a subprogram that depends on the class of the object, is strongly discouraged by current standards for avionics airborne systems. This is partly due to dynamic dispatching, the technique commonly used by most OO compilers to implement dynamic binding. In this paper we present some enhancements to the GNAT technology that will help the avionic industry take advantage of the full benefits of the OO techniques with Ada without the inconveniences associated with dynamic dispatching.</p>
]]></content:encoded>
			<wfw:commentRss>http://libre.adacore.com/2011/01/05/towards-certification-of-object-oriented-code-with-the-gnat-compiler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Couverture paper presented at ERTS² 2010</title>
		<link>http://libre.adacore.com/2010/06/08/couverture-paper-presented-at-erts%c2%b2-2010/</link>
		<comments>http://libre.adacore.com/2010/06/08/couverture-paper-presented-at-erts%c2%b2-2010/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 13:42:31 +0000</pubDate>
		<dc:creator>AdaCore</dc:creator>
				<category><![CDATA[Ada / Ada 2005 / Ada 2012]]></category>
		<category><![CDATA[Technical Papers]]></category>

		<guid isPermaLink="false">http://www2.adacore.com/?p=4848</guid>
		<description><![CDATA[At the recent ERTS² 2010 conference held in Toulouse, Thomas Quinot presented this paper entitled &#8220;Object and Source Coverage for Critical Applications with the Couverture Open Analysis Framework&#8221;. It presents the Couverture approach to object and structural coverage analysis for certified safety-critical applications, in particular in the context of DO-178.couverture_erts2010]]></description>
			<content:encoded><![CDATA[<p>At the recent <a href="http://www.erts2010.org/" target="_blank">ERTS² 2010 conference</a> held in Toulouse, Thomas Quinot presented this paper entitled &#8220;Object and Source Coverage for Critical Applications with the Couverture Open Analysis Framework&#8221;. It presents the Couverture approach to object and structural coverage analysis for certified safety-critical applications, in particular in the context of DO-178.</p><a href='http://www2.adacore.com/wp-content/uploads/2010/06/couverture_ertss2010.pdf'>couverture_erts2010</a>]]></content:encoded>
			<wfw:commentRss>http://libre.adacore.com/2010/06/08/couverture-paper-presented-at-erts%c2%b2-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A principled approach to software engineering</title>
		<link>http://libre.adacore.com/2009/02/05/a-principled-approach-to-software-engineering/</link>
		<comments>http://libre.adacore.com/2009/02/05/a-principled-approach-to-software-engineering/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 09:37:37 +0000</pubDate>
		<dc:creator>AdaCore</dc:creator>
				<category><![CDATA[Ada / Ada 2005 / Ada 2012]]></category>
		<category><![CDATA[Technical Papers]]></category>

		<guid isPermaLink="false">http://www2.adacore.com/?p=2560</guid>
		<description><![CDATA[This paper examines the use of Java as a first programming 
language, in the light of well-established principles of 
software engineering, and the increasing concern 
with correctness, performance, and maintainability. 
We argue that Java is markedly inferior to Ada or 
C++ as a language for introductory Computer 
Science courses, and that its widespread use in [...]]]></description>
			<content:encoded><![CDATA[This paper examines the use of Java as a first programming 
language, in the light of well-established principles of 
software engineering, and the increasing concern 
with correctness, performance, and maintainability. 
We argue that Java is markedly inferior to Ada or 
C++ as a language for introductory Computer 
Science courses, and that its widespread use in the 
training of tomorrow’s software engineers is 
counterproductive.]]></content:encoded>
			<wfw:commentRss>http://libre.adacore.com/2009/02/05/a-principled-approach-to-software-engineering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coverage and Free Software</title>
		<link>http://libre.adacore.com/2008/06/04/coverage-and-free-software/</link>
		<comments>http://libre.adacore.com/2008/06/04/coverage-and-free-software/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 07:00:16 +0000</pubDate>
		<dc:creator>AdaCore</dc:creator>
				<category><![CDATA[GNAT Compilation System]]></category>
		<category><![CDATA[Technical Papers]]></category>

		<guid isPermaLink="false">http://www2.adacore.com/2008/06/05/coverage-and-free-software/</guid>
		<description><![CDATA[A recent paper by Franco Gasperoni describing how a Free Software toolset (Coverage) and virtualization technology (QEMU) can be used effectively to assure code coverage in the development of software applications. While an important target use of the coverage toolset is safety-critical embedded applications, the design of the tools allows its use in non safety-critical [...]]]></description>
			<content:encoded><![CDATA[A recent paper by Franco Gasperoni describing how a Free Software toolset (Coverage) and virtualization technology (QEMU) can be used effectively to assure code coverage in the development of software applications. While an important target use of the coverage toolset is safety-critical embedded applications, the design of the tools allows its use in non safety-critical projects.]]></content:encoded>
			<wfw:commentRss>http://libre.adacore.com/2008/06/04/coverage-and-free-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abstract Interface Types in GNAT: Conversions, Discriminants, and C++</title>
		<link>http://libre.adacore.com/2007/03/21/abstract-interface-types-in-gnat-conversions-discriminants-and-c-2/</link>
		<comments>http://libre.adacore.com/2007/03/21/abstract-interface-types-in-gnat-conversions-discriminants-and-c-2/#comments</comments>
		<pubDate>Wed, 21 Mar 2007 16:06:16 +0000</pubDate>
		<dc:creator>AdaCore</dc:creator>
				<category><![CDATA[Ada / Ada 2005 / Ada 2012]]></category>
		<category><![CDATA[Technical Papers]]></category>

		<guid isPermaLink="false">http://www2.adacore.com/2007/03/21/abstract-interface-types-in-gnat-conversions-discriminants-and-c-2/</guid>
		<description><![CDATA[Ada 2005 Abstract Interface Types provide a limited and practical form of multiple inheritance of specifications. In this paper we cover the following aspects of their implementation in the GNAT compiler: interface type conversions, the layout of variable sized tagged objects with interface progenitors, and the use of the GNAT compiler for interfacing with C++ [...]]]></description>
			<content:encoded><![CDATA[Ada 2005 Abstract Interface Types provide a limited and practical form of multiple inheritance of specifications. In this paper we cover the following aspects of their implementation in the GNAT compiler: interface type conversions, the layout of variable sized tagged objects with interface progenitors, and the use of the GNAT compiler for interfacing with C++ classes with compatible inheritance trees.]]></content:encoded>
			<wfw:commentRss>http://libre.adacore.com/2007/03/21/abstract-interface-types-in-gnat-conversions-discriminants-and-c-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi-Language Programming: The Challenge and Promise of Class-Level Interfacing</title>
		<link>http://libre.adacore.com/2006/07/20/multi-language-programming-the-challenge-and-promise-of-class-level-interfacing/</link>
		<comments>http://libre.adacore.com/2006/07/20/multi-language-programming-the-challenge-and-promise-of-class-level-interfacing/#comments</comments>
		<pubDate>Thu, 20 Jul 2006 09:08:04 +0000</pubDate>
		<dc:creator>AdaCore</dc:creator>
				<category><![CDATA[Ada / Ada 2005 / Ada 2012]]></category>
		<category><![CDATA[Technical Papers]]></category>

		<guid isPermaLink="false">http://www2.adacore.com/?p=1268</guid>
		<description><![CDATA[Many computer applications today involve modules written in different programming languages, and integrating these modules together is a delicate operation. This first requires the availability of formalisms to let programmers denote “foreign” entities like objects and subprograms as well as their associated types. Then, proper translation of what programmers express often calls for significant implementation [...]]]></description>
			<content:encoded><![CDATA[Many computer applications today involve modules written in different programming languages, and integrating these modules together is a delicate operation. <span id="more-1268"></span>This first requires the availability of formalisms to let programmers denote “foreign” entities like objects and subprograms as well as their associated types. Then, proper translation of what programmers express often calls for significant implementation effort, possibly down to the specification of very precise ABIs (Application Binary Interfaces). Meta-language based approaches a la CORBA/IDL are very powerful in this respect but typically aim at addressing distributed systems issues as well, hence entail support infrastructure that not every target environment needs or can afford. When component distribution over a network is not a concern, straight interfacing at the binary object level is much 
more efficient. It however relies on numerous low level details and in practice is most often only possible for a limited set of constructs. 
<br /></br>
Binary level interaction between foreign modules is traditionally achieved through subprogram calls, exchanging simple data types and relying on the target environment’s core ABI. Object Oriented features in modern languages motivate specific additional capabilities in this area, such as class-level interfacing to allow reuse and extension of class hierarchies across languages with minimal constraints. This paper describes work we have conducted in this context, allowing direct binding of Ada extensible tagged types with C++ classes. Motivated by extensions to the Ada typing system made as part of the very recent language standard revision, this work leverages the GCC multi-language infrastructure and implementation of the Itanium C++ ABI. We will first survey the issues and mechanisms related to basic inter-language operations, then present the interfacing challenges posed by modern object oriented features after a brief overview of the Ada, C++, and Java object models. We will continue with a description of our work on Ada/C++ class-level interfacing facilities, illustrated by an example. 
]]></content:encoded>
			<wfw:commentRss>http://libre.adacore.com/2006/07/20/multi-language-programming-the-challenge-and-promise-of-class-level-interfacing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exposing Uninitialized Variables: Strengthening and Extending Run-Time Checks in Ada</title>
		<link>http://libre.adacore.com/2006/06/02/exposing-uninitialized-variables-strengthening-and-extending-run-time-checks-in-ada/</link>
		<comments>http://libre.adacore.com/2006/06/02/exposing-uninitialized-variables-strengthening-and-extending-run-time-checks-in-ada/#comments</comments>
		<pubDate>Fri, 02 Jun 2006 16:05:04 +0000</pubDate>
		<dc:creator>AdaCore</dc:creator>
				<category><![CDATA[Ada / Ada 2005 / Ada 2012]]></category>
		<category><![CDATA[Technical Papers]]></category>

		<guid isPermaLink="false">http://www2.adacore.com/?p=1344</guid>
		<description><![CDATA[Since its inception, a main ob jective of the Ada language has 
been to assist in the development of large and robust applications. In 
addition to that, the language also provides support for building safety- 
critical applications, e.g. by facilitating validation and verification of such 
programs. The latest revision of the language has brought some [...]]]></description>
			<content:encoded><![CDATA[Since its inception, a main ob jective of the Ada language has 
been to assist in the development of large and robust applications. <span id="more-1344"></span>In 
addition to that, the language also provides support for building safety- 
critical applications, e.g. by facilitating validation and verification of such 
programs. The latest revision of the language has brought some addi- 
tional improvements in the safety area, such as the Normalize Scalars 
pragma, which ensures an automatic initialization of the non-explicitly 
initialized scalars. This paper presents Initialize Scalars, an enrichment 
of the Normalize Scalars concept, and an extended mode to verify at 
run-time the validity of scalars, both designed for easy use in existing 
large applications. Their implementation in GNAT Pro (the GNU Ada 
95 compiler) is discussed. The practical results obtained on a large Air 
Traffic Flow Management application are presented. 
]]></content:encoded>
			<wfw:commentRss>http://libre.adacore.com/2006/06/02/exposing-uninitialized-variables-strengthening-and-extending-run-time-checks-in-ada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Implementation of Ada 2005 Interface Types in the GNAT Compiler</title>
		<link>http://libre.adacore.com/2006/06/02/the-implementation-of-ada-2005-interface-types-in-the-gnat-compiler/</link>
		<comments>http://libre.adacore.com/2006/06/02/the-implementation-of-ada-2005-interface-types-in-the-gnat-compiler/#comments</comments>
		<pubDate>Fri, 02 Jun 2006 12:49:25 +0000</pubDate>
		<dc:creator>AdaCore</dc:creator>
				<category><![CDATA[GNAT Compilation System]]></category>
		<category><![CDATA[Technical Papers]]></category>

		<guid isPermaLink="false">http://www2.adacore.com/?p=1333</guid>
		<description><![CDATA[One of the most important ob ject-oriented features of the  new revision of the Ada Programming Language is the introduction of 
Abstract Interfaces to provide a form of multiple inheritance.

Ada 2005  Abstract Interface Types are based on Java interfaces, and as such support inheritance of operation specifications, rather than the general complexity of [...]]]></description>
			<content:encoded><![CDATA[One of the most important ob ject-oriented features of the  new revision of the Ada Programming Language is the introduction of 
Abstract Interfaces<span id="more-1333"></span> to provide a form of multiple inheritance.

Ada 2005  Abstract Interface Types are based on Java interfaces, and as such support inheritance of operation specifications, rather than the general complexity of inheritance of implementations as in full multiple inheritance. 
Real-time uses of Ada demand efficient and bounded worst-case execution time for interface calls. In addition, modern systems require mixed-language programming. This paper summarizes part of the work done by the GNAT Development Team to provide an efficient implementation of this language feature and simplifies interfacing with C++. ]]></content:encoded>
			<wfw:commentRss>http://libre.adacore.com/2006/06/02/the-implementation-of-ada-2005-interface-types-in-the-gnat-compiler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Safety, Security, and Object-Oriented Programming</title>
		<link>http://libre.adacore.com/2006/03/30/safety-security-and-object-oriented-programming/</link>
		<comments>http://libre.adacore.com/2006/03/30/safety-security-and-object-oriented-programming/#comments</comments>
		<pubDate>Thu, 30 Mar 2006 09:35:40 +0000</pubDate>
		<dc:creator>AdaCore</dc:creator>
				<category><![CDATA[Ada / Ada 2005 / Ada 2012]]></category>
		<category><![CDATA[Technical Papers]]></category>

		<guid isPermaLink="false">http://www2.adacore.com/?p=1249</guid>
		<description><![CDATA[When safety-critical software malfunctions people lives are in danger. When security-critical software is cracked national security or economic activity may be at risk.  
As more and more software embraces object-oriented programming (OOP) safety-critical and security-critical projects feel compelled to use object-orientation. But what are the guarantees of OOP in terms of safety and security? [...]]]></description>
			<content:encoded><![CDATA[When safety-critical software malfunctions people lives are in danger. When security-critical software is cracked national security or economic activity may be at risk.  
<span id="more-1249"></span>As more and more software embraces object-oriented programming (OOP) safety-critical and security-critical projects feel compelled to use object-orientation. But what are the guarantees of OOP in terms of safety and security? Are the design goals of OOP aligned with those of safe and 
secure software (S3) systems? 
In the following sections we look at key OOP aspects and analyze some of the hazards they introduce with respect to S3 and outline a possible way of addressing these vulnerabilities. 
Specifically, after a quick overview of OOP in section 2, section 3 deals with inheritance and shows some of its hazards in terms of S3 along with possible remedies. Section 4 focuses on dynamic binding and suggests a safer and more secure implementation than what is conventionally done. 
Finally, section 5 looks at testing programs with dynamic binding. 
]]></content:encoded>
			<wfw:commentRss>http://libre.adacore.com/2006/03/30/safety-security-and-object-oriented-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Certification &amp; Object Orientation: The New Ada Answer</title>
		<link>http://libre.adacore.com/2006/03/08/certification-object-orientation-the-new-ada-answer/</link>
		<comments>http://libre.adacore.com/2006/03/08/certification-object-orientation-the-new-ada-answer/#comments</comments>
		<pubDate>Wed, 08 Mar 2006 13:40:58 +0000</pubDate>
		<dc:creator>AdaCore</dc:creator>
				<category><![CDATA[Ada / Ada 2005 / Ada 2012]]></category>
		<category><![CDATA[Technical Papers]]></category>

		<guid isPermaLink="false">http://www2.adacore.com/?p=1219</guid>
		<description><![CDATA[The object model of Ada 2005 is well-suited for applications that have to meet certification at various levels. We review the use of Ada in the context of certification, and show that the object-oriented facilities of the current language standard, properly restricted to avoid dynamic dispatching, can already be used without problems under current DO-178B guidelines. We then examine the complications to certification that are presented by dynamic dispatching in a single inheritance model, and show implementation-specific ways of addressing these complications. Finally, we discuss the problems introduced by the use of multiple inheritance. We conclude by showing how, regardless of the extent to which object-oriented idioms are used, Ada provides a safe and efficient vehicle to create certifiable systems.]]></description>
			<content:encoded><![CDATA[The object model of Ada 2005 is well-suited for applications that have to meet certification at various levels. We review the use of Ada in the context of certification, and show that the object-oriented facilities of the current language standard, properly restricted to avoid dynamic dispatching, can already be used without problems under current DO-178B guidelines. <span id="more-1219"></span>We then examine the complications to certification that are presented by dynamic dispatching in a single inheritance model, and show implementation-specific ways of addressing these complications. Finally, we discuss the problems introduced by the use of multiple inheritance. We conclude by showing how, regardless of the extent to which object-oriented idioms are used, Ada provides a safe and efficient vehicle to create certifiable systems.]]></content:encoded>
			<wfw:commentRss>http://libre.adacore.com/2006/03/08/certification-object-orientation-the-new-ada-answer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

