cvs commit: src/sys/fs/msdosfs msdosfs_vfsops.c

Robert Watson rwatson at
Sun Nov 18 02:38:35 PST 2007

On Sun, 18 Nov 2007, Peter Jeremy wrote:

> On Sun, Nov 18, 2007 at 09:21:31AM +0000, Maxim Konovalov wrote:
>>  o English lesson from bde@: "iff" is not a typo, it means "if and only 
>> if".
> AFAIK, it's a mathematical term, rather than general English (at least I 
> learnt it in high-school maths).  I'm not sure how common it is - I've used 
> it at work and had people (native English speakers) not recognize it.
> It's not in any of the FreeBSD dictionaries or my Concise Macquarie, though 
> it is in Wictionary and Wikipedia.
> This does bring up an interesting point: Unlike the documentation, the 
> FreeBSD sources are only available in American.  What (if any) effort should 
> the FreeBSD project make to ensure that the source code is accessible to 
> non-native speakers by avoiding unusual terms?

'iff' was definitely part of my formal education in three fields during my 
undergraduate career in the US -- mathematics, computer science, philosophy, 
and logic.  It's used as an abbreviation for a longer term which addresses an 
ambiguity in English, hence its popularity with the above classes of 
scientists and engineers.  I've seen it used fairly extensively in computer 
science training here in the UK as well.

I think we should target accessibility of our source, but by choosing clear 
and unambiguous terminology that has well-defined meaning in computer science 
and mathematics.  As such, 'iff' is just the sort of abbreviation, if we're 
going to use abbreviations at all, that we should be using.  Likewise, I would 
expect slightly unusual and potentially awkward use of the word 'or' in 
comments, on the basis that the word 'or' gets used in (often intentionally) 
ambiguous ways in English that don't align with the classical 
logical/mathematical/computer science uses.

Here are some other abbreviations I'm happy to see in our kernel comments: 
"CPU", "TLB", "LRU", "FAT", "FIFO", "LED", "UFS"; likewise some English terms 
that are abused in entirely standard and onsistent ways in computer science 
and related fields: "list", "queue", "process", "or", "and", "boot", "set", 
"page", "virtual", "device", "file", "structure".

Or to be short: I don't think we should try to "un-computer science" the 
kernel -- training in computer science is required to understand anything as 
complicated as a kernel, and expecting some knowledge of the terms in which 
computer science is described isn't unreasonable.  If someone wants to write a 
nice glossary of computer science terms in the handbook or developer's 
handbook, I think that would be a useful exercise, however -- or even just a 
cross-reference to a decent one.

Robert N M Watson
Computer Laboratory
University of Cambridge

More information about the cvs-src mailing list