The letters stand for stack, environment, control, dump, respectively, which are the internal registers of the machine.
The machine was the first to be specifically designed to evaluate lambda calculus expressions.
[1] The description published by Landin was fairly abstract, and left many implementation choices open (like an operational semantics).
During evaluation of C it is converted to reverse Polish notation (RPN) with ap (for apply) being the only operator.
If the item is ap, two values are popped off the stack and the application done (first applied to second).
In this case, the current contents of S, E, and C are pushed onto the dump D (which is a stack of these triples), S is reinitialized to empty, and C is reinitialized to the application result with E containing the environment for the free variables of this expression, augmented with the binding that resulted from the application.
If C and D are both empty, overall evaluation has completed with the result on the stack S. The SECD machine is stack-based.
The memory organization of the SECD machine is similar to the model used by most functional language interpreters: a number of memory cells, each of which can hold either an atom (a simple value, for example 13), or represent an empty or non-empty list.
The two pointers are traditionally named car and cdr respectively—but the more modern terms head and tail are often used instead.
In the SECD machine, cell 0 always implicitly represents the empty list, so no special tag value is needed to signal an empty list (everything needing that can simply point to cell 0).