Bit Curioso para entender a Árvore de Expressões no .NET

Eu li vários artigos e váriosstackoverflow.com posts sobre a árvore de expressão. Está batendo meu cérebro para entender.

Questões:

1) Como o DOM (Document Object Model), é uma representação na memória da lógica?

2) Alguém explicou que é um mecanismo para traduzir um código executável em dados, usando-o podemos produzir uma estrutura de dados representando o código.

Isso significa que árvores de expressão são usadas para projetar um padrão definido pelo usuário?

3) A maioria dos exemplos mostra a árvore Expression em conjunto comFunc<> delegado ou outros delegados. Por isso, usando delegação e outras construções de programação, não podemos alcançar a mesma coisa que a árvore de expressão veicula.

A explicação compreensível para iniciantes é muito apreciada.

questionAnswers(5)

yourAnswerToTheQuestion