Symbols, Identifiers, Names, . . .
- This is to ask opinions about what terms to use for certain concepts to make it most likely that readers trying to understand a new programming language or its compilers, interpreters, etc. will understand the concepts the same way as the inventor of the language and the designers of the compilers, interpreters, etc.
The particular concepts I want to ask about the terms for them are the concepts that go by such terms as name, identifier, symbol.
One of these concepts would refer to values that a runtime environment must tell apart from each other and as rapidly as possible, and that would relate to some programming constructs or execution constructs meaningful to the programmers as they set the initial conditions of the system, or meaningful to the system as it evolves during runtime. CTL uses "name" for this concept. These values do not necessarily, in and of themselves, translate back to a string that a programmer would recognize. The runtime environment does not necessarily include a symbol table that would provide that translation for programmers.
Another concept along these lines would refer to a string or some structure involving strings, or some human-language construct such as pictographs, recognizable by some programmers, and perhaps referred to in API descriptions/prescriptions. An example of this from for example the Smalltalk language would be the "selector" uttered as "at:put:". An example from the Fortran language would be "I", perhaps used as the variable name for a slot that can hold different integers as time marches on. Many programming-language manuals use the term "identifier" for this concept.
What terms do you prefer for these concepts, well, particularly for the first one I mention above, that is called "name" by CTL? Is "name" the clearest term for this, or "symbol", or "identity", or some other term in English or maybe even from another language?
When I first encountered CTL's usage, I thought they had it backward, and the term "name" should refer to what humans utter or write.
In thinking about the assignment of terms to these concepts, it may help to recall that in semiotics, "symbol" means a sign that takes its meaning by convention, and "index" means a sign that takes its meaning by causation. But it isn't clear to me that the semiotic meaning of "symbol" argues strongly that human minds be a location or origin of the convention, nor strongly to the contrary.
I do think that in the context of ordinary everyday use of English, speakers would usually think that anything described as a "name" can be uttered.
- jack_nospam scripsit:
> What terms do you prefer for these concepts, well, particularly forI use the conventions of Lisp, Scheme, and Smalltalk: I speak
> the first one I mention above, that is called "name" by CTL? Is "name"
> the clearest term for this, or "symbol", or "identity", or some other
> term in English or maybe even from another language?
of identifiers in programming languages, and symbols as the unique
run-time objects named by strings and sometimes with other properties.
Symbols are used to represent identifiers in all three languages when
evaluation is performed at run time.
May the hair on your toes never fall out! John Cowan
--Thorin Oakenshield (to Bilbo) cowan@...