[Haskell] Last call for papers: RULE-BASED PROGRAMMING 2006

2006-05-02 Thread Ralf Lammel

RULE'06, 7th International Workshop on Rule-Based Programming, 11th August, 
2006, Seattle, USA, A Satellite Event of RTA 
http://www.dcs.kcl.ac.uk/events/RULE06/



IMPORTANT DATES 

- 14th May, 2006 Deadline for electronic submission of papers
- 15th June, 2006 Notification of acceptance of papers
- 30th June, 2006 Deadline for final versions of accepted papers
- 11th August, 2006 Workshop


INVITED SPEAKERS 

Joint RULE and WRS keynote speakers: 
- Dick Kieburtz, OHSU/OGI School of Science & Engineering 
- Claude Kirchner, INRIA and LORIA


RULE-BASED PROGRAMMING
 
The rule-based programming paradigm is characterized by the repeated, localized 
transformation of a data object such as a term, graph, proof, constraint store, 
etc. The transformations are described by rules which separate the description 
of the object to be replaced (the pattern) from the calculation of the 
replacement. Optionally, rules can have further conditions that restrict their 
applicability. The transformations are controlled by explicit or implicit 
strategies. 
The basic concepts of rule-based programming appear throughout computer 
science, from theoretical foundations to practical implementations. Term 
rewriting is used in semantics in order to describe the meaning of programming 
languages, as well as in the implementation of program transformation systems. 
Rules are used implicitly or explicitly to perform computations, e.g., in 
Mathematica, OBJ, ELAN, Maude or to perform deductions, e.g., by using 
inference rules to describe or implement a logic, theorem prover or constraint 
solver. Mail clients and mail servers use complex rules to help users 
organising their email and sorting out spam. Language implementations use 
bottom-up rewrite systems for code generation (as in the BURG family of tools.) 
Constraint-handling rules (CHRs) are used to specify and implement 
constraint-based algorithms and applications. Rule-based programming idioms 
also give rise to multi-paradigm languages like Claire.


TOPICS 

We solicit original papers on all topics of rule-based programming, including:
- Languages for rule-based programming 
  * Expressivity, Idioms, Design patterns 
  * Semantics, Type systems 
  * Implementation techniques 
  * System descriptions 
- Other foundations 
  * Complexity results 
  * Advances on rewriting logic 
  * Advances on rewriting calculus 
  * Static analyses of rule-based programs 
  * Transformation of rule-based programs 
- Applications of rule-based programming, e.g.: 
  * Program transformation 
  * Software analysis and generation 
  * System Control 
  * Work-flow control 
  * Knowledge engineering 
- Combination with other paradigms 
  * Functional programming 
  * Logic programming 
  * OO programming 
  * Language extensions 
  * Language embeddings 
- System descriptions 



SUBMISSIONS 

Papers (of at most 15 pages) should be submitted electronically via the 
web-based submission site. http://www.easychair.org/RULE2006/ 
Any problems with the submission procedure should be reported to one of the PC 
chairs:  Maribel Fernandez ([EMAIL PROTECTED]), Ralf Lämmel ([EMAIL PROTECTED])


 
PROCEEDINGS 

Accepted papers will be published in the preliminary proceedings volume, which 
will be available during the workshop. The final proceedings will be published 
in Electronic Notes in Theoretical Computer Science (ENTCS), Elsevier. 


PROGRAMME COMMITTEE 

- Mark van den Brand (TU Eindhoven, Netherlands)
- Horatiu Cirstea (LORIA, France) 
- Pierre Deransart (INRIA Rocquencourt, France) 
- Michael L. Collard (Kent State University, USA) 
- Martin Erwig (Oregon State University, USA) 
- Francois Fages (INRIA Rocquencourt, France) 
- Maribel Fernandez (Co-Chair, King's College London, UK) 
- Jean-Pierre Jouannaud (LIX, Ecole Polytechnique, France) 
- Oleg Kiselyov (FNMOC, USA) 
- Ralf Lämmel (Co-Chair, Microsoft, USA)
- Ugo Montanari (Universita di Pisa, Italy) 
- Pierre-Etienne Moreau (LORIA, France) 
- Tobias Nipkow (Technical University Munich, Germany) 
- Tom Schrijvers (K.U.Leuven, Belgium)
- Martin Sulzmann (National University of Singapore, Singapore)
- Victor Winter (University of Nebraska at Omaha, USA) 

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


Re: [Haskell] Optimizing locking with MVars

2006-05-02 Thread John Meacham
On Tue, May 02, 2006 at 12:15:20PM +0400, Bulat Ziganshin wrote:
> Second, i've developed my own simplified version of this procedure.
> Here i should say that my library uses "MVar ()" field to hold lock
> and separate immutable data field with actual data locked:
> 
> data WithLocking h = WithLocking h !(MVar ())

This reminds me, I wonder if we should have an MVar varient that is
_just_ for locking, it would have no separate take and put primitives,
just a withLock, enforcing the restriction that the thread that took the
lock is the same one that will return it.

this would allow standard priority inversion reduction techniques to be
used and could signifigantly mitigate the problem of accidentally
performing a long pure evaluation while holding a lock. when another
thread comes along that needs a lock, it will give its CPU time to the
thread holding it so it can finish up its long computation.

with MVars, you never know whether an MVar is being used for simple
locking or as an inter-thread communication mechanism.

John

-- 
John Meacham - ⑆repetae.net⑆john⑈
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] (GHC) Boot files and instance declarations

2006-05-02 Thread David House

Hi all. A quick bootfiles question.

The GHC docs specify not to put instance decls in bootfiles. However,
what if i need to? For example, say I have a module A where I'm
importing a module B with the {-# SOURCE #-} pragma. Module A needs to
know that the types in module B are instances of some typeclasses
(instance declarations for which are given in module B). How would I
manage this?

Thanks in advance.

--
-David House, [EMAIL PROTECTED], http://xmouse.ithium.net
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] (2nd CFP) Workshop on Logic-based Methods in Programming Environments

2006-05-02 Thread Wim Vanhoof

[Apologies for multiple postings]

---

 WLPE' 06 - 2nd CALL FOR PAPERS

Workshop on Logic-based Methods in
 Programming Environments

  (satellite workshop of ICLP’06)

  August 16, 2006
 Seattle (Washington), USA

http://lml.ls.fi.upm.es/~susana/Conferences/WLPE06/
---

Aim and Scope
-

The 16th Workshop on Logic-based methods in Programming Environments
will take place in Seattle (Washington), USA, as a satellite workshop
of ICLP'06, the 22th International Conference on Logic Programming.
This workshop will continue the series of successful international
workshops on logic programming environments held in Ohio, USA (1989),
Eilat, Israel (1990), Paris, France (1991), Washington, USA (1992),
Vancouver, Canada (1993), Santa Margherita Ligure, Italy (1994),
Portland, USA (1995), Leuven, Belgium and Port Jefferson, USA (1997),
Las Cruces, USA (1999), Paphos, Cyprus (2001), Copenhagen, Denmark
(2002), Mumbai, India (2003), Saint Malo, France (2004) and Sitges,
Spain (2005).

The workshop aims at providing an informal meeting for the researchers
working on logic-based tools for development and analysis of programs.
This year we want to emphasize two aspects: on one hand we want to
discuss the presentation, pragmatics and experiences of such tools; on
the other one, we want to shift the traditional focus on environment
tools for logic programming to logic-based environmental tools for
programming in general. Specific topic areas relevant to the workshop
include, but are not limited to:

* tools for debugging and testing
* tools for static and dynamic analysis
* systems for program verification and validation
* code generation from specifications
* termination and non-termination analyzers
* reasoners on occurs-check freeness and determinacy
* profilers and performance analyzers
* systems for types and modes analyzes
* module systems
* optimization tools.

In addition to papers describing more conceptual work on environmental
tools, we solicit papers describing the implementation of and
experimentation with such tools.

Submission guidelines
-

Length of papers can range from 2 to 17 pages, preferably in LNCS
format. Authors are requested to submit their paper using the
submission webpage at http://vampire.cs.man.ac.uk/WLPE-06/

Alternatively, authors can send a copy of their paper (in pdf or ps
format) to the workshop coordinator ([EMAIL PROTECTED]).

An informal proceedings will be published as a technical report of the
University of Namur and distributed at the workshop. After the workshop,
the proceedings will be publicly available on-line in the Computing
Research Repository (CoRR).


Important dates
---
Submission: May 15, 2006
Notification:   June 15, 2006
Camera-ready:   July 10, 2006
Workshop:   August 16, 2006

Workshop organizers
---

Susana Muñoz-Hernández  (Universidad Politécnica de Madrid, Spain)
Wim Vanhoof (coordinator)   (Univeristy of Namur, Belgium)

Program Committee
-
María Alpuente  (Universidad Politécnica de Valencia, Spain)
Mireille Ducassé(INSA/IRISA, Rennes, France)
John Gallager   (Roskilde University, Denmark)
María García de la Banda(Monash University, Australia)
José Manuel Gómez-Pérez (ISOCO Madrid, Spain)
Gopal Gupta (University of Texas at Dallas, U.S.A)
Moreno Falaschi (Università di Udine, Italy)
Pat Hill(University of Leeds, U.K.)
Michael Leuschel(Heinrich-Heine-Universitat Düsseldorf, Germany)
Fred Mesnard(Université de La Réunion, France)
Susana Muñoz-Hernández  (Universidad Politécnica de Madrid, Spain)
Kostis Sagonas  (Uppsala University, Sweden)
Alexander Serebrenik(Technische Universiteit Eindhoven, The 
Netherlands)
Zoltan Somogyi  (University of Melbourne, Australia)
Wim Vanhoof (University of Namur, Belgium)



___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] GPCE 2006 Deadline Extension

2006-05-02 Thread Emir Pasalic
Apologies for repeated posts. The GPCE 2006 deadline for technical  
paper submission has been extended to May 14.


GPCE provides a venue for researchers and practitioners interested in  
foundational techniques for enhancing the productivity, quality and  
time-to-marked in software development that stems from deploying  
standard componentry and automating program generation. In addition  
to exploring cutting-edge techniques for developing generative  
component-based software, our goal is to foster further cross- 
fertilization between software engineering research community and the  
programming languages community.


Changes:
- There will be no pre-submission
-  Submission deadline: May 14, 2006, 23:59 Apia time (previously May 5)
- Notification: June 28, 2005

For more information, check:
http://www.program-transformation.org/GPCE06/


___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] Call for papers: FM-Ed'06 - Formal Methods in the Teaching Lab

2006-05-02 Thread J.N. Oliveira

Call for Papers -- Submission deadline: June 9, 2006


  FORMAL METHODS IN THE TEACHING LAB
 Examples, Cases, Assignments and Projects Enhancing Formal 
Methods Education

http://www.di.uminho.pt/FME-SoE/FMEd06/

 A Workshop at the Formal Methods 2006 Symposium
  Workshop: Saturday, August 26, 2006
Symposium: August 21 - 27, 2006
  McMaster University, Hamilton, Ontario, Canada

I. ORGANIZATION

This workshop is organized by the Formal Methods Europe Subgroup on Education.

Dines Bjørner (JAIST, Japan)
Eerke Boiten (University of Kent, UK)
Raymond Boute (Universiteit Gent, Belgium)
Andrew Butterfield (Trinity College, Dublin)
John Fitzgerald (University of Newcastle upon Tyne, UK)
Randolph Johnson
Steve King (University of York, UK)
Peter Lucas
Michael Mac an Airchinnigh (Trinity College, Dublin)
Dino Mandrioli (Politecnico di Milano, Italy)
Andrew Martin (Oxford University, UK)
José Oliveira (Universidade do Minho, Portugal) -- Convenor
Kees Pronk (Technische Universiteit Delft, NL)
Simão Melo de Sousa (Universidade da Beira Interior, Portugal)
Wolfgang Reisig (Humboldt-Universität zu Berlin, Germany)

Workshop Co-Chairs

Raymond Boute
Formal Methods Group, Department of Information Technology (INTEC),
Ghent University, Ghent (Belgium)
E-mail: [EMAIL PROTECTED]

José Oliveira
Departamento de Informatica
Universidade do Minho, Braga, Portugal
E-mail: [EMAIL PROTECTED]

II. CONCEPT OF THE WORKSHOP

Motivation

Quoting Dines Dines Bjørner:
"Formal Methods Education is currently facing a `trichotomy':
 - On the one hand, industries dealing with the design of complex
   and critical systems have an increasing need for methods that
   provide a certain degree of confidence in the result, and are
   often looking for external assistance in the area of formal methods
   from consulting companies and academia.
 - On the other hand, a growing number of university staff enjoys
   the intellectual challenge of research in this area and teaching
   formal techniques to students.
 - On the "third hand", an increasing number of students de-select
   formal methods in the curriculum, due to various causes and trends."

One cause of the problem is a general mathphobic trend in society and education.
 Another cause is that, intellectually, Information Technology is the 
victim of
its own success. Indeed, the rapid growth creates so many design and 
implementation
tasks that can be done and, more importantly, are being done with negligible 
educational
or scientific background that it is difficult to argue convincingly in favor of 
formal
methods on the basis of immediate everyday necessities. Critical systems, of 
course,
are a notable exception.
 These trends are so pervasive that the small minority of FM educators has 
little
hope to curb them in the near future. More effective in the long term is 
instilling
a higher degree of professionalism in the next generation. This requires in 
particular
a directed, positive action towards motivating students.

Theme

This workshop solicits short papers, presentations, demonstrations and 
evaluations
describing sharp classroom or lab experiments which have proved particularly 
beneficial
to the students' understanding and motivation for formal methods.
 The emphasis is not on (new) theories or methods but on specific 
illustrations
and exercises that can be used by colleagues in their own courses, perhaps 
applying
their own formalisms.
 The main goals are:
 - to share knowledge and experience on the practicalities of teaching and 
learning formal methods;
 - to build a collection of interesting cases, examples, assignments and 
projects
   that FM teachers can use in educational activities.

Format

The workshop will be a forum-like event, with short presentations, demos and 
informal
discussion slots. After the workshop, if the evaluation committee decides that 
there
is a sufficient number of high-quality submissions, an agreement will be sought 
with
Springer Lecture Notes in Computer Science about publishing a special volume, 
and authors
will be invited to submit their contribution for refereeing.

III. SUBMISSIONS

Call for Contributions

This workshop solicits papers, presentations, demonstrations and evaluations 
describing
such material in detail and how it has been beneficial to the students' 
understanding
and motivation.
 The emphasis should not be primarily on new theories or methods but on 
specific
illustrations and exercises that can be used by colleag

[Haskell] Optimizing locking with MVars

2006-05-02 Thread Bulat Ziganshin
Hello haskell,

Main reason of slowness of existing Handle-based I/O in GHC is locking
around each operation. it is especially bad for simple char-at-a-time
I/O where 99% of time spent on locking and unlocking.

To be exact, on my CPU, hPutChar for 100mb file requires 150 seconds,
while hGetChar for the same file is "only" 100 seconds long. it seems
that former use 3 locking operations and later 2 ones, because my own
vGetChar/vPutChar implementations both requires 52 seconds, of those
only about one second is real work and rest is just `withMVar`
expenses.

Until now, i thought that this 0.5 ms (about 1000 primitive CPU
operations) on each withMVar is pure time required to perform
takeMVar+putMVar operations. But yesterday i investigated this problem
deeper and results was amazing!

First, i just made local copy of `withMVar` and added INLINE to it:

import Control.Exception as Exception
{-# INLINE inlinedWithMVar #-}
inlinedWithMVar :: MVar a -> (a -> IO b) -> IO b
inlinedWithMVar m io =
  block $ do
a <- takeMVar m
b <- Exception.catch (unblock (io a))
(\e -> do putMVar m a; throw e)
putMVar m a
return b


Second, i've developed my own simplified version of this procedure.
Here i should say that my library uses "MVar ()" field to hold lock
and separate immutable data field with actual data locked:

data WithLocking h = WithLocking h !(MVar ())

This allowed me to omit block/unblock operation and develop the
following faster analog of withMVar:

lock (WithLocking h mvar) action = do
  Exception.catch (do takeMVar mvar
   result <- action h   
   putMVar mvar ()  
   return res   
  ) 
  (\e -> do tryPutMVar mvar (); throw e)

And as third variant i tried exception-unsafe variant of `withMVar`:

unsafeWithMVar :: MVar a -> (a -> IO b) -> IO b
unsafeWithMVar m io = do
a <- takeMVar m
b <- io a
putMVar m a
return b


And now are results:

withMVar52 seconds
inlinedWithMVar 38 seconds
lock20 seconds
unsafeWithMVar  10 seconds


So,

1) `withMVar` can be made significantly faster just by attaching
INLINE pragma to it. until GHC includes this patch, you can just make
local copy of this procedure (it's implementation is
compiler-independent) and use INLINE pragma for this local copy

2) if MVar is used only to protect some immutable data from
simultaneous access, it's use can be made significantly faster by
using above-mentioned WithLocking type constructor together with
'lock' function. I hope that this mechanism will go into future
Haskell implementations and in particular it will be used in my own
Streams library and in new DiffArray implementation (that is a part
of ArrayRef library)

3) For simple programs that don't catch exceptions anyway, this
excessive protection is just meaningless. they can use
'unsafeWithMVar' to work as fast as possible. i mean in particular
shootout-like benchmarks. it is also possible to develop fast & safe
routines by using explicit unlocking (with 'tryPutMVar') in
higher-level exception handlers


and a more general conclusion. this case is a good demonstration of
significant performance loss due to using of higher-order functions. i
think that more aggressive inlining of high-order and polymorphic
functions should significantly speed up GHC-compiled programs.


-- 
Best regards,
 Bulat  mailto:[EMAIL PROTECTED]

___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell