The New C Standard
derek_farn writes "At a very late stage Addison Wesley decided not to publish my book, 'The New C Standard: An economic and cultural commentary'. Now that the copyright issues have been sorted out I am making the pdf freely available. You can download the pdf (mirror 1). The organization is rather unusual in that the commentary covers each sentence of the C Standard (actually the latest draft of C0X, excluding library) one by one (all 2022 of them). One major new angle is using the results from studies in cognitive psychology to try and figure out how developers comprehend code. The aim being to try and produce some coding guidelines that reduce costs (ie, reduce the time needed and bugs created). The book also contains the results of lots of measurements (over 400 figures and
tables) in an attempt to back the arguments being made -- another unusual feature since most software related books don't publish any figures to back up what they say. Other subsections discuss common implementations and differences between the latest draft standard and C90/C++. More background on the project is available from the Inquirer.
Good luck to you too. Youre clearly a knowledgeable and experienced programmer, and being a knowledgeable/experienced programmer means you are probably able to write code that is minimal on bugs, fast, and effective. But what is the purpose of this book? It clearly isnt a commentary; the reference on your homepage to a blog entitled coding guidelines seems more appropriate: the book used the word shall so much when I tried to count the amount Adobe Reader hung for 2 minutes.
Your book is a style guide: a reference of background information and pointers how best to code, and know whats going on. A good C programmer will know this info already (or be on their path there), as the only reason for knowing C today is to interact on a close level with the machine, or to know exactly how things are handled, otherwise theyd be mad not to use a higher level language. A knowledgeable programmer does not need dictating to.
So Im curious, for whom do you intend this book to be most useful for (the book most certainly is useful if someone needed a reference, but given my overriding interpretation of it as a style guide for people who dont need one, it seems to be lost without an audience).
This seems to be an interesting topic. I'm sure you could sell a few copies on Amazon...
When you die, on your deathbed, you will receive total consciousness. So I got that goin' for me, which is nice.
C is over with already, geez. Slow, cumbersome, and nobody has a compiler for it. You should be switching to Java by now. It's fast, portable, and the JVM is everywhere. The Novell JVM is the fastest. Dennis Ritchie's time is past. Let the dinosaur turn into oil already and upgrade to the technology that will take us into the 22nd century and beyond. JAVA!
Just a handful of comments, and the links are already not responding. Can anyone seed a torrent and provide that ?
cheers
There is another mirror of the pdf here thanks to the folk at mirrordot.
...going to another publisher?
I used to be a development editor (10-15 years ago) - a real one; i.e. a software developer recruited to improve developer-level books, not a editor carrying the title. I would have been interested in providing up-front assistance to you and helping you get it ready for someone else. Most of the non-textbook (IDG, Que, SAMS, etc.) publishers prefer to have things come in chapter-by-chapter so things can be directed along the way, but with feedback prior to submittal, you could have gotten around that. You could have made some money that way.
Not really much more to say than that. Sorry you couldn't get it published conventionally. Writing's hard, though, so it's really dead cool of you to give it away.
Good grief. I can see why the publisher bailed on this. I wonder how much they would have had to charge for it?
-Mark
This is ANSI C. It gets refreshed every so often to incorporate some changes. One of the easiest changes to spot is the following...
for(int i = 0; i MAX_COUNT, i++ )
In the olden days, you'd have to declare i before using it in the code. The newer standards let you declare variables at their first use. This serves to clean up the code a little and also lets the programmer see what type it is without having to scroll up to the top of the function.
There's lots of other little changes like that in the various "standards".
Remember, You are unique...just like everyone else.
1616 pages....
- AMW
That's the number of the beast multiplied by 2.426! Incredible!
I don't know if I trust a style guide with "The New" in the title. Nothing stays new forever.
What about when the next version of C comes out?
You'll have to go back a revise the title! Why not do it right the first time and call it "C90/C++ Style" or something.
Maybe times when cleaning up other people's files I have run into files with "new" in the name... dated years ago. A sure sign it can be deleted.
One major new angle is using the results from studies in cognitive psychology to try and figure out how developers comprehend code.
I believe that developers comprehend code just like a computer, one line at a time. We store things in memory (short-term memory) and "run" them through our minds, simulating what the computer might do. Of course, our human syntax checkers can sometime don't catch, but the logic is there.
I've always thought that there must be a better way to write high-level code than writing a large code using snippets of simple logic. Of course, we can only write code similarily to the way our minds work. When we solve problems, we just don't think about it and it happens, we run through several scenarios, if-then situations, and logic tests before we come to conclusions.
The better question is how to get a computer to produce code autonomously by asking it the final objective. For example, it would be nice to have the computer figure out the "how" as opposed to us programming it in.
IGB: More fun than eating oatmeal!
Not just that, the new standard also seems to allow you to write "i MAX_COUNT" without having to include a comparison operator! :)
quidquid latine dictum sit altum videtur.
for (int i=0; i{...
}
Missing '<'
Comma instead of Semi-colon
Incomplete statement
The bonus question is: what is the lifetime/visibility/scope of 'i'?
And a comma is not the same thing as a semi-colon. ;)
http://nerdfortress.com/
and haven't read the book yet, but based on first impression would you trust a book on standards if the layout of the book itself doesn't seem to follow a publishing standard - besides the pdf file format.
I don't think this C-thing is going to catch on. :)
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
It seems that some men love C0X, but most men want nothing to do with C0X. The men that like C0X say there's nothing like the feel of the thick C0X standard in your hands.
"I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
Also, choosing to make deep commentary on the suitability of a computer language as a tool for solving problems but then going light on the dominant OO languages is just too big an omission. e.g. on pg 24: Since we all mostly program in OO paradigms these days, the author's perspectives on C++, though they would lengthen an already long book, should have been prominently featured instead of downplayed.
SLASHDOT: news for people who can't concentrate on work or have no life at all and got tired of yelling back at the TV.
You could have published your book yourself through booksurge, and sold it on Amazon.com. At least that way, you'd actually get payed for all the work you did on it.
Since when did operating systems become a religion?
I'm suffering from a sense of Deja Moo... I'm sure I saw this last month...
Donald 'Duck' Dunn: We had a band powerful enough to turn goat piss into gasoline.
The GP undoubtedly put a less-than operator in there, but Slashdot tried to interpret that as an html tag. And as another poster mentioned, it should be
for(int i = 0; i < MAX_COUNT; i++)
Tech, life, family, faith: Give me a visit
it shouldn't be visible outside of this for loop. I'd be very unhappy if it was.
Some lacking the elegance of the K&R book.
Good thing this isn't the first book about C or
it would never take off.
What you really need is a new language.
Before modding me down, think about it. Any programming language is about solving problems, and problems you solve today are different from the ones someone had back in the days of C creation. Moreover, the ways you deal with programming changed as well. IT industry needs new languages, including low-level and compiled ones.
Sorry about the typos. The comparison was there, I just forgot that Slashcode filters it out. I'll chalk the comma mistake up to lazy fingers.
Remember, You are unique...just like everyone else.
No. This is obviously the NEW C standard they've been talking about. I haven't read the article, but clearly they've loosend up on punctuation. Also, any comparisons to directives starting with MAX must automatically default to a "less than" comparison.
"I'm not impatient. I just hate waiting." - My Dad
The book's homepage can be found here: http://www.knosof.co.uk/cbook/cbook.html
And when you're done with that you could move on to E and F....
The bonus question is: what is the lifetime/visibility/scope of 'i'?
Depends on the standard, and how compliant your compiler is to the standard.
If the standard doesn't specify then it's up to the compiler writer; most will probably make it the same as the current scope (which will strike most programmers as wrong).
Odds are the spec requires that the scope be only within the loop, so then it's up to the compiler to actually be compliant to the spec.
There are numerous compilers that fail to live up to specs they allegedly comply to. MS Visual C++ 6.0 for instance -- you can do the above in C++ code, but the variable's scope is the same as the parent function. Bloody annoying. Fixed in 7.0 at least.
Yea, C is a dead language. Which explains why it is also the most widely used programming language, and why there are more lines of code in active use than any other programming language.
Then don't use any version of Visual C++ before .NET (7.0). You'll be very unhappy.
People could try ordering from Amazon, the ISBN number is 0201709171. Perhaps Addison Wesley will change their mind if enough order are received.
Today, as in the olden days, this:
i MAX_COUNT, i++
would fail to compile.
an ill wind that blows no good
Have you considered making the book available through http://www.lulu.com/? It's a print-on-demand service that allows people an easy way to get a properly bound printed copy of your book, and for you optionally to get some money for your efforts. No cost to you to get set up either.
No, I don't work for lulu or have any financial connections to them. I just know one of the guys that works there (Jeremy Hogan, formerly from Red Hat).
Gotcha... Modded as interesting... Ever heard about rational numbers? ;)
The decimal expansion of a rational number is eventually periodic (in the case of a finite expansion the zeroes which implicitly follow it form the periodic part). The same is true for any other integral base above 1. Conversely, if the expansion of a number for one base is periodic, it is periodic for all bases and the number is rational.
I work for a publisher and would like to speak to you about publishing your book.
If interested I will provide you my contact info.
There are lots of computers beyond PCs. Think about all this embedded stuff, 16-bit and 8-bit controllers, especially those that do real-time tasks. A friend of mine has just completed a pure C project of 11k lines for an automotive controller. This does not seem like a very big deal, but there are lots of such things. For their developers, C is a godsend, compared to assembler, and such a book a real boon.
(And yes, I know about Forth, etc)
Computers make very fast, very accurate mistakes
The "encryption" and "protection" in a PDF is essentially worthless. They're little more than bits that can be set to tell the reader to prevent copy/paste or printing or whatever. It's only enough to stop the most clueless of people... and those people are unlikely to know how to modify and create a new PDF anyway.
Not counting the citations at the end, the book is 1,577 pages of "guidelines." Who's got that kind of time for a hobby? Who, having a job as a programmer, even has the time to read a book like that?
How about somebody writing a book called The New Writing Standard for Books on Programming? Most of the programming books I own are unecessarily long winded, but this book takes the cake!
quiquid id est, timeo puellas et oscula dantes.
The book is listed here on The Assayer. User-submitted reviews would be appreciated!
Find free books.
I havent read the book. But some thoughts on that post:
The aim for C should not simply be to reduce the time spent on code, the simplistic economic view. Leave that to Java. C is for a clear and thorough understanding of the code's execution, more so than C++. The execution flow can very clearly be seen in this structured language which does not try to be smart or do things behind the wall in the compiler. C is brutal and raw, therefore low level and powerful. Leave it to that. C is great for kernel level programming, drivers and embedded systems, and other places where you get anal about control over whats happening. C is awesome when you need to mingle the code with assembly in tight spots and still keep things readable.
Please do not turn it into Java. Programmers who need to spend less time can just use Visual Basic or equivalents.
I like the idea of commenting on all parts of the standard. But you said you used a cognitive analysis of some sort. More so than that, I'd look for comments from experienced developers, maybe people who worked on various kernels and drivers, integrated various languages with C, developed C libraries and worked on a hundered-file projects.
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
I've only been skimming it for a little bit now, but this book seems extremely interesting.
It probably would have gotten a lot more love during editing by the publisher, as, IMHO, it's fairly difficult to approach and digest in its current form. Maybe I just don't get it yet, but it does seem to suffer a bit due to its organization.
That said, the information in here is absolutely enthralling. I went over a few of the more subtle parts of the standard that I know fairly well, and I was impressed. The explanations are good, but what I really find compelling are the examples, historical anecdotes, references to different machines and architectures, and juxtapositions with other languages. You can tell that this guy knows this stuff, but more importantly, he's *lived* it.
The comments about this book not being useful to a "good C programmer" completely miss the mark. A good C programmer -- one that has a true love for programming -- will most likely find this book captivating.
Some of it is to get some lessons from ANSI C++:
C++ style comments (most compilers accept already, make it part of the standard)
declarations anywhere, not just at code block start.
The new C++ style scoped for.
New data types like _Bool, _Complex, _Imaginary
Some others probably....
The biggest new thing is probably the restrict keyword. First, any new keyword has the possibility of breaking old code, so once could say that C0x is not fully backwards compatible with all former code.
Then actually getting yrou head around it. This is a new keyword to help give information about pointers and what they may alias (multiple pointers to the same variable). Compilers have difficulty with certain optimizations becasue they can never guarantee aliasing. With restrict, you're trying to give it hints. I'm sure this will be a cause of bugs in code for years.
we all mostly program in OO paradigms
Uh. Got any proof?
Take some inspiration from the book you just read: provide some proof and a reference.
In fact, most programming remains function oriented.
Sorry. Nice try, though.
1616 pages
The latest Harbison & Steele is only 560 pages long.
the original K&R: 228 pages
K&R 2nd ed: 272 pages (also uses thicker paper)
in php its no big deal to make sure that anything you stuff in a db is safe - just do an $valueToStore = htmlentities($valueFromPoster). So either do the same in perl, or convert to php.
At a glance, this is impressive not so much for content as for format. In essence this book is a Talmudic http://en.wikipedia.org/wiki/Talmud breakdown of interpretation.
Your book is a great mandate for a programmer to build a C programmer's editor that enforces all the rules. Emacs "c-farn-mode", anyone?
--
make install -not war
Now that the copyright issues have been sorted out...
As I was reading this sentence, my heart stopped and my mind jumped for joy. I thought the RIAA/MPAA/etc. had finally given up, congress had rolled back copyright terms, and the GPL was finally successfully tested in court.
Then I read the rest... *sigh* oh well.
Apparently, the preview function isn't sufficient to save me from my typos.
-Mark
But what if the intent of the poster was to write an html tag (which is more often the case than not)?
If you want to write sharp brackets on some programming message board that allows HTML tags, use the "<" for less-than, and ">" code for greater-than. These will show up as sharp brackets in the post, yet will not interfere with the HTML rendering & parsing.
Tech, life, family, faith: Give me a visit
Really? How do you read it without a key then?
See http://www.lulu.com/Lulu for an economical approach - you can choose to take royalties if you like.
Andrew Yeomans
i MAX_COUNT, i++
would fail to compile.
Even with with this #define?
Slashcode filters partial HTML tags [left tags, "<", and right tags, ">"], which, unfortunately, mathematics & C-geeks know as "less than" and "greater than" symbols.
To get a "less than" symbol, you must use the "ampersand-l-t-;" notation; for a "greater than" symbol, use the "ampersand-g-t-;" notation.
What the GP meant to display was
PS: Under Slashcode, HTML's "ampersand-pound sign-decimal number-;" notation doesn't work, either.What does that have to do with this? You can encrypt it with a one time pad if you want, and that still won't prevent anyone from modifying and redistributing copies.
It dead and gone but still, every decent implementation of any other language is written in C. Even the best assemblers are in C.
On reusability: Show me any piece of Java code that is run more often on more machines in the world than printf()
- Mike
All ideas^H^H^H^H^Hprocesses in this post are Patent Pending. (as well as the process of patenting all postings)
I remember that problem. There is code to fix that, but seeing random programs crash as a pointer wandered happily through system memory, re-writing random stuff.
It was amusing in retrospect, but I thought I was going to have a heart attack trying to figure out what was wrong with my code (because it worked perfectly in Solaris) since there was nothing wrong with my code lol
Everything I need to know I learned by killing smart people and eating their brains.
Using <, >, and &, along with consistent use of the Preview button, you can quote what you need to get it to work.
Know thy tools.
yes stopping someone reading something without a key is easy enough but thats NOT the goal of a drm system.
a drm system is meant to let you read it whilst not letting you copy/modify it. This is basically impossible to achive reliablly on an open system like the PC.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
1983 called and it wants its 'new' standard back...
All your base are belong to us!
ecode doesn't indent properly - they have it screwed up intentionally to prevent the page-widening trolls (same as inserting spaces at random)
'i' is introduced in the main flow, *not* in the body of the for loop. It should be (and is) visible everywhere in the containging block, just as if the "int i" had been on the previous line. This is handy in the common case where you want to know what 'i' was when the loop exited.
In any case, only a block introduces a new scope, and the declaration is outside the for block, so it makes sense that it's in the larger scope.
Socialism: a lie told by totalitarians and believed by fools.
The common thread, as I read it:
It sounds to me like the silver bullet is competence, which is acquired through a combination of aptitude, training, and experience. Silver bullet methodologies attempt to negate the importance of aptitude by relating experience into best practices for training. Silver bullet languages attempt to negate the importance of aptitude by making the languages more robust against stupidity. Yet, in the hands of the inept, silver bullets invariably embed themselves in the nearest available foot.
Some people just don't get it, whatever "it" is.
http://www.php.net/manual/en/security.database.sq
http://us3.php.net/manual/en/function.get-magic-q
He who has no
IIRC 'b', and its replacement 'c', were both derived from BCPL, so the next in line should be 'p'.
thanks for writing one of the most convoluted programming books in history
simplicity and elegance are definately not in this book
Yet, another standard for coding on C.
Who needs this?
How about changing the Title.
"Olsen's Standard Book of C Coding."
C: The expurgated version....
P: (pause; politely) I'm sorry, I didn't quite catch that...?
C: The expurgated version.
P: (exploding) The EXPURGATED version of "Olsen's Standard Book of C
Coding"?!?!?!?!?
C: (desperately) The one without the MACROS!
P: The one without the MACROS!!! They've ALL got the MACROS!! It's a
Coding Standard, the MACROS, it's in all the books!!!
C: (insistent) Well, I don't like them...they mess my debugging output.
- these are not the droids you are looking for -
I got bored just reading the slashdot article about this book. No wonder Addison Wesley decided not to publish it.
"...and the GPL was finally successfully tested in court."
The GPL has been specifically enforced by a judge in at least the German court system. In the U.S. court system, even SCO eventually agreed to the legitimacy of the GPL in court filings to save its ass from IBM's countersuit. GPL violators in the United States have been hit with court injunctions to compel them to abide by its terms.
The notion that the GPL needs to be tested in court is history, as it has been vindicated many times by actual court actions.
The Annotated ANSI C Standard. Any comments on this one from the comp.lang.c newsgoup yet?
I'm up to page 132, and so far, it's an introductory cognitive psychology text. A bad one.
There are 1616 pages of this drivel. Even for someone interested in programming language design, this is a painful read.
There's room for a good book in this area, but this isn't it. A more useful approach might be to start from Amit Yoran's statement that "About 95% of software bugs come from 19 common, well-understood" programming mistakes", and evaluate language designs against that.
Mmm, this'll be nice for benchmarking my printer.
Direct away from face when opening.
Use "Extrans (html tags to text)" and Slashdot automatically does the conversion to entities.
for (int i = 0; i < MAX_COUNT; i++)
Of course, you can't do any HTML that way, so if you need HTML tags, you need to use a different option and do the entities yourself, like this:
&
<
>
Don't forget the semicolon, people!
Just because it CAN be done, doesn't mean it should!
I would upgrade to the newer acroread-7.x, but that can not be used for easy pdf-to-ps conversion (e.g. acroread -toPostScript < file.pdf > file.ps) without a valid DISPLAY...
In Soviet Washington the swamp drains you.
Good grief. From reading the comments, you'd think he just kicked everyone in the teeth. The guy is giving away a free book. Enjoy it.
It's going to take a while to digest a document of this magnitude, but at least some of us out here are part of your target audience. I've always been interested in computer language grammar. Back in the day I used to read the USENET C FAQ for fun, wrote several translators and code generators, and ID'd my share of C compiler bugs.
What are your plans for the document? If you can't find another publisher there's probably at least a thesis or two hiding in there...
Best of luck
Vuja De: That sinking feeling that this is going to happen again. Often occurs in meetings with Product Managers.
It isn't code that fixes it - just a simple compiler command line switch:
/Zc:forScope (See the MSDN Documentation)
If you leafed through it at all, you'd see that the pages are about 1/3rd the standard published book height. so, 500-800 normal printed pages is more like it.
It reads well, it's a useful book, and the shorter pages make it appear uncluttered.
I'm just amazed - a guy puts this much time and attention into what looks to be a useful book, and GIVES IT AWAY FREE, then all anyone on Slashdot does is moan and whine.
Typical.
Apparently, there were objections from Microsoft when DHS started to point out that Microsoft was the problem. What's left of the "National Cyber Security Division" actually seems to be CMU's CERT plus a front man, Andy Purdy, in Washington.
I think we have found the Anti-Shildt!
Alright, so here we have an author who's done a great job and we're all downloading his book. The publishers have decided to cut themselves out of the loop.
Does anyone know how to easily make a donation to the author, one saying thanks for releasing this cause we value your work, and two rub it into publishers that a technical book does have value?
Excuse me while I go out and by a few reams of paper and some ink cartridges before trying to print this 1616 page document out on my printer! Anybody having any luck so far fitting this into a single binder? I understand now why the publisher balked at this -- the environmentalists would have stormed the office in protest for all the trees killed to print each copy! No problem, I'll just read the whole thing sitting here at my printer...
I've abandoned my search for truth; now I'm just looking for some useful delusions.
I'm glad you had a good education. Unfortunately, there are a lot of CS majors emerging these days with a Java-only education. Certain universities are notorious for this. You might think that once someone knows CS, learning additional languages is trivial. But this is not really true, especially if he only knows one language. It's also easier to go from C to java than java to C.
But, for the truly pedantic (like some of us who have been involved in C coding standards for 20 years), much of the detail is interesting. I'm not sure how much general audience there would have been at $90/copy. Graduate level seminars in the ecology and natural history of language standards development?
-dB
"It if was easy to do, we'd find someone cheaper than you to do it."
Anyways, there's the #define hack that's the standard workaround for the for-loop scoping issue.
Attention zealots and haters: 00100 00100
WOW!
While the technically adept can often get around these limitations, they are enough to keep most people from copying/modifying/printing.
It's unknown whether the creators of C were using the next letter in BCPL or the letter after B.
The Jargon File entry on C says "Before Bjarne Stroustrup settled the question by designing C++, there was a humorous debate over whether C's successor should be named 'D' or 'P'."
Please, for the good of Humanity, vote Obama.
lets the programmer see what type it is without having to scroll up to the top of the function. I thought that was what Hungarian notation was for. i, j, k, x, and y where always assumed to be ints
Wow, if you are thrilled by language specifications, they you will shit your pants at the bonus 80 pages of experimental psychology background!
;)
But seriously, good work dude
"Sir, none of our techniques are breaking the prisoner"
"I was worried about this, they must have trained him on The New C Standard"
It's 10 PM. Do you know if you're un-American?
'b', and its replacement 'c', were both derived from BCPL, so the next in line should be 'p'.
First there was BCPL. Then, there were B, C, and c-PLus-PLus.
Try writing properly tail recursive functions in C
This is a compiler issue. A compiler can choose to optimize tail calls, or it can choose not to. GCC since at least version 3.3 does optimize tail calls in many circumstances.
You can do the obvious demunging with this email address
Derek M Jones derek@NOSPAMknosof.co.uk
He also has a website: http://www.knosof.co.uk/
Amusingly, the "Year 2000 problems in C" link is 404 compliant.
Tag lost or not installed.
I would upgrade to the newer acroread-7.x, but that can not be used for easy pdf-to-ps conversion (e.g. acroread -toPostScript < file.pdf > file.ps) without a valid DISPLAY
man Xvfb
an unmodifiable/copy prohibited PDF file gives them some security against modification and distribution of only parts of a document.
Wouldn't a digital signature be adequate protection against modification?
There are no upfront costs involved.
Also, I'd like to point out that I have no affiliation with lulu, I just was looking around for a site that did what they do.
This book is a refreshing change. It is written by an author who has a fully literate command of English, and is therefore a pleasure to read. The contrast to run-of-the-mill books about computing, all of which usually have the linguistic stamp of a semi-literate ten year old child, is so very obvious. The typology is excellent and has been designed by somebody who is fully aware of both the subject matter and communication techniques. There are a few grammatical inconsistencies, primarily of tense and plurality. The publishers are absolutely potty turning down this really beautiful magnum opus. The author is similarly off the normal track giving away this superb work. He should take his work off-line set up a pay for download site as soon as possible.
It does nothing to stop unauthorized printing/copying (by copying, I'm referring to the clipboard.)
Anything that is effective in prohibiting copying to the clipboard will likely prohibit use of a screen reader, making the document not section 508 compliant; watch your company lose its government contracts and tax breaks. And if it can be displayed on screen, it can be printed or OCR'd. What else does the "print screen" key do?
- - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
I skimmed thru the first section and 10 pages or so into the second in trying to decide if this is worth the paper and ink it would take to make a dead tree version of it.
Generally, I think is worth the time & effort to add it to your bookshelf.
Addison-Weseley has inadvertantly done us a favor since historicly they have hung onto the copyrights and vigorously defended them to the detriment of the subject matter at hand. Their treatment of the amiga related materiel they published, by end of life treating it long before the usefullness of the material was appreciated by the users brought the amiga platform to a somewhat premature death because the flow of info on how to program it was severely restricted. But they weren't interested in a production run of only 10,000.
At any rate, I'll give this a **** rating. Its should, unless obvious mistakes are found, serve as the new c99 bible because of its detail.
I also have both K&R books, and you have to read then with the thought of their conciseness in hand before you can grasp what is being said. Concise is nice, until it leads to obtuse. And its not the least bit helped by the poor quality of the printing where whole pages seemed to have been included in the latest version that were printed on an offset press whose plates were, in the vernacular of the pressman, going blind. This makes it more difficult to read than it should be.
Makeing your own dead tree version of this should alleviate all the pain except for its weight as you carry it around since its going to be most of the second ream of paper in duplex mode.
--
Cheers, Gene
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
99.35% setiathome rank, not too shabby for a WV hillbilly
In fact, the next in line is PerL.
A monkey is doing the real work for me.
It seems its first application was as a nonsensical statement generator.
Anyway, the Pascal-looking Amiga E (official site) is what I figured would be hiding behind the link. It was even semi-popular for some time.
Pages are in letter size format (187.3x134.9mm^2) how am I supposed to print it with my ol A4 inkjet printer?
this post contain no useful information, no need to mod it down