[m-dev.] for review: announce purity and update papers.

Tyson Dowd trd at cs.mu.OZ.AU
Thu Apr 6 15:22:05 AEST 2000


===================================================================


Estimated hours taken: 0.75

Add two new papers to the web page.

information/include/papers.inc:
information/papers/purity.ps.gz:
information/papers/update.ps.gz:
	The papers and their abstract.
	(Note that the postscript files have been generated with title
	notes stating they are not final versions and to refer to the
	web page for a more up-to-date version).

news/newsdb.inc:
	Announce these pages on the main site.


Index: information/include/papers.inc
===================================================================
RCS file: /home/mercury1/repository/w3/information/include/papers.inc,v
retrieving revision 1.17
diff -u -r1.17 papers.inc
--- information/include/papers.inc	2000/02/22 02:46:23	1.17
+++ information/include/papers.inc	2000/04/06 05:14:32
@@ -14,6 +14,61 @@
 <h2>Papers on Mercury</h2>
 
 <ul>
+
+<li>
+<strong>
+State update transformation
+</strong>
+<br>
+Peter Ross and Zoltan Somogyi
+<br>
+<em>
+</em>
+<a href="papers/update.ps.gz">Available here (57K)</a>.
+<p>
+Recursive predicates frequently generate some state
+which is updated after the recursive call.
+We present a source to source transformation
+which can move the state update before to the recursive call,
+thus helping to make the predicate tail recursive,
+and report on its implementation in the Mercury compiler.
+<p>
+
+
+
+<li>
+<strong>
+Using impurity to create declarative interfaces in Mercury
+</strong>
+<br>
+Tyson Dowd, Peter Schachte, Fergus Henderson and Zoltan Somogyi
+<br>
+<em>
+</em>
+<a href="papers/purity.ps.gz">Available here (52K)</a>.
+<p>
+The logic/functional language Mercury
+allows the programmer to annotate predicates and
+functions to mark impure predicates, allowing
+impure code to be safely integrated into a
+declarative language.
+
+By using purity declarations with the foreign language
+interface, programmers can take advantage of many of the
+features of a high level programming language while
+writing imperative code to interface with existing
+imperative libraries.
+
+This paper outlines the purity system in Mercury and
+how it affects operational semantics,
+compares this purity system with other approaches to declaring
+impurity in a pure language,
+and gives an extended example of how impurity and foreign language
+interfaces can work together to simplify the chore of writing
+declarative interfaces to libraries.
+<p>
+
+
 <li>
 <strong>
 Towards memory reuse for Mercury
Index: information/papers/purity.ps.gz
===================================================================
RCS file: purity.ps.gz
diff -N purity.ps.gz
Binary files /dev/null and purity.ps.gz differ
Index: information/papers/update.ps.gz
===================================================================
RCS file: update.ps.gz
diff -N update.ps.gz
Binary files /dev/null and update.ps.gz differ
Index: news/newsdb.inc
===================================================================
RCS file: /home/mercury1/repository/w3/news/newsdb.inc,v
retrieving revision 1.44
diff -u -r1.44 newsdb.inc
--- news/newsdb.inc	2000/02/22 01:39:45	1.44
+++ news/newsdb.inc	2000/04/05 06:52:58
@@ -21,6 +21,16 @@
 
 $newsdb = array(
 
+"5 Apr 2000" => array("More new papers",
+
+"Another two papers on Mercury are now available from our
+<A HREF=\"information/papers.html\">papers page</A>.
+One describes using purity declarations for building foreign language
+interfaces, while the other details the update transformation, an
+optimization that can help re-order state updates into better positions
+for other optimizations."
+),
+
 "21 Feb 2000" => array("New papers",
 
 "Two new papers on Mercury are now available from our


-- 
       Tyson Dowd           # 
                            #  Surreal humour isn't everyone's cup of fur.
     trd at cs.mu.oz.au        # 
http://www.cs.mu.oz.au/~trd #
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list