Simple algebraic data types for C

Pieter H. Hartel, Henk Muller

Research output: Book/ReportReportProfessional

Abstract

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.
LanguageUndefined
Place of PublicationEnschede
PublisherCentre for Telematics and Information Technology (CTIT)
Number of pages15
Publication statusPublished - Apr 2010

Publication series

NameCTIT Technical Report Series
PublisherCentre for Telematics and Information Technology, University of Twente
No.TR-CTIT-10-10
ISSN (Print)1381-3625

Keywords

  • IR-70899
  • METIS-270781
  • EWI-17771
  • SCS-Cybersecurity

Cite this

Hartel, P. H., & Muller, H. (2010). Simple algebraic data types for C. (CTIT Technical Report Series; No. TR-CTIT-10-10). Enschede: Centre for Telematics and Information Technology (CTIT).
Hartel, Pieter H. ; Muller, Henk. / Simple algebraic data types for C. Enschede : Centre for Telematics and Information Technology (CTIT), 2010. 15 p. (CTIT Technical Report Series; TR-CTIT-10-10).
@book{fea50411052540c6b1a15f17cd295e39,
title = "Simple algebraic data types for C",
abstract = "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.",
keywords = "IR-70899, METIS-270781, EWI-17771, SCS-Cybersecurity",
author = "Hartel, {Pieter H.} and Henk Muller",
year = "2010",
month = "4",
language = "Undefined",
series = "CTIT Technical Report Series",
publisher = "Centre for Telematics and Information Technology (CTIT)",
number = "TR-CTIT-10-10",
address = "Netherlands",

}

Hartel, PH & Muller, H 2010, Simple algebraic data types for C. CTIT Technical Report Series, no. TR-CTIT-10-10, Centre for Telematics and Information Technology (CTIT), Enschede.

Simple algebraic data types for C. / Hartel, Pieter H.; Muller, Henk.

Enschede : Centre for Telematics and Information Technology (CTIT), 2010. 15 p. (CTIT Technical Report Series; No. TR-CTIT-10-10).

Research output: Book/ReportReportProfessional

TY - BOOK

T1 - Simple algebraic data types for C

AU - Hartel, Pieter H.

AU - Muller, Henk

PY - 2010/4

Y1 - 2010/4

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

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

KW - IR-70899

KW - METIS-270781

KW - EWI-17771

KW - SCS-Cybersecurity

M3 - Report

T3 - CTIT Technical Report Series

BT - Simple algebraic data types for C

PB - Centre for Telematics and Information Technology (CTIT)

CY - Enschede

ER -

Hartel PH, Muller H. Simple algebraic data types for C. Enschede: Centre for Telematics and Information Technology (CTIT), 2010. 15 p. (CTIT Technical Report Series; TR-CTIT-10-10).