Practical Foundation of Programming Languages by Harper distinguishes concept "symbol" and concept "symbol reference" which refers to a symbol:
Chapter 31 Symbols
In this chapter, we consider two constructs for computing with symbols.
The ﬁrst is a means of declaring new symbols for use within a speciﬁed scope. The expression
new a∼ρ in eintroduces a “new” symbol
awith associated type
ρfor use within
e. The declared symbol
ais “new” in the sense that it is bound by the declaration within
eand so may be renamed at will to ensure that it differs from any ﬁnite set of active symbols. Whereas the statics determines the scope of a declared symbol, its range of signiﬁcance, or extent, is determined by the dynamics. There are two different dynamic interpretations of symbols, the scoped and the free (short for scope-free) dynamics. The scoped dynamics limits the extent of the symbol to its scope; the lifetime of the symbol is restricted to the evaluation of its scope. Alternatively, under the free dynamics the extent of a symbol exceeds its scope, extending to the entire computation of which it is a part. We may say that in the free dynamics a symbol “escapes its scope,” but it is more accurate to say that its scope widens to encompass the rest of the computation.
The second construct associated with symbols is the concept of a symbol reference, an expression whose purpose is to refer to a particular symbol. Symbol references are values of a type
ρ symand are written
’afor some symbol
awith associated type
ρ. The elimination form for the type
ρ symis a conditional branch that determines whether a symbol reference refers to a statically speciﬁed symbol. The statics of the elimination form ensures that, in the positive case, the type associated to the referenced symbol is manifested, whereas in the negative case, no type information can be gleaned from the test.
I would like to understand the two concepts "symbol" and "symbol reference" in some specific languages. For example, in Scheme,
syntax: (quote obj) syntax: 'obj returns: obj
obj is a variable, which of
'obj in Scheme is a symbol as defined in Harper's book, and which is a symbol reference as defined in Harper's book? That is:
objin Scheme mean a symbol or a symbol reference as defined in Harper's book?
'objin Scheme mean a symbol or a symbol reference as defined in Harper's book? (Does notation
'objmean the same in Scheme and in Harper's book?)