Dealing with C's Original Sin

Chris Hathhorn, Grigore Rosu

Research output: Contribution to journalArticle

Abstract

In the very early days of C, the compiler written by Dennis Ritchie and supplied with the UNIX operating system entirely defined the language. As the number of users and C implementations grew, however, so too did the need for a language standard-a contract between users and implementers about what should and should not count as C. This effort began in 1983 with the formation of a committee tasked with producing "an unambiguous and machine-independent definition of the language C" and led to the ANSI C Standard in 1989.1 In retrospect, it was not until this date, 17 years after the first compiler, when C's most notorious language feature slithered into the world: undefined behavior.

Original languageEnglish (US)
Article number8802866
Pages (from-to)24-28
Number of pages5
JournalIEEE Software
Volume36
Issue number5
DOIs
StatePublished - Sep 1 2019

Fingerprint

UNIX
Computer operating systems

ASJC Scopus subject areas

  • Software

Cite this

Dealing with C's Original Sin. / Hathhorn, Chris; Rosu, Grigore.

In: IEEE Software, Vol. 36, No. 5, 8802866, 01.09.2019, p. 24-28.

Research output: Contribution to journalArticle

Hathhorn, Chris ; Rosu, Grigore. / Dealing with C's Original Sin. In: IEEE Software. 2019 ; Vol. 36, No. 5. pp. 24-28.
@article{d34392e00bde46d8bab40aac9fe25076,
title = "Dealing with C's Original Sin",
abstract = "In the very early days of C, the compiler written by Dennis Ritchie and supplied with the UNIX operating system entirely defined the language. As the number of users and C implementations grew, however, so too did the need for a language standard-a contract between users and implementers about what should and should not count as C. This effort began in 1983 with the formation of a committee tasked with producing {"}an unambiguous and machine-independent definition of the language C{"} and led to the ANSI C Standard in 1989.1 In retrospect, it was not until this date, 17 years after the first compiler, when C's most notorious language feature slithered into the world: undefined behavior.",
author = "Chris Hathhorn and Grigore Rosu",
year = "2019",
month = "9",
day = "1",
doi = "10.1109/MS.2019.2921226",
language = "English (US)",
volume = "36",
pages = "24--28",
journal = "IEEE Software",
issn = "0740-7459",
publisher = "IEEE Computer Society",
number = "5",

}

TY - JOUR

T1 - Dealing with C's Original Sin

AU - Hathhorn, Chris

AU - Rosu, Grigore

PY - 2019/9/1

Y1 - 2019/9/1

N2 - In the very early days of C, the compiler written by Dennis Ritchie and supplied with the UNIX operating system entirely defined the language. As the number of users and C implementations grew, however, so too did the need for a language standard-a contract between users and implementers about what should and should not count as C. This effort began in 1983 with the formation of a committee tasked with producing "an unambiguous and machine-independent definition of the language C" and led to the ANSI C Standard in 1989.1 In retrospect, it was not until this date, 17 years after the first compiler, when C's most notorious language feature slithered into the world: undefined behavior.

AB - In the very early days of C, the compiler written by Dennis Ritchie and supplied with the UNIX operating system entirely defined the language. As the number of users and C implementations grew, however, so too did the need for a language standard-a contract between users and implementers about what should and should not count as C. This effort began in 1983 with the formation of a committee tasked with producing "an unambiguous and machine-independent definition of the language C" and led to the ANSI C Standard in 1989.1 In retrospect, it was not until this date, 17 years after the first compiler, when C's most notorious language feature slithered into the world: undefined behavior.

UR - http://www.scopus.com/inward/record.url?scp=85071008838&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85071008838&partnerID=8YFLogxK

U2 - 10.1109/MS.2019.2921226

DO - 10.1109/MS.2019.2921226

M3 - Article

AN - SCOPUS:85071008838

VL - 36

SP - 24

EP - 28

JO - IEEE Software

JF - IEEE Software

SN - 0740-7459

IS - 5

M1 - 8802866

ER -