caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "\"Mark Adams\"" <mark@proof-technologies.com>
To: <createsoftware@users.sourceforge.net>, <caml-list@inria.fr>
Subject: Re: [Caml-list] Nicely written Caml/OCaml code to read.
Date: Thu, 14 Apr 2011 12:59:36 +0100	[thread overview]
Message-ID: <1302782376235@names.co.uk> (raw)

Hi Clement,

My HOL Zero program may be of interest to you.  It's a theorem prover (i.e.
a program for performing mathematical proof), but don't let that put you
off!  It's written in about 8,000-9,000 non-blank/non-comment lines of
OCaml, and is heavily commented, nicely formatted and implemented in a
straightforward style.  I've tried to make it as easy as possible for others
to understand the implementation (the idea is that people will then trust
that the proofs it performs are correct), and it comes with a glossary
explaining background terminology about theorem provers.  There is no use of
Object-Oriented, there is only a little optimisation (to do basic sensible
things regarding tail recursion, etc) and it has a simple implementation of
trees.

    http://www.proof-technologies.com/holzero.html

To run it, you'll need a Unix-like operating system with bash, OCaml and
Camlp5.

There is even a $100 bountry reward if you manage to find a fundamental flaw
in the mathematical soundness of the program!

Mark Adams
Proof Technologies Ltd


on 13/4/11 9:40 PM, Create Software <createsoftware@users.sourceforge.net>
wrote:

> Hi all,
>
> I'll be taking exams at the end of the year (starting in a week,
actually),
> which include programming / informatics
> tests. The language used in these exams is Caml Light (you guessed right:
> grandes écoles).
>
> I've done a lot of programming in previous years, but I didn't know
> Caml/OCaml before high school -- I come from a mixed
> C++/C# world, with drops of Python here and there.
>
> In developing my skill in other languages, I always found that reading
good
> code at some point was a great boost to the
> beauty and cleanness of the programs I wrote. Usually, every language has
> it's own conventions, best practices, and I
> think you can usually learn a lot by reading well-written, nicely-crafted
> code.
>
> So here's my question: **which code would you recommend to read?**
>
> (As a side note, I'm not really interested (at least in the very short
term)
> in anything on the object-oriented side of
> the language, since the notions used at the exam are limited to the
elements
> available in Caml Light.)
>
> I've tried batteries and Jane street core/ext-core libraries, but the
former
> has extremely few comments, and the latter
> is too widely optimized to be enjoyable to read (Jane street's map
function
> is 30 lines long due to loop unrolling).
>
> Anything that deals with trees or finite state automata gets extra brownie
> points =) (and +2 if Gabriel Scherer answers)
>
> Thanks for your help!
> Clément.
>
> --
> Create Software - Open source, lightweight, and efficient software -
> @createsoftware <http://twitter.com/createsoftware>
> http://createsoftware.users.sourceforge.net -
> http://synchronicity.sourceforge.net
>
> --
> Caml-list mailing list.  Subscription management and archives:
> https://sympa-roc.inria.fr/wws/info/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
>
>
>


             reply	other threads:[~2011-04-14 11:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-14 11:59 "Mark Adams" [this message]
  -- strict thread matches above, loose matches on Subject: below --
2011-04-14  8:25 Denis Berthod
2011-04-13 20:40 Create Software
2011-04-14  7:32 ` Denis Berthod
2011-04-14  8:43   ` Create Software
2011-04-14  9:07     ` Denis Berthod
2011-04-14  9:12 ` Vincent Aravantinos
2011-04-14 10:35   ` Create Software

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1302782376235@names.co.uk \
    --to=mark@proof-technologies.com \
    --cc=caml-list@inria.fr \
    --cc=createsoftware@users.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).