[Haskell-cafe] static analysis of a C-like language

Carter Schonwald carter.schonwald at gmail.com
Thu Nov 29 14:31:15 UTC 2018


Most parser libraries in Haskell provide facilities for including source
information.

And then you include in your syntax tree extra fields for those positions.

Simple as that


The paper :
http://david.darais.com/assets/papers/abstracting-definitional-interpreters/adi.pdf
Is a great reference for how to add a bunch of program analysis features
after you have a working interpreter .  Also it’s citations show a bunch of
ways you can Add different flavored of anayses

On Mon, Nov 26, 2018 at 3:37 PM Olaf Klinke <olf at aatal-apotheke.de> wrote:

> > Hello Olaf,
> >
> > to me that sounds as if you want to do an abstract interpretation with a
> > forward collecting semantics that employs non-relational abstract
> > domains for the primitive data types and summarizes the dimensions of
> > arrays.
> ...
> > I would start by writing a simple interpreter for the language to be
> > analyzed. That way you fix messy details before they bite you, e.g. the
> > order in which submodules are loaded and initialized.
>
> I was hoping not having to write an interpreter (because the language
> author wrote a translation to C++ already), but if that is the way to go,
> I'll do it. As I understand it, the Haskell semantics should contain just
> enough substance so that the errors I am after will cause hiccups in the
> Haskell compiler? That is indeed a compelling approach.
> What this does not address is the question about error reporting:  How
> could a translation to Haskell preserve information about scope, source
> position and masking? Can I leverage the ghc API for that?
>
> Regards,
> Olaf
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20181129/c24668a7/attachment.html>


More information about the Haskell-Cafe mailing list