|
|
|
|
|
by jlouis
167 days ago
|
|
It's not that they can't. It's that it's a waste of time in most cases. Compilers are moving targets because hardware changes. There's a considerable maintenance upkeep in a compiler. So if you are interested in programming language semantics, you can opt to skip the compiler part. This lets you iterate language designs without the added baggage of translating said program to machine code. You can also argue there's no need. If you present your programming language in operational semantics, then it's trivial to write that up as a prolog program and run it on a prolog interpreter. Then you can employ a partial evaluator, and the first Futamura-projection gives you a compiler. You can choose to host your prolog program in a programming language which already has access to a partial evaluator, and you are essentially done before you even started. |
|
[1] - https://static.aminer.org/pdf/PDF/001/006/665/partial_evalua...