| |
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
|
|