What does the PRE in PREfast stand for?

Commenter Jeff asks what the PRE in PREfast stands for.

It's an inside joke.

The Microsoft Programmer Productivity Research Center (MSPPRC) originally produced a tool called PREfix. Michael Howard put me in touch with the development team, and they explained that it was called PREfix because it helps you fix your bugs before (PRE) you even run the code.

The problem with PREfix was that it required monster hardware, and even if you got the hardware up and running, the results took days to generate, and tuning the program's parameters required intricate knowledge of its inner workings. In other words, it was something only a researcher would love.

When they started sharing the tool with the product groups, the response was as you might expect: "This is great stuff you guys have here, but it's kind of impractical to expect everybody to have hundreds of thousands of dollars of hardware and a Ph.D. in order to run it."

The solution was a lightweight version of PREfix, which was named PREfast because it was a fast version of PREfix. It didn't do as thorough a job, but it didn't require monster hardware and could be understood by people who didn't have a brain the size of a planet.

In a sense, Jeff asked the wrong question. The real issue is not what the PRE stands for; it's what the fast stands for!

Bonus reading:

Comments (13)
  1. Chomsky says:

    The real issue is not what the PRE stands for; it's what the fast stands for!

    Ah, as you explained, it does not stand for anything. It is just the common English adjective.


  2. Cecil says:

    So what you're saying is that the prefix "pre" in prefast stands for "prefix"?

  3. Ben says:

    @Cecil: No, it stands for PREfix

  4. Spire says:

    I'm wondering why the "PRE" part of "PREfix" is in all caps. Perhaps it actually stood for something at some point (in addition to meaning "before")?

  5. Michael G says:

    J. Edward Sanchez: It was probably just named by somebody still caught up in the great intercap revolution of the '90s.  See "NeXTStep", "NeWS".

  6. Lex Mitchell says:

    This seems pretty simple the PRE had a double meaning; pre as in before and pre as in prefix so they capitalised it to highlight that. Now they decide that the fact it's fast is the important bit so they ditch the fix for that. Like Raymond said an inside joke (and inside jokes by their nature aren't amazingly funny to an outside audience).

  7. Mike Dunn says:

    +1 for the Hitch-Hiker's reference.

  8. Worf says:

    Hrm. Given PREfast is practically given to everyone (I know the WDK comes with one version, and there's another somehwere else), I wonder what PREfix is like, after reading the description.

    Sounds like a fun toy to cripple that quadcore PC IT's just given ya. (I have so many work PCs… including a quadcore one).

    Alas, perhaps the only way is to get that lovebomb from Microsoft and move to Redmond. Then I'd have to give up the quadcore.

  9. Klimax says:

    I got my own Core i7 920 with Win 7 64 and 6GB of RAM. Could be good test… (And I have already planned one crazy – raring several hundred milions of files.)

  10. !fix it says:

    What does fix stand for? The program doesn't fix anything!

  11. Joren says:

    (Since PREfix was apparently ten years ago) would it still require monster hardware today?

  12. Jonathan says:

    The thing with PREfix is that is runs on whole projects, and therefore on a project the size of Windows, it takes considerable hardware and time.

    Several years ago, I ran PREfix on a smaller MS product (~500K lines, I think). Hardware was Dual-Xeon 2.8GHz with 2GB RAM – a lot for those days, though they skimped on HD. A run would take 10-14 hours. The program does require more knowledge than PREfast. It also requires more maintenance, since it stores its results in a combination of folders and MSSQL database, and presents it though a custom IIS site (with custom ActiveXs).

  13. Marquess says:

    @!fix it:

    Programs don't fix drivers. People fix drivers.

Comments are closed.

Skip to main content