Why value-types are stored onto Stacks?

Eric Lippert discusses this here; firstly, it is incorrect that “value types are stored on the stack”. They sometimes are, but not as: fields on a class captured variables variables in an iterator block When they can be stored on the stack it is a convenient way of modelling their lifetime, but it isn’t required … Read more

Creating your own language

Closely related questions (all taken by searching on [compiler] on stackoverflow): Learning Resources on Parsers, Interpreters, and Compilers Learning to write a compiler Constructing a simple interpreter … And similar topics (from the same search): Bootstrapping a language How much of the compiler should we know? Writing a compiler in its own language … Edit: … Read more

Mathematica: Unevaluated vs Defer vs Hold vs HoldForm vs HoldAllComplete vs etc etc

These are pretty tricky constructs, and it’s tough to give clear explanations; they aren’t as straightforward as Lisp macros (or, for that matter, the relationship between Lisp’s QUOTE and EVAL). However, there’s a good, lengthy discussion available in the form of notes from Robby Villegas’s 1999 talk “Unevaluated Expressions” on Wolfram’s website. Defer is omitted … Read more