Hello
Here is the latest Caml Weekly News, for the week of March 11 to 18, 2008.
The Oregon PL Summer School will run July 22-30, 2008 with the topic "Logic
and Theorem Proving in Programming Languages". This is a very exciting topic,
and we've put together a great collection of speakers. The school has a long
tradition and is sponsored by the NSF, ACM SIGPLAN, and Microsoft Research.
The full "Call for Participation" may be found below.
Thanks,
Matthew Fluet & Yannis Smaragdakis (OPLSS'08 Organizers)
===========================================================================
===========================================================================
Call for Participation:
Summer School on Logic and Theorem Proving in Programming Languages
July 22-30, 2008
University of Oregon (Eugene, Oregon)
http://www.cs.uoregon.edu/research/summerschool/summer08/
summerschool@cs.uoregon.edu
This Summer School will cover current research focused on integrating
expressive logical systems and powerful theorem-proving assistants
into the design, definition, and implementation of programming
languages. Speakers will present material covering foundational
theory, advanced techniques, and applications.
Material will be presented at a tutorial level that will help graduate
students and researchers from academia or industry understand the
critical issues and open problems confronting the field. The course is
open to anyone interested. Prerequisites are an elementary knowledge
of logic and mathematics that is usually covered in undergraduate
classes on discrete mathematics. Some knowledge of programming
languages at the level provided by an undergraduate survey course will
also be expected. Our primary target group is PhD students. We also
expect attendance by faculty members who would like to conduct
research on this topic or introduce new courses at their universities.
The program consists of more than twenty-five, 80 minute lectures
presented by internationally recognized leaders in programming
languages and formal reasoning research. Topics include:
SMT Solvers - Theory, Implementation and Applications
Leonardo de Moura, Microsoft Research
Mechanization of Metatheory using LF and Twelf
Robert Harper, Carnegie Mellon University
Compiler Construction in Formal Logical Frameworks
Jason Hickey, California Institute of Technology
Specification and Verification of Programs with Pointers
Rustan Leino, Microsoft Research
Leveraging Domain-Specific Languages for Reasoning
Sorin Lerner, University of California - San Diego
Reasoning About Programs with ACL2
Pete Manolios, Northeastern University
Putting the Curry-Howard Isomorphism to Work
Tim Sheard, Portland State University
Nominal Techniques
Christian Urban, TU Munich
Coq for Programming Language Metatheory
Stephanie Weirich, University of Pennsylvania
Venue
~~~~~
The summer school will be held at the University of Oregon, located in
the southern Willamette Valley city of Eugene, close to some of the
world's most spectacular beaches, mountains, lakes and forests. On
Sunday, July 27, students will have the option of participating in a
group activity in Oregon's countryside.
Registration
~~~~~~~~~~~~
The cost for registration is $175.00 (USD) for graduate students, and
$275.00 (USD) for other participants. Registration must be paid upon
acceptance to the summer school, and is non-refundable. There are a
limited number of grants available to fund part of the cost of student
participation. If you are a graduate student and want to apply for
grant money to cover your expenses, please also include a statement of
your needs with your registration.
Additional information about the program, registration, venue, and
housing options is available on the web site. Or, you may request more
information by email.
To register for the Summer School, send a CV that includes a short
description of your educational background and one letter of
reference, unless you have already been granted a Ph.D. Please include
your name, address and current academic status.
Send all registration materials to summerschool@cs.uoregon.edu. All
registration materials should be delivered to the program by April
11, 2008. Materials received after the closing date will be evaluated
on a space available basis. Non U.S. citizens should begin immediately
to obtain travel documents.
Housing
~~~~~~~
The school will provide on-campus housing and meals. To share a room
with another student attending the school, the cost is $495 (USD) per
person. Housing rates are based on check-in Tuesday, July 22 and
check-out before noon on Thursday, July 31. Some single rooms may be
available for an additional fee of $150 (USD). If you'd like a single
room, please indicate your choice and we will try to accommodate you
on a first-come/first-served basis.
Organizers
~~~~~~~~~~ Organizing committee: Matthew Fluet and Yannis Smaragdakis
Sponsors: National Science Foundation, ACM SIGPLAN, Microsoft Research
> I wonder whether anyone has a BDD (binary decision diagram) > implementation in ocaml. Ocaml interfaces to external BDD > implementations in other languages (like Cudd) are of no use to me. have a look at this paper for a non-optimized bdd implementation from Jean-Christophe Filliatre. http://www.lri.fr/~filliatr/ftp/publis/hash-consing2.ps.gz I don't know if the full source code is avalaible. I wasn't able to find it. It would be interesting to repeat their experiments and play with it.Jean-Christophe Filliâtre then added:
I wrote the code by that time, but I was too lazy to package it. Here it is: http://www.lri.fr/~filliatr/ftp/ocaml/bdd/Berke Durak also answered:
There is one small BDD module written by Xavier Leroy for an experimental SAT-solver during the EDOS project: https://gforge.inria.fr/plugins/scmsvn/viewcvs.php/xlsat/?root=sodiacOlivier Michel also answered:
I once wrote in the 90s a (RO)BDD implementation in caml-light (the
translation to Ocaml should not be a big deal though) for the
development of the declarative data-parallel language 8,5. The sources
(unfortunately with comments in French, but they are pretty much
straightforward!) are available here:
http://www.ibisc.univ-evry.fr/~michel/BDD/
> Hi all. Does anyone have an OCaml libary for working with Roman Numerals? > Probably easy to write but am hoping it already exists. Thank you. This is by no means a complete library, but I translated some conversion functions here: http://pleac.sourceforge.net/pleac_ocaml/numbers.html#AEN88
A new version of Xmlm is available. It is incompatible with the previous one. The callback interface was dropped in favour of a streaming (pull) interface. The tree interface was dropped in favour of a custom tree construction interface tightly integrated with the streaming interface. This has the following advantages : * The input and output processes become symmetric. * Reclaim your recursion ! There no inversion of control, the client drives the parsing process. * Makes it easy to create tag level parsers and use parser combinator approaches. * Allows to use the custom tree api on specific parts of the document only. You can get a feel of the new interface by looking at the examples at http://erratique.ch/software/xmlm/doc/Xmlm#ex Other significant changes are : * Namespace support, all names are now expanded names (attributes pertaining to namespaces are preserved in the result). * Whitespace stripping respects the xml:space attribute. * Xmlm is functorized on string and internal buffer types. Among other things this can be used to perform hash-consing, to overcome caml string limitations or to process the character stream, e.g. to normalize unicode characters or to convert to a custom encoding. * UTF-8 documents can start with an UTF-8 encoded BOM. * The file test/xhtml.ml couples each XHTML character entity with its corresponding UTF-8 encoded character string. You can use it to program a suitable entity callback to parse xhtml. (New) project homepage : http://erratique.ch/software/xmlm As always, your (possibly negative yet constructive) feedback is welcome.
Here is a quick trick to help you read this CWN if you are viewing it using vim (version 6 or greater).
:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~'^=\\{78}$'?'<1':1
zM
If you know of a better way, please let me know.
If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.
If you also wish to receive it every week by mail, you may subscribe online.