[Caml-list] Call for Participation: PLPV 2010
* CALL FOR PARTICIPATION PLPV 2010 The Fourth ACM SIGPLAN Workshop on Programming Languages meets Program Verification 19 January 2010 Madrid, Spain To be held in conjunction with POPL 2010 http://slang.soe.ucsc.edu/plpv10/ * IMPORTANT DATES Hotel reservation deadline: December 28, 2009 (Monday) VENUE PLPV'10 and all POPL'10 affiliated events will take place at the Melia Castilla Hotel, Madrid. REGISTRATION To register for PLPV'10, follow the link from the POPL 2010 page, at http://www.cse.psu.edu/popl/10/ SCOPE The goal of PLPV is to foster and stimulate research at the intersection of programming languages and program verification. Work in this area typically attempts to reduce the burden of program verification by taking advantage of particular semantic and/or structural properties of the programming language. One example is dependently typed programming languages, which leverage a language's type system to specify and check richer than usual specifications, possibly with programmer-provided proof terms. Another example is extended static checking systems like ESC/Java and Spec#, which incorporate pre- and postconditions along with a static verifier for these contracts. INVITED SPEAKER Gilles Barthe, Madrid Instutite for Advanced Studies PRELIMINARY PROGRAM -- Invited Talk (9:00 - 10:00) * CertiCrypt: Formal Certification of Code-Based Cryptographic Proofs Gilles Barthe, Madrid Instutite for Advanced Studies Session 1 (10:30 - 12:00) * Singleton types here, Singleton types there, Singleton types everywhere Stefan Monnier and David Haguenauer * Operating system development with ATS Matthew Danish and Hongwei Xi * Modular Reasoning about Invariants over Shared State with Interposed Data Members Stephanie Balzer and Thomas Gross Session 2 (2:00 - 3:00) * Resource Typing in Guru Aaron Stump and Evan Austin * Free Theorems for Functional Logic Programs Jan Christiansen, Daniel Seidel and Janis Voigtländer Discussion (3:00 - 3:30) * Status update and discussion of the Trellys Project Session 3 (4:00 - 5:00) * Arity-generic datatype-generic programming Stephanie Weirich and Chris Casinghino * Challenge Benchmarks for Veriï¬cation of Real-time Programs Tomas Kalibera, Gary Leavens and Jan Vitek -- PROGRAM CHAIRS * Cormac Flanagan (University of California, Santa Cruz) * Jean-Christophe Filliâtre (CNRS) PROGRAM COMMITTEE * Adam Chlipala (Harvard University) * Ranjit Jhala (University of California, San Diego) * Joseph Kiniry (University College Dublin) * Rustan Leino (Microsoft Research) * Xavier Leroy (INRIA Paris-Rocquencourt) * Conor McBride (University of Strathclyde) * Andrey Rybalchenko (Max Planck Institute for Software Systems) * Tim Sheard (Portland State University) * Stephanie Weirich (University of Pennsylvania) ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
[Caml-list] Call for Participation: VSTTE 2009
* * * * VSTTE 2009 * * * *Workshop on Verified Software * *Theory Tools and Experiments * *(affiliated with Formal Methods Week) * * * * *** Call For Participation *** * * * * November 2, 2009* * Eindhoven, the Netherlands * *http://vstte09.lri.fr/ * * * * The workshop on Verified Software: Theories, Tools, and Experiments (VSTTE 2009) will take place on November the 2nd. The focus of this workshop will be on tools, as previous VSTTE conferences in Zurich and Toronto emphasised theories and experiments.Consisting of contributed papers and invited talks, the workshop will focus on the tools behind the development of systematic methods for specifying, building, and verifying high-quality software. Program === 09:00-10:00 - Rajeev Joshi, NASA JPL US TBA 10:30-11:30 - Discovering Specifications for Unknown Procedures with Separation Logic Chenguang Luo, Florin Craciun, Shengchao Qin, Guanhua He and Wei-Ngan Chin. On Essential Program Annotations and Completeness of Verifying Compilers Bernhard Beckert, Thorsten Bormer and Vladimir Klebanov. 11:30-12:30 - Jim Woodcock, University of York UK TBA 13:30-14:30 - Pascal Cuoq, CEA France TBA 14:30-15:30 - SMT Solvers: New Oracles for the HOL Theorem Prover Tjark Weber. An Interval-based SAT Modulo ODE Solver for Model Checking Nonlinear Hybrid Systems Daisuke Ishii, Kazunori Ueda and Hiroshi Hosobe. 16:00-17:00 - John McDermott, Naval Research Lab US TBA Kalou Cabrera Castillos, INRIA Nancy France TBA Registration Participants can register for any combination of FM2009 activities, inclusing VSTTE 2009, at http://www.win.tue.nl/fmweek/Registration.html Deadline for (normal) registration is October 19. ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
[Caml-list] Call for Papers: PLPV 2010
Call For Papers Programming Languages meets Program Verification (PLPV) 2010 http://slang.soe.ucsc.edu/plpv10/ Tuesday, January 19, 2010 Madrid, Spain Affiliated with POPL 2010 Overview: The goal of PLPV is to foster and stimulate research at the intersection of programming languages and program verification. Work in this area typically attempts to reduce the burden of program verification by taking advantage of particular semantic and/or structural properties of the programming language. One example is dependently typed programming languages, which leverage a language's type system to specify and check richer than usual specifications, possibly with programmer-provided proof terms. Another example is extended static checking systems like Spec#, which extends C# with pre- and postconditions along with a static verifier for these contracts. We invite submissions on all aspects, both theoretical and practical, of the integration of programming language and program verification technology. To encourage cross-pollination between different communities, we seek a broad the scope for PLPV. In particular, submissions may have diverse foundations for verification (type-based, Hoare-logic-based, etc), target diverse kinds of programming languages (functional, imperative, object-oriented, etc), and apply to diverse kinds of program properties (data structure invariants, security properties, temporal protocols, etc). Submissions: Submissions should fall into one of the following three categories: 1. Regular research papers that describe new work on the above or related topics. Submissions in this category have an upper limit of 12 pages, but shorter submissions are also encouraged. 2. Work-in-progress reports should describe new work that is ongoing and may not be fully completed or evaluated. Submissions in this category should be at most 6 pages in total length. 3. Proposals for challenge problems which the author believes is are useful benchmarks or important domains for language-based program verification techniques. Submissions in this category should be at most 6 pages in total length. Submissions should be prepared with SIGPLAN two-column conference format. Submitted papers must adhere to the SIGPLAN republication policy. Concurrent submissions to other workshops, conferences, journals, or similar forums of publication are not allowed. Papers should be submitted through Easychair, at http://www.easychair.org/conferences/?conf=plpv2010 Publication: Accepted papers will be published by the ACM and appear in the ACM digital library. Student Attendees: Students with accepted papers or posters are encouraged to apply for a SIGPLAN PAC grant that will help to cover travel expenses to PLPV. Details on the PAC program and the application can be found on the workshop web page. PAC also offers support for companion travel. Important Dates: * Electronic submission: October 8, 2009, 11:59pm Samoa time (UTC-11) * Notification: November 8, 2009 * Final version: November 17, 2009 * Workshop: January 19, 2010 Organizers: * Cormac Flanagan (University of California, Santa Cruz) * Jean-Christophe Filliâtre (CNRS) Program Committee: * Adam Chlipala (Harvard University) * Ranjit Jhala (University of California, San Diego) * Joseph Kiniry (University College Dublin) * Rustan Leino (Microsoft Research) * Xavier Leroy (INRIA Paris-Rocquencourt) * Conor McBride (University of Strathclyde) * Andrey Rybalchenko (Max Planck Institute for Software Systems) * Tim Sheard (Portland State University) * Stephanie Weirich (University of Pennsylvania) ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: [Caml-list] Partially hiding modules in packages
Hi, Alexey Rodriguez a écrit : > My question is about how to hide modules (or parts thereof) in > an ocaml package from the outside world (users of the package). > > * Add the file foobar.mli which contains the signatures of Foo and Bar > but hiding > Foo.unsafe_change. I think it could work, but I would have to repeat > much of the Foo > and Bar interfaces. I tried this but it didn't work, ocaml complains > as follows: That's the solution we followed in Mlpost (http://mlpost.lri.fr/) and it works fine (you may have a look at the Makefile.in in mlpost sources). Indeed, you have to repeat (parts of) the modules interfaces, but since it is where we put all the ocamldoc documentation, in a single file, it appears to be a satisfying solution. -- Jean-Christophe ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: [Caml-list] Why don't you use batteries?
>> I like writing my own libraries when I need some. > > Unfortunately, many people do that. Why do you say "unfortunately"? What was important in my answer was not the words "my own libraries" but the words "I like". And you cannot find unfortunate that some people like programming :-) (But, of course, if this is to recode an existing library without any pleasure, I agree with you.) -- Jean-Christophe ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: [Caml-list] Why don't you use batteries?
> 8) Other (please explain) I like writing my own libraries when I need some. (But don't misread me: I don't see myself as a concurrent to Batteries, and I think you guys are doing a great job.) -- Jean-Christophe ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
[Caml-list] Second Call for Papers: VSTTE 2009
Due to many requests, the submission deadline for the VSTTE workshop has been extended. * * * * VSTTE 2009 * * * *Workshop on Verified Software * *Theory Tools and Experiments * * * *(affiliated with Formal Methods Week) * * * * November 2, 2009* * Eindhoven, the Netherlands * *http://vstte09.lri.fr/ * * * *Deadline for submissions: Sep 11, 2009* * * * FM 2009 is the sixteenth in a series of symposia of the Formal Methods Europe association, and the second one that is organized as a world congress. Ten years after FM'99, the 1st World Congress, the formal methods communities from all over the world will once again have an opportunity to meet. FM 2009 will be both an opportunity to celebrate, and an opportunity to join in when enthusiastic researchers and practitioners from a diversity of backgrounds and schools come together to discuss their ideas and experiences. The workshop on Verified Software: Theories, Tools, and Experiments (VSTTE 2009) will take place on November the 2nd. The focus of this workshop will be on tools, as previous VSTTE conferences in Zurich and Toronto emphasised theories and experiments. Consisting of contributed papers and invited talks, the workshop will focus on the tools behind the development of systematic methods for specifying, building, and verifying high-quality software. This includes topics like: * Program logic * Specification and verification techniques * Tool support for specification languages * Tool for various design methodologies * Tool integration and plug-ins * Automation in formal verification * Tool comparisons and benchmark repositories * Combination of tools and techniques (e.g. formal vs. semiformal, software specification vs. engineering techniques) * Customizing tools for particular applications Papers about tool architectures, and their achievements are most welcome. The contributed papers, which should report on previously unpublished work, can reflect current and preliminary work in areas of software verification. New technical results, overviews of new developments in software verification projects, short papers accompanying tool demonstrations, as well as position papers on how to further advance the goal of verified software are all welcome. SUBMISSION PROCEDURE VSTTE proceedings will be published as a special issue of the Software Tools for Technology Transfer (STTT) journal. Submitted papers should not have been submitted elsewhere for publication. Papers should use Springer-Verlag's STTT package ftp://ftp.springer.de/pub/tex/latex/svjour/sttt/, and should not exceed 15 pages including appendices. Papers are processed through the EasyChair conference management system. IMPORTANT DATES === Submission deadline September 11, 2009, 11:59pm Samoa time (UTC-11) Notification of acceptance October 2, 2009 Final version October 16, 2009 PROGRAM COMMITTEE = * David Deharbe, Dimap UFRN, Brazil * Dino Distefano, Queen Mary University of London, UK * Jean-Christophe Filliâtre (co-chair), CNRS, France * Leo Freitas (co-chair), University of York, UK * John McDermott, Naval Research Laboratory, USA * Yannick Moy, AdaCore, France * Arnaud Venet, Kestrel Technology, USA CONTACT === Leo Freitas, l...@cs.york.ac.uk Department of Computer Science University of York, YO10 5DD York, UK Tel: (+44) (0) 1904 434753 Jean-Christophe Filliatre, jean-christophe.fillia...@lri.fr CNRS / INRIA Saclay - Ile-de-france - ProVal Parc Orsay Universite, batiment N 4, rue Jacques Monod 91893 Orsay Cedex FRANCE Tel: (+33) (0)1 74 85 42 27 FURTHER INFORMATION === Further information will be put on the workshop web-page http://vstte09.lri.fr/. ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: [Caml-list] ocamlgraph predecessors
Hi, Benjamin Ylvisaker wrote: > I have been using ocamlgraph for a while, and have been generally happy > with it. I experienced some poor performance with moderately large > graphs (10-100k vertices) recently, which led me to look through the > source code a little. It seems that doing anything with the > predecessors of a vertex, even just getting a list of them, requires > scanning through all the vertices in a graph. This seems a little crazy > to me. Am I missing something? Is there some kind of work-around that > gives reasonable performance for predecessor operations (i.e. not O(|V|)). Not providing predecessors in constant time was a deliberate choice in Ocamlgraph. (A graph is basically a map which binds any vertex to the set of its successors, and that's it.) If you need efficient access to the predecessors, you have several workarounds: - implement your own graph data structure; after all, ocamlgraph was designed to clearly separate data structures and algorithms, so that you will still be able to use graph algorithms on your own graphs. - use the graph data structure Imperative.Digraph.ConcreteBidirectional, which is the only graph data structure in Ocamlgraph providing predecessors in constant time; it is actually the contribution of a user (Ted Kremenek) who experienced the same need as yourself. - memoize the results of the predecessors function (either in a modified version of the data structure or externally if your algorithm allows it). Hope this helps, -- Jean-Christophe ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: [Caml-list] Physical counterpart to Pervasives.compare?
Pascal Cuoq a écrit : >> Elnatan Reisner wrote: >>> Is there something that can complete this analogy: >>> (=) is to (==) as Pervasives.compare is to ___? >>> > The simple solution is to number at creation the objects that you want to > physically compare, using an additional field. You can do that while hash-consing your values, which has many other benefits than allowing physical comparison, as explained in this paper: http://www.lri.fr/~filliatr/ftp/publis/hash-consing2.pdf Ocaml code for hash-consing can be found on that page: http://www.lri.fr/~filliatr/software.en.html Hope this helps, -- Jean-Christophe ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
[Caml-list] Call for Papers: VSTTE 2009
We apologise if you receive this message more than once. * * * * VSTTE 2009 * * * *Workshop on Verified Software * *Theory Tools and Experiments * * * *(affiliated with Formal Methods Week) * * * * November 2, 2009* * Eindhoven, the Netherlands * *http://vstte09.lri.fr/ * * * *Deadline for submissions: Sep 4, 2009 * * * * FM 2009 is the sixteenth in a series of symposia of the Formal Methods Europe association, and the second one that is organized as a world congress. Ten years after FM'99, the 1st World Congress, the formal methods communities from all over the world will once again have an opportunity to meet. FM 2009 will be both an opportunity to celebrate, and an opportunity to join in when enthusiastic researchers and practitioners from a diversity of backgrounds and schools come together to discuss their ideas and experiences. The workshop on Verified Software: Theories, Tools, and Experiments (VSTTE 2009) will take place on November the 2nd. The focus of this workshop will be on tools, as previous VSTTE conferences in Zurich and Toronto emphasised theories and experiments. Consisting of contributed papers and invited talks, the workshop will focus on the tools behind the development of systematic methods for specifying, building, and verifying high-quality software. This includes topics like: * Program logic * Specification and verification techniques * Tool support for specification languages * Tool for various design methodologies * Tool integration and plug-ins * Automation in formal verification * Tool comparisons and benchmark repositories * Combination of tools and techniques (e.g. formal vs. semiformal, software specification vs. engineering techniques) * Customizing tools for particular applications Papers about tool architectures, and their achievements are most welcome. The contributed papers, which should report on previously unpublished work, can reflect current and preliminary work in areas of software verification. New technical results, overviews of new developments in software verification projects, short papers accompanying tool demonstrations, as well as position papers on how to further advance the goal of verified software are all welcome. SUBMISSION PROCEDURE Submitted papers should not have been submitted elsewhere for publication, should use the Springer-Verlag's package ftp://ftp.springer.de/pub/tex/latex/svjour/sttt/, and should not exceed 15 pages including appendices. Papers will be processed through the EasyChair conference management system. IMPORTANT DATES === Submission deadline September 4, 2009, 11:59pm Samoa time (UTC-11) Notification of acceptance October 2, 2009 Final version October 16, 2009 CONTACT === Leo Freitas, l...@cs.york.ac.uk Department of Computer Science University of York, YO10 5DD York, UK Tel: (+44) (0) 1904 434753 Jean-Christophe Filliatre, jean-christophe.fillia...@lri.fr CNRS / INRIA Saclay - Ile-de-france - ProVal Parc Orsay Universite, batiment N 4, rue Jacques Monod 91893 Orsay Cedex FRANCE Tel: (+33) (0)1 74 85 42 27 FURTHER INFORMATION === Further information will be put on the workshop web-page http://vstte09.lri.fr/. ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
[Caml-list] Call for Papers: PLPV 2010
Call For Papers Programming Languages meets Program Verification (PLPV) 2010 http://slang.soe.ucsc.edu/plpv10/ Tuesday, January 19, 2010 Madrid, Spain Affiliated with POPL 2010 Overview: The goal of PLPV is to foster and stimulate research at the intersection of programming languages and program verification. Work in this area typically attempts to reduce the burden of program verification by taking advantage of particular semantic and/or structural properties of the programming language. One example is dependently typed programming languages, which leverage a language's type system to specify and check richer than usual specifications, possibly with programmer-provided proof terms. Another example is extended static checking systems like Spec#, which extends C# with pre- and postconditions along with a static verifier for these contracts. We invite submissions on all aspects, both theoretical and practical, of the integration of programming language and program verification technology. To encourage cross-pollination between different communities, we seek a broad the scope for PLPV. In particular, submissions may have diverse foundations for verification (type-based, Hoare-logic-based, etc), target diverse kinds of programming languages (functional, imperative, object-oriented, etc), and apply to diverse kinds of program properties (data structure invariants, security properties, temporal protocols, etc). Submissions: Submissions should fall into one of the following three categories: 1. Regular research papers that describe new work on the above or related topics. Submissions in this category have an upper limit of 12 pages, but shorter submissions are also encouraged. 2. Work-in-progress reports should describe new work that is ongoing and may not be fully completed or evaluated. Submissions in this category should be at most 6 pages in total length. 3. Proposals for challenge problems which the author believes is are useful benchmarks or important domains for language-based program verification techniques. Submissions in this category should be at most 6 pages in total length. Submissions should be prepared with SIGPLAN two-column conference format. Submitted papers must adhere to the SIGPLAN republication policy. Concurrent submissions to other workshops, conferences, journals, or similar forums of publication are not allowed. Publication: Accepted papers will be published by the ACM and appear in the ACM digital library. Student Attendees: Students with accepted papers or posters are encouraged to apply for a SIGPLAN PAC grant that will help to cover travel expenses to PLPV. Details on the PAC program and the application can be found on the workshop web page. PAC also offers support for companion travel. Important Dates: * Electronic submission: October 8, 2009, 11:59pm Samoa time (UTC-11) * Notification: November 8, 2009 * Final version: November 17, 2009 * Workshop: January 19, 2010 Organizers: * Cormac Flanagan (University of California, Santa Cruz) * Jean-Christophe Filliâtre (CNRS) Program Committee: * Adam Chlipala (Harvard University) * Ranjit Jhala (University of California, San Diego) * Joseph Kiniry (University College Dublin) * Rustan Leino (Microsoft Research) * Xavier Leroy (INRIA Paris-Rocquencourt) * Conor McBride (University of Strathclyde) * Andrey Rybalchenko (Max Planck Institute for Software Systems) * Tim Sheard (Portland State University) * Stephanie Weirich (University of Pennsylvania) ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: Re : [Caml-list] ocamlgraph ConcreteBidirectional and Dot
> I have a question related to this: Is there a reason for the absence of a > ConcreteBidirectionalLabeled graph in the API? Simply an historical reason: the module ConcreteBidirectional is an external contribution (by Ted Kremenek), which was only recently added to Ocamlgraph. Anybody can contribute to a ConcreteBidirectionalLabeled module and we'll happily add it to Ocamlgraph. -- Jean-Christophe ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
[Caml-list] Call for Papers: PLMMS 2009
The ACM SIGSAM 2009 International Workshop on Programming Languages for Mechanized Mathematics Systems PLMMS 2009 Munich, Germany; August 21, 2009 http://plmms09.cse.tamu.edu/ CALL FOR PAPERS The ACM SIGSAM 2009 International Workshop on Programming Languages for Mechanized Mathematics Systems will be co-located with TPHOLs 2009. General Information The scope of this workshop is at the intersection of programming languages (PL) and mechanized mathematics systems (MMS). The latter category subsumes present-day computer algebra systems (CAS), interactive proof assistants (PA), and automated theorem provers (ATP), all heading towards fully integrated mechanized mathematical assistants. Areas of interest include all aspects of PL and MMS that meet in the following topics, but not limited to: * Dedicated input languages for MMS: covers all aspects of languages intended for the user to deploy or extend the system, both algorithmic and declarative ones. Typical examples are tactic definition languages such as Ltac in Coq, mathematical proof languages as in Mizar or Isar, or specialized programming languages built into CA systems. * Mathematical modeling languages used for programming: covers the relation of logical descriptions vs. algorithmic content. For instance the logic of ACL2 extends a version of Lisp, that of Coq is close to Haskell, and some portions of HOL are similar to ML and Haskell, while Maple tries to do both simultaneously. Such mathematical languages offer rich specification capabilities, which are rarely available in regular programming languages. How can programming benefit from mathematical concepts, without limiting mathematics to the computational world view? * Programming languages with mathematical specifications: covers advanced mathematical concepts in programming languages that improve the expressive power of functional specifications, type systems, module systems etc. Programming languages with dependent types are of particular interest here, as is intentionality vs extensionality. * Language elements for program verification: covers specific means built into a language to facilitate correctness proofs using MMS. For example, logical annotations within programs may be turned into verification conditions to be solved in a proof assistant eventually. How need MMS and PL to be improved to make this work conveniently and in a mathematically appealing way? These issues have a very colorful history. Many PL innovations first appeared in either CA or proof systems first, before migrating into more mainstream programming languages. This workshop is an opportunity to present the latest innovations in MMS design that may be relevant to future programming languages, or conversely novel PL principles that improve upon implementation and deployment of MMS. Why are all the languages of mainstream CA systems untyped? Why are the (strongly typed) proof assistants so much harder to use than a typical CAS? What forms of polymorphism exist in mathematics? What forms of dependent types may be used in mathematical modeling? How can MMS regain the upper hand on issues of "genericity" and "modularity"? What are the biggest barriers to using a more mainstream language as a host language for a CAS or PA/ATP? PLMMS 2007 was held as a satellite event of, and PLMMS 2008 was a CICM 2008 workshop. Submission Details * Submission deadline: May 11, 2009 (Apia, Samoa time) * Author Notification: June 22, 2009 * Final Papers Due: July 10, 2009 * Workshop: August 21, 2009 Submitted papers should be in portable document format (PDF), formatted using the ACM SIGPLAN style guidelines (http://www.acm.org/sigs/sigplan/authorInformation.htm). The length is restricted to 10 pages, and the font size 9pt. Each submission must adhere to SIGPLAN's republication policy, as explained on the web. Violation risks summary rejection of the offending submission. Papers are exclusively submitted via EasyChair http://www.easychair.org/conferences?conf=plmms09 We expect that at least one author of each accepted paper attends PLMMS 2009 and presents her or his paper. Accepted papers will appear in the ACM Digital Library. Links * http://plmms09.cse.tamu.edu/, the PLMMS 2009 workshop web site * http://tphols.in.tum.de/, the THOPLs 2009 conference web site Program Committee * Clemens Ballarin, aicas GmbH * Gabriel Dos Reis, Texas A&M University (Co-Chair) * Jean-Christophe Filliâtre, CNRS Université Paris Sud * Predrag Janicic, University of Belgrade * Jaakko Järvi, Texas A&M University * Florina Piroi, Johannes Kepler University * Laurent Théry, INRIA Sophia Antipol
Re: [Caml-list] ocamlgraph ConcreteBidirectional and Dot
Hi, Sorry for the late answer... > I've a small problem with ocamlgraph. > I want to parse a dot graph into a ConcreteBidirectional. > > The problem is that the signature needed for Dot.Parse requires a function > edge, but I've no mean to specify a label (since it is unlabelled !!)... > > The functor for ConcreteBidirectional says E.t = (V.t * V.t), > but I don't quite understand the type of B.G.E.label ... You're right, some type information is missing and there is no way to instantiate the Dot functor with the current signature of ConcreteBidirectional. One easy patch (if you are compiling ocamlgraph from sources) is to add the constraint ... and type E.label = unit to the signature of functor ConcreteBidirectional. I think we'll do that in the next release of ocamlgraph (and similarly for other unlabeled graph data structures provided in ocamlgraph). Hope this helps, -- Jean-Christophe ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: [Caml-list] Parsing 64-bit ints in 32-bit OCaml
Jon Harrop a écrit : > I'm just trying to write efficient functions for div and mod by three. I'd > like to handle 32- and 64-bit machines with the same code so I tried: > > let gcd3 = match Sys.word_size with > | 32 -> 715827883 > | 64 -> 3074457345618258603 > | _ -> failwith "Unknown word size" > > That works perfectly in 64-bit but breaks OCaml's parser in 32-bit, which > dies > with: > > Integer literal exceeds the range of representable integers of type int > > As a workaround, I replaced it with: > > | 64 -> Int64.to_int 3074457345618258603L > > Is there a better workaround? I also bump into the same problem from time to time, and I usually replace the large constant by a (launch time) computation, such as (0x lsl 16) lor 0x for 0x for instance. In your case, it could simply be (3074457 * 100 + 345618) * 100 + 258603 But your solution is equally good (the int64 is boxed but is simpler to read). -- Jean-Christophe ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
[Caml-list] announce : Mlpost 0.5
Dear list, We are pleased to announce the first release of Mlpost, an Ocaml interface to MetaPost, a powerful software to draw pictures to be embedded in LaTeX documents. Mlpost is free software under LGPL license and is available at http://mlpost.lri.fr/ Some examples are available online (thanks to Martin Jambon's caml2html): http://mlpost.lri.fr/examples/ You can have a look at Mlpost's API online: http://mlpost.lri.fr/doc/Mlpost.html Have fun with Mlpost, -- the Mlpost authors, Romain Bardou, Johannes Kanig, Stéphane Lescuyer and Jean-Christophe Filliâtre ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: [Caml-list] New Ocaml Plug-in for NetBeans
Lukasz Stafiniak a écrit : > On Tue, Jul 29, 2008 at 4:16 PM, Damien Doligez <[EMAIL PROTECTED]> wrote: >> OCaml 3.11 has extended .annot files that will allow external tools >> to do that. Also, it tells you which function calls are tail calls >> and which are normal calls. >> > Cool! Are the http://osp.janestcapital.com/files/ocamlwizard.pdf > project participants following this? Would be nice to hear their > progress report :) They tried, indeed (I'm kind of helping in that projet, so I'm aware of the progress). Unfortunately, even with the CVS version of Ocaml, the .annot files appear to lack some information. But the solution currently followed by Ocamlwizard is along the lines of .annot files, and may even rely on these files in future version of Ocaml. -- Jean-Christophe ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: [Caml-list] Building a Set module for elements of a Map
Fabrice Marchant wrote: > Please consider a functor F that takes as input the output signature of a Map. > > Here is the only way I see to declare a Set module whose elements type are > Map.S.key : > > module F ( M : Map.S ) = struct > module MKeySet = > Set.Make ( struct type t = M.key let compare = compare end ) > end > > The problem is to access the OrderedType that permitted to build the Map M. > It seems to have disappeared inside the output Map signature S. So the trial > of regeneration : > struct type t = M.key let compare = compare end > > It maybe exists a straightforward signature we could pick somewhere inside > Map related modules ? > Moreover I'm afraid this "Ersatz" of signature based on > _Pervasives_.compare is in some cases deficient, because different from > original OrderedType of Map elements... Using Pervasives.compare instead of a user-defined comparison function may even be incorrect. (Suppose the intended comparison function should identify (x,y) and (y,x), for instance; obviously, Pervasives.compare will not.) A possible solution to your problem is to have functor F taking instead a module for keys as argument, and then to build module M inside F; thus it would look like: module F(K : OrderedType) = struct module M = Map.Make(K) module MKeySet = Set.Make(K) ... end Hope this helps, -- Jean-Christophe Filliâtre http://www.lri.fr/~filliatr/ ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: [Caml-list] Problem with module inclusion
Fabrice Marchant a écrit : > Here is a counter functor : *) > [...] > (* before Counters, that would be modified this way : > *) > module Counters ( X : Map.OrderedType ) : > sig > module XMap : > sig > type 'a t = 'a Map.Make(X).t > val empty : 'a t > val add : X.t -> 'a -> 'a t -> 'a t > val find : X.t -> 'a t -> 'a > val fold : (X.t -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b > val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool > end > type t = int XMap.t > val equal : t -> t -> bool > val zeroes : t > val incr : t -> X.t -> t > end > = > struct > module XMap = MapPlus ( Map.Make( X ) ) > > type t = int XMap.t > > let equal = XMap.equal ( = ) > > let zeroes = XMap.empty > > let incr map e = > (XMap.add e > (try succ (XMap.find e map) >with Not_found -> 1)) map > end > > (* unfortunately this doesn't work : how to access 'to_list' function through > the Counters module ? With StringCounters.XMap.to_list ? > I'm confused. Should the Counters signature be modified ? You need - either to export to_list in signature of XMap above as val to_list : 'a t -> (X.t * 'a) list and then you'll be able to write StringCounters.XMap.to_list in your example - or to re-export it in module Counters, as let to_list = XMap.to_list and to declare it in signature of module Counters, as val to_list : t -> (X.t * int) list and then to use it as StringCounters.to_list in your example. Hope this helps, -- Jean-Christophe ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs
Re: [Caml-list] Tries are to sequences as ? is to trees
Jon Harrop a écrit : > So tries let us associate sequences with values. What data structure lets us > associate trees with values? In Okasaki's book, there is a Section 10.3.2 "Generalized Tries" which addresses exactly this problem. The solution proposed is more efficient than building the list of elements with fold. -- Jean-Christophe Filliâtre http://www.lri.fr/~filliatr/ ___ Caml-list mailing list. Subscription management: http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list Archives: http://caml.inria.fr Beginner's list: http://groups.yahoo.com/group/ocaml_beginners Bug reports: http://caml.inria.fr/bin/caml-bugs