From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: * X-Spam-Status: No, score=1.0 required=5.0 tests=AWL,SPF_NEUTRAL autolearn=disabled version=3.1.3 Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 93964BC69 for ; Sun, 27 May 2007 13:49:09 +0200 (CEST) Received: from mu-out-0910.google.com (mu-out-0910.google.com [209.85.134.187]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id l4RBn9Ec003150 for ; Sun, 27 May 2007 13:49:09 +0200 Received: by mu-out-0910.google.com with SMTP id w9so926330mue for ; Sun, 27 May 2007 04:49:08 -0700 (PDT) DKIM-Signature: a=rsa-sha1; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:mime-version:content-transfer-encoding:message-id:content-type:to:from:subject:date:x-mailer; b=fiCJF0vThcLvYX8G/NzPg2fqdx0DSrz7nhryP6at1alNZbrLE222vDI6IntZ8RRZ605DSIrKm6dxyjVojAWsSeL5rZHBMeoHKYfcQBIhEGTJcmqkMkHtPRvBdMPRr0TrK4zi5c8miUj7dAf/xyF//Enee5cYrYFNc7Gl3gULnP4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:mime-version:content-transfer-encoding:message-id:content-type:to:from:subject:date:x-mailer; b=RQ6rUbGuy+ogGmtyBdzQsLQrtJQJ9byv+ePescTrr6auA95bDubzLPZj0b5sl9j/MOzMDBWCjjFr60oxnn6ILPxKKApE0wtHYI1WYK0HXbGiUMMbLkuXGgDtdEwUBcQ2m46gJM9naHkK4M5vlgnkFSxcP/w83vtTQtZtLUDNkP8= Received: by 10.82.187.16 with SMTP id k16mr8875876buf.1180266547653; Sun, 27 May 2007 04:49:07 -0700 (PDT) Received: from ?192.168.1.33? ( [81.33.157.182]) by mx.google.com with ESMTP id z34sm11074214ikz.2007.05.27.04.49.05; Sun, 27 May 2007 04:49:06 -0700 (PDT) Mime-Version: 1.0 (Apple Message framework v752.3) Content-Transfer-Encoding: 7bit Message-Id: <1C5553D8-49E6-4BFC-BF37-CF71BA5B6E47@gmail.com> Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed To: OCaml List From: Joel Reymont Subject: camlp4 vs SYB in Haskell Date: Sun, 27 May 2007 12:49:07 +0100 X-Mailer: Apple Mail (2.752.3) X-j-chkmail-Score: MSGID : 46597035.000 on concorde : j-chkmail score : XXXX : 5/20 2 0.000 -> 4 X-Miltered: at concorde with ID 46597035.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; camlp:01 haskell:01 compiler:01 haskell:01 camlp:01 ocaml:01 compiler:01 syb:98 scrap:98 syb:98 blog:98 token:01 semantic:02 typed:03 macro:03 Folks, I just posted a review of my experience developing a compiler from a trading language into C# [1]. One thing I compare is the Scrap Your Boilerplate approach in Haskell [2] vs fold generators in camlp4. I received the following comment in response: "Also, can you elaborate on the semantic consequences of using strongly typed SYB traversals on the Haskell side, versus macro/token stuff on the OCaml side? Aren't they wildly different techniques?" I'll be looking into what Nicolas does with the camlp4 generators but would also appreciate suggestions on how to properly answer this challenge. Thanks, Joel [1] http://wagerlabs.com/2007/5/26/who-let-the-dogs-out [2] http://www.cs.vu.nl/boilerplate/ -- http://topdog.cc/ - EL to C# compiler http://wagerlabs.com/ - blog