C Language Book Material

Updated Jun 09

The Shape of Code blog contains observations on the shape of code, plus some thoughts and musings on why this shape occurs.

Major changes

Over 35 new references, mostly to papers published since the last version was published (Jan 08).

Some new source code measurement tables and figures added and some existing ones tuned.

All known faults fixed.

See the new material list for details (changes between version 1.0b and 1.1).

What's available

Articles and experiments based on the book.

Sentence 0 provides an introduction to those areas of cognitive psychology that are considered applicable to writing software and in particular coding guidelines.

Sentence 770 (used to be 766) discusses aspects of human vision thought to be applicable to the interests of this book.

Sentence 792 (used to be 787) discusses identifier naming in great depth.

All figures and tables contained in this book.

The C90 (ISO 9899:90) and C++ subsections (i.e., no other subsections).

The Standard C sentences only (in Google searchable html form) are available here along with site specific Google search and a Firefox plugin.

Bugs that have been found in the previous version and corrected in the next release can be found here (last updated 24 Jun 2009).

WG14/N1256 can be found here.

Articles based on the book

General article on coding guidelines.

The ACCU 2003 Identifier Experiment web page is here.

The ACCU 2004 Memory Experiment web page is here.

The ACCU 2005 Data Structure Experiment web page is here.

The ACCU 2006 Operator precedence and memory Experiment web page is here.

The ACCU 2007 Operand naming and memory Experiment web page is here.

The ACCU 2008 Classification and grouping Experiment web page is here.

The ACCU 2009 Classification and selection Experiment web page is here.

Sentence 0 (introduction)

Discusses coding guidelines from an economic and cultural perspective, and provides an overview of human cognitive psychology, as it is seen to apply to the human interaction with source code.

This is all the material from Sentence 0 (29 Jan 08) (previous version obtainable via its entry on CiteSeer).

Sentence 770 (reading)

Sentence 792 (identifiers)

A lot of material on how people process character sequences that does not seem to produce very many answers on how to create good identifier spellings.

Usage, Figures, and Tables

The programs and scripts used to analyse the source code and produce the data displayed in many of the figures and tables is available for downloaded. Note the the scripts have only been tested under Red Hat 9 and Suse 10.0. You need to provide C source (otherwise there is nothing to measure).

C90/C++

Citations

List of coding guideline documents.

Pre-order book here

UK USA Japan

News items

The Slashdot story.

A discussion of the number of downloads that occurred as a result of the various announcements is available here.

Other coding guideline discussions

Tools

Linux.

Epsilon for editing.

Grap for drawing graphs (of the x/y axis kind).

GraphViz for drawing graphs (of the directed and undirected kind).

Language Tool for grammar checking.

LaTeX for final pdf generation.

Saxon for xml processing.

pic for line drawings.

Grammatical Typos

Feedback

Last updated