From: | George Neuner <gneuner2@comcast.net> |
Newsgroups: | comp.compilers |
Date: | Tue, 21 Jan 2025 19:54:45 -0500 |
Organization: | Compilers Central |
References: | 25-01-004 25-01-010 25-01-012 |
Injection-Info: | gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="5133"; mail-complaints-to="abuse@iecc.com" |
Keywords: | courses |
Posted-Date: | 23 Jan 2025 14:39:45 EST |
On Mon, 20 Jan 2025 08:38:42 -0300, Salvador Mirzo
<smirzo@antartida.xyz> wrote:
>antispam@fricas.org writes:
>
>> John R Levine <johnl@taugh.com> wrote:
>>> The authors developed a compiler for a toy language targeting Raspberry Pi
>>> using lex and yacc. Nothing very new but it shows how you build a
>>> compiler incremntally expanding the source language.
>>>
>>> https://arxiv.org/abs/2501.04503
>>
>> I am affraid that the best use of this paper is to forget it.
>> On one hand presentation is very naive and their "final"
>> compiler apparently does not handle things handled in ususal toy
>> compilers. On the other hand their presentation has a lot of
>> gaps and mistakes, so that a newbie is unlikely to be able to
>> follow them.
>
>Would you recommend an equivalent paper or book that addresses these
>short-comings but maintains the educational spirit of the paper? (It's
>okay if the architecture is not a popular one.)
>[Good question. There's the old Let's Build a Compiler which you can find
>on my web site and some books. Alan Holub wrote a well known book but the
>code in the book is incredibly buggy so I wouldn't recommend it. -John]
The Racket lanaguage (which is a Scheme variant) has a framework
called nanopass designed deliberately for teaching compilers.
https://docs.racket-lang.org/nanopass/index.html
I don't have URLs for papers (sorry!), but over the years, some groups
have written about using nanopass in compiler courses.
If Scheme(-like) is not to your liking, the ideas of nanopass have
been adopted and implemented in some other languages. Search engines
are your friend.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.