[racket] structural program comparison tool in Racket

From: Yin Wang (yinwang0 at gmail.com)
Date: Thu Sep 13 20:16:08 EDT 2012

Hi folks,

For a non-technical problem, I'm afraid that I have to replace the
earlier Emacs Lisp example with other ones:

Scheme:
   http://www.cs.indiana.edu/~yw21/demos/mk-mk-c.html

C++:
   http://www.cs.indiana.edu/~yw21/demos/d8-3404-d8-8424.html

Thanks to Neil Van Dyke for noticing this problem.


-- Yin


On Fri, Sep 14, 2012 at 4:34 AM, Yin Wang <yinwang0 at gmail.com> wrote:
> Hello,
>
> I'm developing a tool for "diffing" program by parse trees and not
> text. It is written in Racket and can process Lisp family languages,
> C++, JavaScript and Python. It has a JavaScript based interactive UI
> for browsing the diff results.
>
> You can find a demo of it (diffing two Emacs Lisp programs) here:
>
> http://www.cs.indiana.edu/~yw21/demos/paredit20-paredit22.html
>
> (Try scrolling down the program, and click on the code in white boxes.)
>
>
> If you are interested in trying it out on Racket programs, please
> check it out from GitHub:
>
> https://github.com/yinwang0/ydiff
>
>
> An introductory article can be found on my blog:
>
> http://yinwang0.wordpress.com/2012/01/03/ydiff
>
>
> It is still in pretty early stage so probably only the Lisp part is
> robust enough for daily use. I'm proceeding to design a "unified
> interchange format" for ASTs. The motivation is that compiler writers
> for various languages can output this format, so that this kind of
> structural diff can be extended to new languages quickly.
>
> I would be happy to get feedback and suggestions about it so that I
> can work to improve it. If you would like volunteer adding support for
> more languages, please let me know.
>
> Thanks.
>
>
> -- Yin

Posted on the users mailing list.