Re: compilation

From: Franck Cassez (Franck.Cassez@kelenn-gw.univ-brest.fr)
Date: Wed Feb 19 1997 - 09:12:53 MET


Date: Wed, 19 Feb 1997 09:12:53 +0100 (MET)
From: Franck.Cassez@kelenn-gw.univ-brest.fr (Franck Cassez)
Message-Id: <199702190812.JAA26519@kelenn-gw.univ-brest.fr>
To: Jean-Christophe.Filliatre@ens-lyon.fr
Subject: Re: compilation

Bonjour Jean-Christophe,

        concernant les evaluations a la compilation,
j'avais pose une question similaire a Pierre Weis
l'annee derniere (mon but etait
d'``accelerer'' un programme): je pense que l'exemple suivant
peut t'interesser.

A+

Franck.

- Franck.Cassez@univ-brest.fr - Departement d'Informatique -
-- Universite de Bretagne Occidentale 6, Avenue Le Gorgeu --
---- BP 809 ---- 29285 Brest Cedex ---- FRANCE ----
-- tel: (+33) 02 98 01 69 59 -- fax: (+33) 02 98 01 69 56 --

dixit Pierre :
Je m'explique soit la fonction f:

let f a x = if a then (x + 1) else (x - 1);;

alors f true est la fonction x -> if true then (x + 1) else (x - 1) et non
pas la fonction x -> x + 1

On obtient une petite acce'le'ration en e'crivant:

let f a = if a then (fun x -> x + 1) else (fun x -> x - 1);;

car alors f true est (fun x -> x + 1). Cependant cette propagation des
constantes par le compilateur du (me'ta)-langage n'est pas de bonne
me'thodologie (elle n'est pas efficace). Pour beaucoup gagner il faut
re'aliser un ve'ritable compilateur qui analyse les programmes sources
du langage a` compiler et les optimise lui-me^me.



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:09 MET