Premium
C ∀ : Adding modern programming language features to C
Author(s) -
Moss Aaron,
Schluntz Robert,
Buhr Peter A.
Publication year - 2018
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/spe.2624
Subject(s) - computer science , programming language , garbage collection , software engineering , third generation programming language , programming paradigm , second generation programming language , garbage , fifth generation programming language
Summary The C programming language is a foundational technology for modern computing with millions of lines of code implementing everything from hobby projects to commercial operating systems. This installation base and the programmers producing it represent a massive software engineering investment spanning decades and likely to continue for decades more. Nevertheless, C, which was first standardized almost 30 years ago, lacks many features that make programming in more modern languages safer and more productive. The goal of the C ∀ project (pronounced “C for all”) is to create an extension of C that provides modern safety and productivity features while still ensuring strong backward compatibility with C and its programmers. Prior projects have attempted similar goals but failed to honor the C programming style; for instance, adding object‐oriented or functional programming with garbage collection is a nonstarter for many C developers. Specifically, C ∀ is designed to have an orthogonal feature set based closely on the C programming paradigm, so that C ∀ features can be added incrementally to existing C code bases, and C programmers can learn C ∀ extensions on an as‐needed basis, preserving investment in existing code and programmers. This paper presents a quick tour of C ∀ features, showing how their design avoids shortcomings of similar features in C and other C‐like languages. Experimental results are presented to validate several of the new features.