1

In the field of programming, we know a function is "safe to speculatively execute" if it has no side-effects.

Is there a single word which can describe this attribute? Speculable? Speculatable? Something else?

(I prefer to avoid anything which does not include any variation of "speculate", in fear of drifting away from a term which is familiar in this context).

  • Well, most certainly not speculable. Much like you don't say unlable for "unlockable" or remable for "removable". – RegDwigнt Jul 25 '13 at 12:03
  • @RegDwighт well, I'm asking because Google's results for Speculatable actually suggest "speculable" instead, and both words have roughly equal amounts of Google results. – Oak Jul 25 '13 at 12:05
  • OneLook dictionary finds speculate in 42 dictionaries; Speculable in 1 dictionary; and Speculatable in no dictionaries. Try looking through some dictionary entries for speculate and see if they have any adjective that would fit your purpose. – TrevorD Jul 25 '13 at 12:21
  • I am trying to understand what "speculatable" would mean. Able to be speculated upon? That doesn't seem to be of any use to you in the above context. The attribute of "speculatively executable" is something entirely different, and doesn't have a single word. – Matt E. Эллен Jul 25 '13 at 12:44
  • @MattЭллен I'd say "able to speculate upon" is close enough to the meaning I want. – Oak Jul 25 '13 at 12:48
1

Either of the suggested terms could arise via ordinary methods of word formation, and would be properly understood by most people, and in particular by people familiar with the ideas of speculative execution. I prefer speculable and regard it as a more-civilized word than speculatable.

Note that the meaning of speculable suggested at a wordnik link in TrevorD's comment is “knowable”, while an older dictionary suggests the meaning “Capable of being seen”, which is related to the second example shown by wordnik.

However, multiple authors (1,2) have used speculable to refer to things that are speculative, or things that can be speculated about; both of those senses apply reasonably well to speculative execution matters, and are consistent with the first sense shown in OED1 (1919):

a. Obs. rare. ... f. specular* to SPECULATE. ... That admits of speculation ; speculative.

1

Specule is a proper word, a noun, found in dictionaries, unrelated in usage and etymology to the word speculate in general English.

Speculable/ speculeable cannot be used to imply speculatable, though some instances may be found in writing.

Note that the usage of speculable in a sense related to speculate is found essentially in philosophical discourse:

Thomas calls the objects of practical and speculative philosophy, respectively, the operable and the speculable. [emphasis mine]

(Ralph McInerny, Hist. W. Phil. V.II: XIII C - Chap 6, St Thomas Aquinas)

Data speculatable processor having reply architecture US 5966544 A
A microprocessor having a replay architecture with an execution core for performing data speculation in executing an instruction, …

LLVM Commits List:

I'd like Eric to take a quick look and agree that marking debug intrinsics speculatable is sane. (Yes they already are, but that doesn't mean it's sane. I also want Eric to know that 'speculatable' is going to start showing up in his debug info.)

Also, non-speculatable, speculatability, non-speculatability:

The method and apparatus are employed within a microprocessor capable of generating speculative memory accesses instructions. Certain instructions access memory locations containing speculatable information while others access memory locations containing non-secpulatable information. Memory-type values indicating the speculatability or non-speculatability of memory locations are stored within a translation lookaside buffer. (Method and apparatus for handling speculative memory access operations US 5956753)

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.