If there is no distinct between read, compile and runtime in Lisp, can someone give me some intuitive examples?

Viewed 514

As I read blog Revenge of the nerds, It says (in what made Lisp different section):

The whole language there all the time. There is no real distinction between read-time, compile-time, and runtime. You can compile or run code while reading, read or run code while compiling, and read or compile code at runtime.

Running code at read-time lets users reprogram Lisp's syntax; running code at compile-time is the basis of macros; compiling at runtime is the basis of Lisp's use as an extension language in programs like Emacs; and reading at runtime enables programs to communicate using s-expressions, an idea recently reinvented as XML.

In order to understand this sentence, I draw a statechart diagram:

read/compile/runtime in Lisp

I have two questions:

  1. how to understand to read at runtime enable programming to communicate using s-expression, an idea reinvented as XML
  2. what can we do when compiling at read time or reading at compile time?
2 Answers
Related