How is a symbol “given meaning by a family of operations indexed by symbols”?


Practical Foundation of Programming Languages by Harper says:

Chapter 31 Symbols

A symbol is an atomic datum with no internal structure. Whereas a variable is given meaning by substitution, a symbol is given meaning by a family of operations indexed by symbols. A symbol is just a name, or index, for a family of operations.

Many different interpretations may be given to symbols according to the operations we choose to consider, giving rise to concepts such as fluid binding, dynamic classification, mutable storage, and communication channels.

A type is associated to each symbol whose interpretation depends on the particular application. For example, in the case of mutable storage, the type of a symbol constrains the contents of the cell named by that symbol to values of that type.

What does “a symbol is given meaning by a family of operations indexed by symbols” mean? Is “a symbol” given meaning by a family of operations not one of the “symbols” indexing the family of operations? What is the relation between “a symbol” and “symbols”?

What does “a symbol is just a name, or index, for a family of operations” mean? Does it mean “a symbol names or indexes a family of operations”?

When a symbol is used in each of the following example cases (which I hope you could consider as many as possible, in particular the first three cases):

  • “represent a variable in symbolic representations of equations or programs” (see the quote below),
  • “represent a word in the representation of natural language sentences” (see the quote below),
  • represent an assignable (?) in mutable storage,
  • represent something (something similar to a variable?) in fluid binding,
  • represent a class (?) in dynamic classification,
  • represent something (?) in communication channels,

how does the above quote about a symbol applies, specifically:

  • is the symbol given meaning by what family of operations indexed by symbols?
  • is the symbol just a name, or index, for what family of operations?

Thanks.


The Scheme Programming Language, 4th Edition, by Dybvig, says

Section 2.2. Simple Expressions

Symbols and variables in Scheme are similar to symbols and variables in mathematical expressions and equations. When we evaluate the mathematical expression 1 – x for some value of x, we think of x as a variable. On the other hand, when we consider the algebraic equation x 2 – 1 = (x – 1)(x + 1), we think of x as a symbol (in fact, we think of the whole equation symbolically).

While symbols are commonly used to represent variables in symbolic representations of equations or programs, symbols may also be used, for example, as words in the representation of natural language sentences.