The New C Standard - A Cultural and Economic Commentary

Peter Kitson

ISBN : 0201709171

Order a printed copy of this book from Amazon.


Cover Design - The New C Standard - A Cultural and Economic Commentary
 

For your free electronic copy of this book please verify the numbers below. 

(We need to do this to make sure you're a person and not a malicious script)

Numbers

 




Sample Chapter From The New C Standard - A Cultural and Economic Commentary
     Copyright © Derek M. Jones



Commentary

This book contains a detailed analysis of the International Standard for the C language,-3.1 excluding the
library from a number of perspectives. The organization of the material is unusual in that it is based on
the actual text of the published C Standard. The unit of discussion is the individual sentences from the C
Standard (2022 of them)
Readers are assumed to have more than a passing familiarity with C.

C90

My involvement with C started in 1988 with the implementation of a C to Pascal translator (written in
Pascal). In 1991 my company was one of the three companies that were joint first, in the world, in having
their C compiler formally validated. My involvement with the world of international standards started in
1988 when I represented the UK at a WG14 meeting in Seattle. I continued to head the UK delegation at
WG14 meetings for another six years before taking more of a back seat role.

C++

Having never worked on a C++ compiler or spent a significant amount of time studying C++ my view on this
language has to be considered as a C only one. While I am a member of the UK C++ panel I rarely attend
meetings and have only been to one ISO C++ Standard meeting.
There is a close association between C and C++ and the aim of this subsection is the same as the C90 one:
document the differences.

Other Languages

The choice of other languages to discuss has been driven by those languages in common use today (e.g.,
Java), languages whose behavior for particular constructs is very different from C (e.g., Perl or APL), and
languages that might be said to have been an early influence on the design of C (mostly BCPL and Algol
68).

The discussion in these subsections is also likely to have been influenced by my own knowledge and

biases. Writing a compiler for a language is the only way to get to know it in depth and while I have many
used other languages I can only claim to have expertise in a few of them. Prior to working with C I had
worked on compilers and source code analyzers for Algol 60, Coral 66, Snobol 4, CHILL, and Pascal. All of
these languages might be labeled as imperative 3GLs. Since starting work with C the only other languages
I have been involved in at the professional compiler writer level are Cobol and SQL.

Common Implementations

The perceived needs of customers drive translator and processor vendors to design and produce products.
The two perennial needs of performance and compatibility with existing practice often result in vendors
making design choices that significantly affect how developers interacted with their products. The common
implementation subsections discuss some the important interactions, primarily by looking at existing implementations
and at times research projects (although it needs to be remembered that many of research ideas
never make it into commercial products).

I have written code generators for Intel 8086, Motorola 68000, Versal (very similar to the Zilog Z80),

Concurrent 3200, Sun SPARC, Motorola 88000, and a variety of virtual machines. In their day these
processors have been incorporated in minicomputers or desktop machines. The main hole in my cv. is a
complete lack of experience in generating code for DSPs and vector processors (i.e., the discussion is based
purely on book learning in these cases).