skip to main content
research-article

Using Genericity and Reflection to Create a Declarative Elaboration Logger for Large Scale Real-time Embedded Ada Systems

Published:20 October 2020Publication History
Skip Abstract Section

Abstract

Large complex Ada real-time embedded software systems typically contain critical order-dependent unit elaboration sequences executed during system startup. However, software enhancements and maintenance activities can inadvertently alter unit dependencies and produce grammatically legal yet semantically illegal elaboration sequence orders. Location of failure during system boot-up is traditionally difficult to diagnose, as large legacy systems typically do not contain trace logging capabilities in unit elaboration regions. Additionally, the Ada language does not provide constructs for executing non-declarative expressions in package specifications, making unit specification elaboration trace logging impossible. Typical system boot failure diagnosis is a combination of educated guesswork, ad-hoc insertions of trace logging code at suspicious locations, and/or the creation of large quantities of temporary trace logging code, resulting in time-consuming iterations of altered builds, system execution, and subsequent analysis. This paper describes a Generic Reflective Declarative Elaboration Logger (GRDEL) which can be used in non-traditional source code locations anywhere declarations are grammatically legal. The tool provides previously unavailable Ada package Specification elaboration trace logging, formal run-time discovery of arbitrarily deeply nested unit name usage locations, implicit generation of trace information during separate logging instance creations, and facilitation of electronic code augmentation via identically formed logging usage expressions, which can automate a repeatable and deterministic instrumentation of extremely large and complex systems with or without permanent source code modifications.

References

  1. ISO/IEC, Ada Reference Manual, International Standard 8652:2012(E).Google ScholarGoogle Scholar
  2. Alfred V. Aho, Brian W. Kernighan, Peter J. Weinberger. The AWK Programming Language. Addison- Wesley Publishing Company, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Free Software Foundation (FSF), GNU Bash Reference Manual, December 2009.Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

  • Published in

    cover image ACM SIGAda Ada Letters
    ACM SIGAda Ada Letters  Volume 40, Issue 1
    June 2020
    52 pages
    ISSN:1094-3641
    DOI:10.1145/3431235
    • Editor:
    • Alok Srivastava
    Issue’s Table of Contents

    Copyright © 2020 Copyright is held by the owner/author(s)

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 20 October 2020

    Check for updates

    Qualifiers

    • research-article
  • Article Metrics

    • Downloads (Last 12 months)3
    • Downloads (Last 6 weeks)0

    Other Metrics

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader
About Cookies On This Site

We use cookies to ensure that we give you the best experience on our website.

Learn more

Got it!