So, You Want To Write Your Own Programming Language?

Walter Bright newshound2 at digitalmars.com
Wed Jan 22 10:49:41 PST 2014


On 1/22/2014 4:53 AM, Don wrote:
> On Wednesday, 22 January 2014 at 04:29:05 UTC, Walter Bright wrote:
>> http://www.reddit.com/r/programming/comments/1vtm2l/so_you_want_to_write_your_own_language_dr_dobbs/
>>
>
> Great article. I was surprised that you mentioned lowering positively, though.
>
> I think from DMD we have enough experience to say that although lowering sounds
> good, it's generally a bad idea. It gives you a mostly-working prototype very
> quickly, but you pay a heavy price for it. It destroys valuable semantic
> information. You end up with poor quality error messages, and
> counter-intuitively, you can end up with _more_ special cases (eg, lowering
> ref-foreach in DMD means ref local variables can spread everywhere). And it
> reduces possibilities for the optimizer.
>
> In DMD, lowering has caused *major* problems with AAs, foreach. and
> builtin-functions, and some of the transformations that the inliner makes. It's
> also caused problems with postincrement and exponentation. Probably there are
> other examples.
>
> It seems to me that what does make sense is to perform lowering as the final
> step before passing the code to the backend. If you do it too early, you're
> shooting yourself in the foot.

On the other hand, the lowering of loops to for uncovered numerous bugs, and the 
lowering of scope to try-finally made it actually implementable and fairly bug-free.


More information about the Digitalmars-d-announce mailing list