comp.lang.ada
 help / color / mirror / Atom feed
From: Paul Rubin <no.email@nospam.invalid>
Subject: Re: BDD package in Ada.
Date: Thu, 09 Apr 2015 08:24:12 -0700
Date: 2015-04-09T08:24:12-07:00	[thread overview]
Message-ID: <87k2xle34z.fsf@jester.gateway.sonic.net> (raw)
In-Reply-To: 44b2e375-8993-4a7e-b81a-6a7b512d2e3e@googlegroups.com

Vincent DIEMUNSCH <vincent.diemunsch@gmail.com> writes:
> Binary Decisions Diagram [1] is a key technology in computer science,...
> So I hesitate between developping a binding to an existing C library,
> and thus having access to the best and fastest implementations, or
> developping one myself, but the result might be less efficient,
> although easier to use from Ada and more portable.
> Any piece of advice to give me ? Would some of you be interested in
> using it ? In contributing to the development as an Open Source ?

This sounds interesting.  I had heard of BDD before but didn't know what
they were.  One thing I'd ask is what your goals are: do you want to use
BDD's for something?  To write an interesting Ada library?  To get other
people interested in BDD's?

Is the BDD library itself likely to be used inside a critical system?
If yes, that speaks in favor of writing it in Ada.  Or is most of the
library about taking some decision structure and converting it to a BDD
for use someplace else?  In that case, maybe it's simplest to bind an
existing library, especially if writing a new one duplicates a lot of
effort.

I get the impression from the Wikipedia article that a lot of the work
in the library is heuristically finding a good ordering of the
variables.  I wonder if you can use an existing SAT or SMT solver for
that, and in fact whether the existing BDD libraries work that way.
CVC3 and Z3 are the SMT solvers I hear the most about right now (haven't
heard any mentions of Yices for a while).  Both of them are written in
C++.  I'm not really conversant with this technology though I think it
is very important and I want to try it out.  I don't know whether pure
SAT solvers are actively developed these days, though MiniSAT has been
around forever and has been used in some interesting things.  IIRC, it
is written in C and it is very simple (but still effective).
Re-implementing it in Ada as part of a BDD library might be interesting.

  parent reply	other threads:[~2015-04-09 15:24 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-07 20:35 BDD package in Ada Vincent DIEMUNSCH
2015-04-08  6:38 ` Dmitry A. Kazakov
2015-04-08  7:44   ` Vincent DIEMUNSCH
2015-04-08 12:25     ` jan.de.kruyf
2015-04-08 18:39       ` vincent.diemunsch
2015-04-09  9:31         ` jan.de.kruyf
2015-04-09 16:51         ` jan.de.kruyf
2015-04-09 18:23           ` vincent.diemunsch
2015-04-08 21:30     ` Randy Brukardt
2015-04-08 23:40       ` Paul Rubin
2015-04-09  9:05         ` gautier_niouzes
2015-04-09 23:49           ` Randy Brukardt
2015-04-09  9:06       ` Georg Bauhaus
2015-04-09  9:29         ` Dmitry A. Kazakov
2015-04-10  0:05         ` Randy Brukardt
2015-04-08 21:20   ` Randy Brukardt
2015-04-08 18:27 ` Per Sandberg
2015-04-09 15:24 ` Paul Rubin [this message]
2015-04-09 20:02   ` vincent.diemunsch
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox