<div dir="ltr">Regarding (1), as far as I'm aware, the requirements are flexible, but the general requirement<div>is "published a paper at a good venue, either journal or conference". This implementation<br></div><div>was a hobby project of mine, but I was hoping to be able to justify spending more time on it</div><div>by finding a venue to publish it at.</div><div><br></div><div>As for (2), it's mostly expository. The techniques that I am interesting in showing off have no</div><div>known "simple" implementations as far as I'm aware -- scalar evolution, polyhedral</div><div>compilation, some kinds of inter-procedural analyses, SSA, etc. do not have simple </div><div>implementations. Indeed, the goal is to show how to write <i>optmising</i> compilers. Most</div><div>compilers books teach one how to write <i>a compiler, </i>while there's a second course usually on</div><div>compiler optimisation. I don't know of readable, clean implementations of, say, the SSA</div><div>construction algorithm, or the scalar evolution analysis. </div><div><br></div><div>Regarding nanopass: I think it makes a lot of sense as a philosophy as a way to architect</div><div>compilers. However, there are a lot of nice haskell-isms to write compilers which are </div><div>scattered throughout the literature, as far as I can tell: Hoopl, trees that grow, much of</div><div>Matt might's work on abstracting abstract interpreters, Scrap-your-boilerplate style techniques,</div><div>equality saturation, etc. which are all fantastic, but I've never seen them under the</div><div>same umbrella.</div><div><br></div><div>So that's a sketch of the general story I want to tell :)</div><div><br></div><div>Thanks.</div><div>~Siddharth <br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Dec 25, 2018 at 7:30 PM Richard O'Keefe <<a href="mailto:raoknz@gmail.com">raoknz@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace"><br></div></div><div class="gmail_quote"><div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">Question 1: what does your department require? The first person to consult</div><div class="gmail_default" style="font-family:monospace,monospace">is your supervisor. Helping students figure out where to publish is definitely</div><div class="gmail_default" style="font-family:monospace,monospace">part of a supervisor's job (speaking as a former supervisor of PhD students).</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">Question 2: what is the TOPIC of your publication? Since you are merely (!)</div><div class="gmail_default" style="font-family:monospace,monospace">demonstrating known techniques on a toy language, does it really count as</div><div class="gmail_default" style="font-family:monospace,monospace">work on compilers? Is it software engineering? Is it computer science</div><div class="gmail_default" style="font-family:monospace,monospace">education? Is the aim to develop something more maintainable? What is the</div><div class="gmail_default" style="font-family:monospace,monospace">quality metric by which your work should be judged?</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">Observation: if you haven't already read the "Nanopass" paper,</div><div class="gmail_default" style="font-family:monospace,monospace"><a href="https://www.cs.indiana.edu/~dyb/pubs/nano-jfp.pdf" target="_blank">https://www.cs.indiana.edu/~dyb/pubs/nano-jfp.pdf</a> ,</div><div class="gmail_default" style="font-family:monospace,monospace">you should do so now. <a href="http://nanopass.org/" target="_blank">http://nanopass.org/</a> is the associated web site.</div><div class="gmail_default" style="font-family:monospace,monospace">There is also a mailing list,</div><div class="gmail_default" style="font-family:monospace,monospace"><span style="color:rgb(0,92,197);font-family:SFMono-Regular,Consolas,"Liberation Mono",Menlo,Courier,monospace;font-size:12px;white-space:pre-wrap"><a href="https://groups.google.com/forum/#!forum/nanopass-framework" target="_blank">https://groups.google.com/forum/#!forum/nanopass-framework</a></span></div><div class="gmail_default" style="font-family:monospace,monospace">I think your aims are sufficiently close to theirs for you to have</div><div class="gmail_default" style="font-family:monospace,monospace">interesting things to say to each other, despite you using Haskell and</div><div class="gmail_default" style="font-family:monospace,monospace">them having used Scheme.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><br></div></div></div></div></div>
</blockquote></div>