Richard Stallman Announces C Reference
Written by Harry Fairhead   
Wednesday, 07 September 2022

Richard Stallman (RMS) is a controversial figure - you either like or dislike him - but you have to assume he knows his C. So an announcement that he has a book on the subject is interesting.

As you might guess, being the founder of the Free Software Foundation, Stallman's book is free to download, but at this stage you will have to do some work if you want to read it and it seems to be still in beta. The text contains requests for comments.

gnulogo

Why might you want to read RMS on the subject of C? The main reason is that he started the GCC project which is probably the most used C compiler on the planet. It was all part of the GNU project to create a non-commercial "free" version of Unix, which did produce some tools such as GCC and EMACs, but failed to actually implement a kernel. Work still goes on to create a kernel which would make GNU a full operating system. What actually happened was that Linux came along and the GNU project was ported to run under it and hence RMS insists that we all call Linux, "GNU/Linux" - something that most of us ignore.

As to the new book, the first difficulty is getting it into a readable form. It isn't in a common format as GNU TexInfo was used to create it. This is normal for a GNU project. but usually the end result is converted into PDF or HTML. If you want to read it then get Linux system, sorry the GNU/Linux system and use:

sudo apt update
sudo apt install texlive-latex-extra
sudo apt install ghostscript
sudo apt install texinfo
git clone https://git.savannah.gnu.org/git/c-intro-and-ref.git
cd c-intro-and-ref
makeinfo --html -v c.texi -o c.html --no-split

You will find an HTML file in the c-intro-and-ref directory which you can open and read.

So what do I make of the book? It has to be judged based on its stated aims:

This manual is intended for learning the C language, if you know how to program in some other language.  It is also a reference manual for GNU C.

It most definitely isn't for the beginner learning C. It starts off with an example of recursion! Any book that starts with a recursive example isn't for the beginner. To many a practiced programmer's eye it also has a number of formatting peculiarities. The formatting is good but it isn't commonly used. Apart from these problems, what we have is a reasonable reference manual dotted with comments and examples. The version of C that is covered isn't too clear. It is described as GNU C, which might be enough, but as far as I can tell it's C99. There are two insignificant mentions of C11 and certainly no mention of C23. There is also, surprisingly, no mention of the real issue in using C - undefined behavior. Perhaps this will appear in the companion voolume referred to here:

"GNU C has many obscure features, each one either for historical compatibility or meant for very special situations. We have left them to a companion manual, the GNU C Obscurities Manual, which will be published digitally later."

I have to say that I smiled at the truth of one of the footnotes:

"Personal note from Richard Stallman: I wrote GCC without remembering anything about the C precedence order beyond what’s stated here. I studied the full precedence table to write the parser, and promptly forgot it again. If you need to look up the full precedence order to understand some C code, fix the code with parentheses so nobody else needs to do that."

When someone of the status of RMS issues a book or a reference manual we probably need to take notice. In this case you have to wonder why he is spending time on the project, but if you would like to help out he is open to comments.

GCCSQ

 

More Information

https://lists.gnu.org/archive/html/info-gnu/2022-09/msg00005.html

Related Articles

GNU Manifesto Published Thirty Years Ago

GCC Gets An Award From ACM

GNU Hurd 0.6 Released

EFF Asks For The Right To Access Software

GNU Compiler Collection 5.1 Released

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

 

Banner


Linkerd Adds Egress And Rate Limiting
05/12/2024

Linkerd has announced a new version of its service mesh. It adds three major new features: egress traffic visibility and control; per-service rate limiting; and federated services.



Swimm Releases Copilot Extension For Documentation
03/12/2024

Swimm, best known for its AI-driven software documentation tools, has announced an extension for GitHub Copilot. The Swimm team says the extension means developers using GitHub Copilot Chat can turn C [ ... ]


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

<ASIN:1871962609>

<ASIN:B07RZ5RR35>

 <ASIN:1871962617>

<ASIN:1871962633>

<ASIN:1871962455>

<ASIN:1871962684>

Last Updated ( Thursday, 08 September 2022 )