[m-rev.] diff: DJ's and Tom's theses

Zoltan Somogyi zs at cs.mu.OZ.AU
Fri Aug 16 16:37:26 AEST 2002


news/newsdb.inc:
information/include/papers.inc:
	Add two theses: DJ's and Tom's.

	Be consistent in the formatting of entries in the list of papers.

information/papers/dgj-thesis-final.ps.gz
information/papers/conway-thesis.ps.gz:
	The two theses.

Zoltan.

cvs diff: Diffing .
cvs diff: Diffing bin
cvs diff: Diffing contact
cvs diff: Diffing contact/include
cvs diff: Diffing download
cvs diff: Diffing download/include
cvs diff: Diffing download/patches
cvs diff: Diffing htdig
cvs diff: Diffing htdig/include
cvs diff: Diffing images
cvs diff: Diffing include
cvs diff: Diffing information
cvs diff: Diffing information/bench
cvs diff: Diffing information/deep_demo
cvs diff: Diffing information/developers
cvs diff: Diffing information/dotnet
cvs diff: Diffing information/events
cvs diff: Diffing information/events/images
cvs diff: Diffing information/include
Index: information/include/papers.inc
===================================================================
RCS file: /home/mercury1/repository/w3/information/include/papers.inc,v
retrieving revision 1.30
diff -u -b -r1.30 papers.inc
--- information/include/papers.inc	2002/07/16 05:03:57	1.30
+++ information/include/papers.inc	2002/08/16 05:20:45
@@ -17,9 +17,140 @@
 
 <li>
 <strong>
-Constraint-Based mode analysis of Mercury
+Towards parallel Mercury
 </strong>
 <br>
+Thomas Conway.
+<br>
+<em>
+Ph.D. thesis,
+</em>
+July 2002,
+Department of Computer Science and Software Engineering,
+The University of Melbourne,
+<a href = "papers/conway-thesis.ps.gz">
+Available here (562K).
+</a>
+<p>
+This thesis presents the foundations for extending the implementation
+of the declarative logic programming language Mercury
+to support the parallel execution of programs.
+<p>
+The new material in this thesis is in three parts.
+The first part
+presents an extension to the existing (sequential) execution model for Mercury
+that allows programs to be executed in parallel.
+Programmers can exploit this extension simply
+by replacing some sequential conjunction operators
+connecting independent goals with a new parallel conjunction operator.
+Such changes do not change the declarative semantics of the program,
+but can improve performance.
+<p>
+The second part of the new material presents a model
+for explicit threading in Mercury,
+which is useful when the programmer's goal is not efficiency
+but the explicit representation of concurrent tasks
+and control of their interactions.
+We show how our extended execution model
+supports the usual operations on threads.
+We also present a new interpretation for Mercury's system for input and output
+that provides an intuitive understanding of the interactions
+between the I/O operations executed by the different threads of a program
+or by different programs.
+<p>
+The final part of the new material presented in this thesis
+presents a new technique for obtaining
+a detailed and accurate picture of the performance of a program.
+The basis of our technique is
+associating a complete context with each measurement,
+rather than approximating the context as conventional profilers do.
+In order to make our new profiling system feasible
+we have had to develop sophisticated techniques
+for reducing the cost of recording complete contexts;
+in order to make its output tractable,
+we also had to develop techniques for dealing with
+interactions between higher order constructs and recursion.
+We have also developed a tool for helping programmers
+(and eventually compilers) to digest the large volume of data
+generated by our profiling technique.
+<p>
+All the ideas presented in this thesis have been implemented in
+the Melbourne Mercury compiler.
+<p>
+
+<li>
+<strong>
+Expressive type systems for logic programming languages
+</strong>
+<br>
+David Jeffery.
+<br>
+<em>
+Ph.D. thesis,
+</em>
+February 2002,
+Department of Computer Science and Software Engineering,
+The University of Melbourne,
+<a href = "papers/dgj-thesis-final.ps.gz">
+Available here (370K).
+</a>
+<p>
+The aim of this thesis is the design of a type system
+for an industrial strength logic programming language.
+The type system we describe has been implemented
+for the Mercury programming language, in the Melbourne Mercury compiler.
+<p>
+We begin by presenting a simple higher order extension
+of the Mycroft-O'Keefe type system.
+We then use this type system as a basis for two significant extensions.
+<p>
+The first extension is the adoption of a type class system similar to that
+found in some modern functional languages
+in the context of higher order logic programming.
+We give a set of typing rules which
+both provide a formal definition of type correctness
+and define the source-to-source transformation we have used
+to implement type classes.
+This transformation is simple and effective,
+and can be easily shown to preserve Mercury's
+mode, determinism and uniqueness correctness properties.
+<p>
+The second extension is to allow existentially quantified type variables
+in the types of function symbols and of predicates.
+This represents the most significant contribution of this thesis.
+We then formally define the type system that results from the combination
+of both type classes and existential quantification of type variables.
+The two type system extensions are quite orthogonal.
+As a result, the definition of type correctness in the combined system
+is a fairly simple combination of the definitions for the individual systems.
+However, the mechanisms contributed by the two systems combine synergistically;
+the resulting type system is extremely expressive.
+<p>
+We then show how the type system we have designed allows the programmer
+to take advantage of many object oriented esign techniques.
+We give an in depth analysis of object oriented design
+and isolate the mechanisms which are likely to result
+in reusable and maintainable software systems.
+We show that our type system allows the programmer
+to directly express these kinds of designs
+and discourages the use of the kinds of object oriented designs
+which reduce maintainability
+by introducing unnecessary implementation dependencies.
+<p>
+We show that these principles apply in a direct and simple manner
+to the modelling of component interfaces
+as supported by modern component frameworks such as CORBA.
+We present MCORBA, an implementation of a CORBA binding for Mercury.
+This interface is bi-directional,
+allowing the programmer to write CORBA components in Mercury
+and to use existing CORBA components from within Mercury programs.
+<p>
+
+<li>
+<strong>
+Constraint-based mode analysis of Mercury
+</strong>
+<br>
 David Overton, Zoltan Somogyi and Peter Stuckey
 <br>
 <em>
@@ -439,7 +570,7 @@
 
 <li>
 <strong>
-Binding-Time Analysis for Mercury
+Binding-time analysis for Mercury
 </strong>
 <br>
 Wim Vanhoof and Maurice Bruynooghe
@@ -613,7 +744,7 @@
 
 <li>
 <strong>
-Type classes in Mercury.
+Type classes in Mercury
 </strong>
 <br>
 David Jeffery, Fergus Henderson and Zoltan Somogyi.
@@ -640,7 +771,7 @@
 
 <li>
 <strong>
-Termination analysis for Mercury.
+Termination analysis for Mercury
 </strong>
 <br>
 Chris Speirs, Zoltan Somogyi and Harald Sondergaard.
@@ -670,7 +801,7 @@
 
 <li>
 <strong>
-Status of the Mercury system.
+Status of the Mercury system
 </strong>
 <br>
 Zoltan Somogyi, Fergus Henderson, Thomas Conway, Andrew Bromage,
@@ -687,7 +818,7 @@
 <li>
 <strong>
 The execution algorithm of Mercury:
-an efficient purely declarative logic programming language.
+an efficient purely declarative logic programming language
 </strong>
 <br>
 Zoltan Somogyi, Fergus Henderson and Thomas Conway.
@@ -715,7 +846,7 @@
 
 <li>
 <strong>
-Determinism analysis in the Mercury compiler.
+Determinism analysis in the Mercury compiler
 </strong>
 <br>
 Fergus Henderson, Zoltan Somogyi and Thomas Conway.
@@ -736,7 +867,7 @@
 
 <li>
 <strong>
-Code generation for Mercury.
+Code generation for Mercury
 </strong>
 <br>
 Thomas Conway, Fergus Henderson, and Zoltan Somogyi.
@@ -778,7 +909,7 @@
 
 <li>
 <strong>
-Mercury: an efficient purely declarative logic programming language.
+Mercury: an efficient purely declarative logic programming language
 </strong>
 <br>
 Zoltan Somogyi, Fergus Henderson and Thomas Conway.
@@ -796,7 +927,7 @@
 <li>
 <strong>
 The implementation of Mercury:
-an efficient purely declarative logic programming language.
+an efficient purely declarative logic programming language
 </strong>
 <br>
 Zoltan Somogyi, Fergus Henderson and Thomas Conway.
@@ -815,7 +946,7 @@
 
 <li>
 <strong>
-Code generation for Mercury.
+Code generation for Mercury
 </strong>
 <br>
 Thomas Conway.
@@ -847,7 +978,7 @@
 <ul>
 <li>
 <strong>
-Termination Analysis for Logic Programs
+Termination analysis for logic programs
 </strong>
 <br>
 Chris Speirs.
@@ -870,7 +1001,7 @@
 <ul>
 <li>
 <strong>
-Logic programming for the real world.
+Logic programming for the real world
 </strong>
 <br>
 Zoltan Somogyi, Fergus Henderson, Thomas Conway and Richard O'Keefe.
@@ -895,7 +1026,7 @@
 
 <li>
 <strong>
-A system of precise modes for logic programs.
+A system of precise modes for logic programs
 </strong>
 <br>
 Zoltan Somogyi.
@@ -945,7 +1076,7 @@
 
 <li>
 <strong>
-Database transactions in a purely declarative logic programming language.
+Database transactions in a purely declarative logic programming language
 </strong>
 <br>
 David B. Kemp, Thomas Conway, Evan Harris, Fergus Henderson,
@@ -974,7 +1105,7 @@
 <li>
 <strong>
 Right-, left-, and multi-linear rule transformations that maintain
-context information.
+context information
 </strong>
 <br>
 David B. Kemp and Kotagiri Ramamohanarao and Zoltan Somogyi. 
@@ -1008,7 +1139,7 @@
 
 <li>
 <strong>
-Termination analysis for Mercury.
+Termination analysis for Mercury
 </strong>
 <br>
 Chris Speirs, Zoltan Somogyi and Harald Sondergaard.
@@ -1024,7 +1155,7 @@
 
 <li>
 <strong>
-Unification in Mercury.
+Unification in Mercury
 </strong>
 <br>
 Zoltan Somogyi.
@@ -1040,7 +1171,7 @@
 
 <li>
 <strong>
-The design and implementation of Mercury.
+The design and implementation of Mercury
 </strong>
 <br>
 Zoltan Somogyi and Fergus Henderson.
@@ -1057,7 +1188,7 @@
 
 <li>
 <strong>
-Status of the Mercury system.
+Status of the Mercury system
 </strong>
 <br>
 Zoltan Somogyi, Fergus Henderson, Thomas Conway, Andrew Bromage,
@@ -1076,7 +1207,7 @@
 <li>
 <strong>
 Mercury:
-an efficient purely declarative logic programming language.
+an efficient purely declarative logic programming language
 </strong>
 <br>
 Zoltan Somogyi, Fergus Henderson and Thomas Conway.
@@ -1093,8 +1224,8 @@
 <li>
 <strong>
 Lecture notes for the expanded Mercury segment of the subject
-433-257 Frontiers of Computer Science, given in 1999.
-(Whereas the segment in 1997 had four lectures, in 1999 it had six.)
+433-257 Frontiers of Computer Science, given in 1999
+(whereas the segment in 1997 had four lectures, in 1999 it had six)
 </strong>
 <br>
 Zoltan Somogyi.
@@ -1107,7 +1238,7 @@
 <li>
 <strong>
 Lecture notes for the Mercury segment of the subject
-433-257 Frontiers of Computer Science, given in 1997.
+433-257 Frontiers of Computer Science, given in 1997
 </strong>
 <br>
 Zoltan Somogyi.
@@ -1120,7 +1251,7 @@
 <li>
 <strong>
 Lecture notes for the Mercury segment of the subject
-433-247 Frontiers of Computer Science, given in 1995.
+433-247 Frontiers of Computer Science, given in 1995
 </strong>
 <br>
 Zoltan Somogyi.
cvs diff: Diffing information/papers
Index: information/papers/dgj-thesis-final.ps.gz
===================================================================
RCS file: dgj-thesis-final.ps.gz
diff -N dgj-thesis-final.ps.gz
Binary files /dev/null and dgj-thesis-final.ps.gz differ
cvs diff: Diffing information/reports
cvs diff: Diffing mailing-lists
cvs diff: Diffing mailing-lists/include
cvs diff: Diffing mailing-lists/mercury-ads
cvs diff: Diffing mailing-lists/mercury-ads/include
cvs diff: Diffing mailing-lists/mercury-developers
cvs diff: Diffing mailing-lists/mercury-developers/include
cvs diff: Diffing mailing-lists/mercury-reviews
cvs diff: Diffing mailing-lists/mercury-reviews/include
cvs diff: Diffing mailing-lists/mercury-users
cvs diff: Diffing mailing-lists/mercury-users/include
cvs diff: Diffing news
Index: news/newsdb.inc
===================================================================
RCS file: /home/mercury1/repository/w3/news/newsdb.inc,v
retrieving revision 1.68
diff -u -b -r1.68 newsdb.inc
--- news/newsdb.inc	2002/07/17 12:09:52	1.68
+++ news/newsdb.inc	2002/07/18 05:35:24
@@ -21,6 +21,17 @@
 */
 
 $newsdb = array(
+"17 July 2001" => array("Two theses",
+
+"Two theses on Mercury are now available from our
+<A HREF=\"information/papers.html\">papers page</A>.
+They are:
+<em>Expressive type systems for logic programming languages</em>
+by David Jeffery, and
+<em>Towards parallel Mercury</em>
+by Thomas Conway.
+),
+
 "15 July 2001" => array("Three papers",
 
 "Three papers on Mercury are now available from our
cvs diff: Diffing tutorial
cvs diff: Diffing tutorial/src
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list