Un poco curioso para entender el árbol de expresiones en .NET

He leído varios artículos y variosstackoverflow.com mensajes sobre el árbol de expresión. Está latiendo mi cerebro para entender.

Preguntas:

1) Al igual que DOM (Document Object Model), ¿es una representación de lógica en memoria?

2) Alguien explicó que es un mecanismo para traducir un código ejecutable en datos, al usarlo podemos producir una estructura de datos que representa el código.

¿Significa que los árboles de expresión se utilizan para diseñar un patrón definido por el usuario?

3) La mayoría de los ejemplos muestran el árbol de expresiones en conjunto conFunc<> delegado u otros delegados, por lo tanto, usar delegado y otra estructura de programación no podemos lograr lo mismo que sirve el árbol de expresiones.

La explicación comprensible para los principiantes es muy apreciada.

Respuestas a la pregunta(5)

Su respuesta a la pregunta