C Language Book Material

Updated Jun 09
Version 1.2 has been released. The 10.5M pdf can be downloaded from here.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
As well as providing a pdf of the complete book "The New C Standard: An Economic and Cultural Commentary", for free, various material has been extracted to create pdfs of specialist subsections and subjects.- 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
Short term memory (its CiteSeer entry). Presented at the 2002 MISRA C Conference.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)
Establishes C's place in the world (history and C++ issues) and gives a brief introduction to computer language translator technology.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)
This is all the material from Sentence 770 (30 Jan 08) (previous version btainable via its entry on CiteSeer).Sentence 792 (identifiers)
This is all the material from Sentence 792 (30 Jan 08) (previous version obtainable via its entry on CiteSeer).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
This is all the figures, tables, and usage discussion only (30 Jan 08), not yet obtainable via an entry on CiteSeer, via this site 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++
Only the C90 and C++ subsections (29 Jan 08) here.Citations
Citations as a html file (24 Jun 09) or as a compressed BibTex file.List of coding guideline documents.
Pre-order book here
Addison-Wesley decided they did not want to publish the book (so much for contracts). At the moment paper copies are not available from any publisher. If you are a publisher interested in supplying paper copies then get in touch. In the meantime people might like to register their interest in obtaining a paper copy by adding the book to their wish list at Amazon.News items
A write-up in The Inquirer here.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
A critique of the MISRA C guidelines is available here.Tools
Tools used in the production of the book include: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
I have created a page dealing with automatically detecting grammatical bugs.Feedback
Please send any feedback to cbook "at" knosof dot co dot ukLast updated