SofCheck logo          
SofCheck logo
Products
Solutions
Company
Resources
News & Events
Careers
spacer spacer spacer spacer
      SofCheck Chairman and CTO Tucker Taft presents at Ada Europe 2008
 
 

Other News:

Download Free Trial of SofCheck Inspector™...

CodePeer™, a static analysis tool for GNAT, launched using SofCheck technology

SofCheck Chairman and CTO Tucker Taft presents at SIGAda 2009: The New Semantic Model in ASIS for Ada 2005

SofCheck Chairman and CTO Tucker Taft Is Simple Talks Geek of the Week!

SofCheck Chairman and CTO Tucker Taft presents at Ada UK 2009: Using Static Analysis as part of Code Review

SofCheck Chairman and CTO Tucker Taft presents at Ada Europe 2008: Automatic Storage Management and Persistence of Complex Data Structures.

SofCheck Chairman and CTO Tucker Taft is interviewed by Techworld about the development and maintenance of Ada

SofCheck Chairman and CTO Tucker Taft presents at Ada UK 2007. Watch the video!

SofCheck has selected DevQuality as their European Sales and integration partner for their SofCheck Inspector&trade Static Analysis tool for Ada and Java

SofCheck partners with Charles River Analytics to win SBIR for transition tools for Ada

SofCheck Chairman and CTO Tucker Taft speaks at IEEE Homeland Security Conference

SofCheck Chairman and CTO Tucker Taft is keynote speaker at SIGAda 2006 in Albuquerque, NM

SofCheck announces Malware Detection capability in SofCheck Inspector&trade tool set

SofCheck Inspector™ for Java Ranks High in Fault Detection, Low in False Positives, Says Recent Research Study...

SofCheck Expands International Reach Through Distribution Agreement with Praxis High Integrity Systems...

SofCheck Names Caruso to Advisory Board...

SofCheck Joins Ada Resource Association...

Ada Helps Churn Out Less-Buggy Code...

 

BURLINGTON, Mass. (2008)

Growing a Tree that Lives Forever: Automatic Storage Management and Persistence of Complex Data Structures.

Abstract of Proposed Industrial Presentation, AdaEurope 2008. S. Tucker Taft, SofCheck, Inc., Burlington, MA USA

One of the signs of success of a software tool is when it begins to be applied to input that is so large that it runs out of memory before it finishes its job. Unfortunately, once this limit is reached, trying to get past it may require a major reengineering effort of the tool. Such a reengineering may involve shifting over to ad-hoc disk-based data structures, linearizing complex in-memory data structures to allow them to be written and later reread from disk, reverting to the use of a separate database system, creating mechanisms for automatically partitioning large inputs, etc.

A need for a similar kind of reengineering can be created by a desire to have some amount of information persist from one execution of a tool to the next, both to enable a looser coupling with other tools that might be interested in the intermediate results generated by the tool, and to enable incremental processing when a large amount of slowly changing input is to be processed repeatedly by the tool.

An alternative approach to doing this kind of major reengineering is to build from the beginning using data structures that can reside comfortably both in memory and on the disk. With such an approach, tools can potentially scale up to handle very large inputs, without running into the inevitable limits of physical main memory. One might think that simply switching to a machine with a 64-bit address space would address this problem, but that does not address the persistence problem, nor does it ensure reasonable performance unless the storage is managed in a way that provides sufficient locality of reference to minimize virtual memory thrashing.

This presentation will describe the design and early experience with an automatic storage management and persistence system implemented in Ada, used in a tool for the static analysis of large software systems. An interesting aspect of this storage management system is that it enhances locality of reference within complex data structures, automatically reclaims storage safely without the use of a traditional garbage collector approach, provides persistence, and can be enhanced to provide multi-threaded access synchronization as well.

This storage management system is based on a refinement of region-based memory management approaches which have as their ancestor the old "mark/release heap" approach from early Pascal systems, but have found more sophisticated elaborations in academic languages such as Cyclone (see Grossman, Morrisett et al, Proceedings, ACM SIGPLAN PLDI 2002, pp. 282-293). This presentation will show how this region-based approach can be integrated into an existing language (Ada 95) and extended to provide persistence and synchronization.

Click here for presentation slides

Ada Europe 2008


For further information, visit www.sofcheck.com, or contact SofCheck by phone +1 (781) 750-8068, Fax +1 (781) 750-8064 or E-mail info@sofcheck.com.

 

Media Contact:
Eileen Pacheco
eileen@tango-group.com
+1 (781) 556-1026

 

:: Printer-friendly version

 

 

 
     
Home  |  Products  |  Company  |  News & Events  |  Careers    
Site Map  |  Contact

© 2002-2008 SofCheck, Inc. All rights reserved.
SofCheck, SofCheck Inspector, AdaMagic, ERA Framework,
and SofPort are trademarks of SofCheck, Inc.