A symbol is an intentionally arbitrary sign. A symbol bears no resemblance to what it represents; its denotation is a matter of convention. Examples of symbols include words, national flags, and traffic signals.


1   Form

Symbols may bear any form.

2   Properties

Symbols enable displacement.

Symbols require traditional transmission; users must learn its conventional meaning.

2.1   Scope

The scope of a symbol is the context in which it is valid and can be resolved to find its referent.

For example, the scope of "hoagie" is Philadelphia and linguistic circles.

# Scope Rules

  • The scope of a declaration x is the context in which uses of x refer to this declaration
  • The association of names with locations in memory and then with values can be described in terms of _environments_, which map names to locations in store, and _states_, which map locations to their values.

Name binding is the process of transforming a free variable into a bound variable. (Effectively creating an association between data and an identifier.a)

An identifier bound to an object is said to reference that object.

  • Dynamic vs. Static
    • Dynamic
      • A use of a name x refers to the declaration of x in the most recently called procedure with such a declaration.
      • Polymorphism, Lisp
    • Static
      • Block scope
        • List of declaration followed by list of statement
        • Block can be a statement
    • Can be likened to time and space
      • Dynamic asks for declaration whose units most closely surround the time of use
      • Static asks who most closely surrounds the physical location of use
  • Declarations and Definitions
    • Declarations tell us about the types of things
      • e.g. signatures
    • Definitions tell us about their values

3   Classification

4   Representation

In the C programming language, the null character signifies the end of a string, often called a null-terminated string. This allows the string to be any length only the overhead of one byte. The alternative is store the length of the string, which requires either a string length limit of the 255 if one byte is used, or an overhead of more if the string is longer.

The null character is often represented as the escape sequence \0 in source code.

A string is an object built around an array of characters.