14

In discussions and arguments about programming language design, one often hears comments about "sufficiently smart" compilers, as in "X needn't be inefficient, since a sufficiently smart compiler should be able to optimize it well".

As far as I know, the term originated within the Lisp community, since compiling Lisp into efficient object code is notoriously difficult (though not impossible, by any means). But what is the earliest known use of the phrase? Here's one from 1986, but surely earlier instances exist:

I think that one documentation string is enough, the rest can be ignored by any sufficiently smart compiler given the semantics of the language, and anyone who builds a really nice Commmon Lisp environment is welcome to extend the notion of documentation strings to include multiple ones.

(Incidentally, that message suggests that "..." be made a special identifier that is syntactically valid but signals an error when evaluated, to mark unimplemented code. This exact functionality would be added to Perl in version 5.12 from 2010.)

I am also interested (to a lesser extent) in early documents expressing the same sentiment with similar wording, if not the specific phrasing.

4
  • @LeoB. I agree that it's more of a linguistics question. It would be better suited for a general "History of computing" site. – texdr.aft Jan 14 at 22:30
  • 1
    @texdr.aft: Retrocomputing SE de facto is a history of computing site: see e.g. retrocomputing.meta.stackexchange.com/q/16 and retrocomputing.meta.stackexchange.com/q/459 – user3840170 Jan 15 at 16:27
  • 2
    As a developer--I would guess that a phrase to this effect was probably used sometime between coming up with the idea of a compiler and actually implementing the first one. – user3067860 Jan 15 at 16:44
  • 3
    I'm uncertain about the first use, but references to a sufficiently smart compiler were practically the mantra of the Common Lisp committee. – Jerry Coffin Jan 15 at 21:16
14

The phrase

In some cases a sufficiently smart compiler could figure out some of these precedence relationships.

was used in the 1979 book:

https://www.sciencedirect.com/science/article/pii/B9780120441204500088

Chapter 3 - SIMSCRIPT: PAST, PRESENT, AND SOME THOUGHTS ABOUT THE FUTURE HARRY M.MARKOWITZ

Indicating that it predated Steele, and also that it started as "sufficiently smart" not "sufficiently advanced" - indicating that it wasn't influenced by Clarke.

The phrase

This is the sort of thing that we might imagine a sufficiently advanced compiler being able to do, but we might not be willing to pay for the overhead needed to deduce the information.

was used in 1984 in The Description of Large Systems by Kent Pitman (might be same influence as Steele.)

https://apps.dtic.mil/dtic/tr/fulltext/u2/a148072.pdf

(Found by google scholar.)

3
  • Pitman and Steele were friends and may even have worked together, so they also likely influenced each other. – Barmar Jan 15 at 16:30
  • Here is a "webbed" version of Pitman's paper: nhplace.com/kent/Papers/Large-Systems.html – texdr.aft Jan 15 at 17:27
  • @Barmar - thanks for the note. I noticed that Pitman worked with AI at MIT so I found it likely, but it's nice to have more information. – Hans Olsson Jan 18 at 12:40
9

The phrase any sufficiently advanced/smart/etc X in a technology context stems from (in other words, is a snowclone of) the Arthur C. Clarke's quote “Any sufficiently advanced technology is indistinguishable from magic” (1962 1973).

16
  • 6
    Are you sure it does and if yes, what proof is there to support that? Or are you pointing a possible origin were it may be based on? – Raffzahn Jan 14 at 22:40
  • 4
    Leo, I'm all with you. My point here is that the way you wrote it ("The phrase [...] stems from [...] the Arthur C. Clarke's quote") makes it sound like a sure fact, not just a quite likely one. – Raffzahn Jan 15 at 1:15
  • 4
    But it doesn't fit the pattern: Clarke's law is "Any sufficiently advanced X is indistinguishable from Y."; and both it and its snowclones have "X" as something good and "Y" as something that isn't that good. If it had been "Any sufficiently advanced compiler is indistinguishable from an adversary"; I would have agreed but not in this case. – Hans Olsson Jan 15 at 12:08
  • 3
    Arthur C. Clarke didn’t coin the word ‘sufficiently’. – user3840170 Jan 15 at 12:51
  • 4
    The problem is that "sufficiently" is not a sufficiently rare modifier that it provides much evidence that this is a snowclone. Most of the people in the Lisp world at the time had training in mathematical logic and would have been sufficiently familiar with phrases like "sufficiently strong axiomatic system" (e.g. often used in discussing Gödel's results) that it seems like a bit of a stretch to bring Clarke into it. – John Coleman Jan 15 at 21:59
8

The Evolution of Lisp, an outline of the history, traces the phrase back to 1984. See page 42.

https://www.scribd.com/document/62651058/The-Evolution-of-Lisp

1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.