Simple algebraic data types for C

Pieter H. Hartel, Henk L. Muller

    Research output: Contribution to journalArticleAcademicpeer-review

    1 Citation (Scopus)
    4 Downloads (Pure)


    Adt is a simple tool in the spirit of Lex and Yacc that makes monomorphic algebraic data types, polymorphic built-in types like the list and an efficient form of pattern matching available in C programs. C programs built with ADTs typically use NULL pointers only to indicate don't care values, and not as sentinels. This reduces the scope for errors involving NULL pointers. The Adt tool generates runtime checks, which catch many of the remaining NULL pointer dereferences. The runtime checks may consume a significant amount of CPU time; hence they can be switched off once the program is suitably debugged.
    Original languageUndefined
    Pages (from-to)191-210
    Number of pages20
    JournalSoftware : practice and experience
    VolumeOnline pre
    Issue number2
    Publication statusPublished - Feb 2012


    • Pattern-matching
    • Algebraic data types
    • SCS-Cybersecurity
    • software tool
    • METIS-277549
    • EWI-19630
    • IR-76011

    Cite this