From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: by yquem.inria.fr (Postfix, from userid 18180) id EA0E5BC32; Tue, 8 Mar 2005 21:13:06 +0100 (CET) Date: Tue, 8 Mar 2005 21:13:06 +0100 From: Xavier Leroy To: Eijiro Sumii Cc: caml-list@yquem.inria.fr Subject: Re: [Caml-list] MinCaml English Documentation Message-ID: <20050308201306.GA22938@yquem.inria.fr> References: <200503050832.42927.jon@jdh30.plus.com> <20050305.093742.46637291.eijiro_sumii@anet.ne.jp> <200503070020.53784.jon@jdh30.plus.com> <20050307.220107.85397271.eijiro_sumii@anet.ne.jp> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050307.220107.85397271.eijiro_sumii@anet.ne.jp> User-Agent: Mutt/1.3.28i X-Spam: no; 0.00; caml-list:01 trade-offs:01 compilation:01 luc:01 maranget:01 ocaml:01 compiler:01 xleroy:01 algorithm:01 caml:02 functional:02 chapter:02 languages:03 programming:03 pattern:03 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED autolearn=disabled version=3.0.2 X-Spam-Level: > In fact, I'm looking for a good (as simple and efficient as > possible) algorithm of pattern matching. Any suggestions, anyone? There are hard trade-offs between simplicity, execution speed and size of generated code. However, the compilation scheme I used in Caml Light is a reasonable starting point. It was inspired by Phil Wadler's chapter in Simon Peyton Jones's book "The implementation of functional programming languages" (out of print, but a scanned version is available from SPJ's Web page), and described in details in the "ZINC report", http://pauillac.inria.fr/~xleroy/publi/ZINC.ps.gz Luc Maranget has some papers describing much more sophisticated approaches used in the OCaml compiler, if you find so inclined. - Xavier Leroy