David R. Tribble: C99 vs. C++98
David R. Tribble has tracked down all the subtle differences between ISO C and ISO C++, as well as the features that once differed but have been aligned, and lists them with references to the two defining documents.
Paul Eggert summarizes Technical Corrigendum 2
ISO C Technical Corrigendum 2 (TC2) has been approved. Even leaner than its predecessor TC1, it consists only of small changes in response to Defect Reports, and will be of interest mostly to compiler and test suite vendors.
Instant C9x: Doug Gwyn’s Q8
“Aside: Why “Q8″? That was used as a system external symbol prefix in old CDC Fortran implementations, to avoid link-time name-space collisions with user-defined symbols, on the assumption that no user would ever think of using such a name.”
David M. Keaton’s home page and FTP site (Danish mirror)
First the official X3J11.1 (NCEG subgroup) server, then the official ANSI X3J11 server, David M. Keaton’s FTP site has now become the official ISO SC22 WG14 archive; it holds electronic copies of all current proposals for C9X, the next revision of the ISO C standard. Lately, Dave has been venturing out onto the WorldWide Web and has marked up two proposals he wrote with David Prosser: Designated Initializers and Compound Literals.
The Dinkum C Library Reference
P.J. Plauger, author of many books on C and software engineering and until recently convener of the ISO/IEC workgroup in charge of C as an international standard, is licensing HTML versions of some of his books, among them the Standard C library reference.
The ANSI C Rationale
“This Rationale summarizes the deliberations of X3J11, the Technical Committee charged by ANSI with devising a standard for the C programming language.”
Dennis Ritchie on type qualifiers (1988)
“Noalias must go. This is nonnegotiable.
It must not be reworded, reformulated or reinvented.”
Proposal X3J11.1 93006: Restricted Pointers
“The X3J11 committee attempted to solve the aliasing problem in C by introducing a new type qualifier noalias. That effort failed because of technical problems with the proposed semantics of noalias. This restricted pointer proposal is different in many ways.”
Identifiers NOT To Use in C Programs, a list compiled Stan Brown
“If you want to write a portable C program, you have to be careful not to give your own definitions to any of the identifiers that are reserved by the C standard. The standard tells you which identifiers are reserved, but scatters the information through a rather thick (and expensive) book.”
The ANSI C grammar (Yacc and Lex)
Clive Feather reviews “The Annotated ANSI C Standard” by Herbert Schildt
“[The] book is commenting on a very carefully designed document, and one that has to be read precisely. If the annotator cannot get things right, then the book is not just useless, but is a positive danger […].”
Harbison & Steele, C: A Reference Manual, Third Edition (errata)
“Some or all of these problems may have been corrected in the third and later printings of the book.” (The current edition is the fourth.)
Kernighan & Ritchie: The C Programming Language, Second Edition (errata)
“Fortunately, the changes are minor; some repair our bugs, a few account for lastminute changes in the draft standard.”
Stroustrup: The C++ Programming Language, Second Edition (errata)
Nonoverlapping errata for the first printing, the first year, the sixth printing, and from the ninth printing on up.
Stroustrup: The Design and Evolution of C++ (errata)
Errata for the first and second printing.
Reviews of the book “Numerical Recipes In C”
“By 1995, the second edition of Numerical Recipes in C has almost completely replaced the first edition, making it hard to judge whether the praise it has accumulated stems from different criteria of judgement or from improvements to the text.”
Dennis Ritchie’s home page
Among others: The Development of the C Language, a PostScript version of the 6th edition C Reference Manual, Ken Thompson’s Users’ Reference to B, CSTR #8: The Programming Language B, by S.C. Johnson and Kernighan, and even Martin Richards’s BCPL Reference Manual from 1967.
Clive Feather gives a brief introduction to BCPL
“A cell stores a single value which can be treated as any of an integer […], a bit pattern, an address, a procedure designator, a floating point number, a selector, a jump target, a jump closure, or a stream designator.”
Alan Watson on BCPL
“BCPL was in use in Cambridge for years. Much of the software for the Phoenix system (…) was written in BCPL (most of the rest was in assembler, although Algol68 was used for a mailer and the infamous job scheduler — I think there must be something in the water in Cambridge).”
Mark Brader on B
“B didn’t believe in typechecking, period. There was only one type, the machine word, and the programmer was responsible for applying to a variable only such operators as made sense.”
Brian W. Kernighan (1974): “Programming in C: A Tutorial”
“C is a computer language available on the GCOS and UNIX operating systems at Murray Hill and (in preliminary form) on OS/360 at Holmdel.”
Dennis Ritchie on the precedence of | and & vs. ==
“In retrospect it would have been better to go ahead and change the precedence of & to higher than ==, but it seemed safer just to split & and && without moving & past an existing operator. (After all, we had several hundred kilobytes of source code, and maybe 3 installations….)”
The International Obfuscated C Code Contest
“Obfuscate: tr.v. -cated, cating, -cates. 1. a. To render obscure. b. To darken. 2. To confuse: his emotions obfuscated his judgment. [LLat. obfuscare, to darken : ob(intensive) + Lat. fuscare, to darken