[m-dev.] would like some help getting acquainted with the compiler

Paul Bone paul at bone.id.au
Fri Jun 21 19:02:24 AEST 2013

On Fri, Jun 21, 2013 at 04:26:22PM +1000, Julien Fischer wrote:
> Hi,
> On Fri, 14 Jun 2013, Christopher Perez wrote:
>> I took some interest in logical programming after an AI course
>> introduced me to lisp, which helped me discover other programming
>> paradigms. I've since then picked up Scala and Prolog, but have been
>> disappointed to see lack of support for Mercury. Instead of simply
>> using Mercury though, I would like to learn how it ticks. If anyone
>> would like to help me get started, even naming some good math books as
>> preliminaries, my email is Christopher.Perez100 at gmail.com
>> My goal is to advance the theory of logical programming (which I find
>> beautiful), help others settle into the language as well, and also
>> create a Mercury to Verilog compiler.
> The overall structure of the Mercury compiler itself (i.e the contents of the
> compiler directory) are described in the file: compiler/notes/compiler_design.html.
> (<https://github.com/Mercury-Language/mercury/blob/master/compiler/notes/compiler_design.html>)
> Since that file is regularly updated, there's no point me repeating its
> contents in this mail.

I generally suggest that new contributes start by reading the hlds_goal and
hlds_info structures, and understand them.  Then understand the difference
between predicates and procedures (the latter is a predicate compiled for a
given mode).  Then the 'stages' of the compiler.   After that, study is
usually directed based on what ever the new contributor wants to work on.

Paul Bone

More information about the developers mailing list