[mercury-users] Questions
Ralph Becket
rbeck at microsoft.com
Fri Mar 24 02:03:32 AEDT 2000
Hi Gustavo,
> 1. What kind of problems, in your opinion, are more suitable
> to be solved
> with Mercury (wrt Prolog and others Functional and Logic Programming
> languages)?
These days I use Mercury for just about everything bar very grotty
text mangling (I use Awk etc.) I don't think pure Mercury is up to
programs that really need to do some low-level optimisations (e.g.
fast manipulation of large arrays of bytes is hard), partly because
you can't tell the compiler "just trust me to handle initialisation".
There's a good argument to say that this is just the sort of
thing the C interface is there for.
> 2. Please describe what tools you use for developing software
> systems in Mercury, for each step below:
> - Design
> - Specification
Pencil, paper, whiteboard, beer, reference materials.
> - Construction
Vim, mmake.
> - Program Analysis
The mercury compiler and profiler.
> - Maintenance
The above + CVS.
> 3. What kind of specifications you use?
> * Formal
> * Semiformal
> * Informal
> * I don't use, My program is a specification
> * Another (?)
It depends upon the problem. Some things are "just obvious" and don't
need a spec. Other things I tend to work out as a set of logical
relations that I can then translate pretty much directly into Mercury.
Pain happens when I confuse a real problem with something that's
"just obvious".
> 4. Do you use some program verification method when you build
> your program?
> * I don't use, I trust in my program (logic, isn't it?)
> * I don't use, I debug when I have problems
> * I use, but rarely
> * I use frequently
Nine times out of ten, once the compiler accepts my program it does
what I intended. I tend to design in a fairly formal style, which
helps, but I rarely do more than sketch proofs.
> 5. What helps do you use to write your programs? This is not exclusive, so
> you can mark two or more. If you can explain a little, so much better.
> * A good text editor (vi, emacs)
Definitely.
> * Use of programming patterns
The standard library is very good. Extensive use of type classes in version
2 will make things even easier, although I very rarely use them at the
moment (I find generalising to type classes is best done after one
understands the problem/design space).
> * Use of codification standards
I have a pretty strict coding style.
> * Use of programming methodology (which?)
See 2 & 3 above.
> * Another (?)
Talking problems through with colleagues over a pint.
> 6. What degree of interaction you would like to see in a tool
> for Mercury program development?
> * High (GUI integrating several tools and supporting all
> programming tasks)
Not bothered. In fact, I prefer collections of good tools
(mmake, mmc, vi, mtags etc.) to integrated environments where
I can't tell whether any changes done outside the IDE will
screw up its secret bookkeeping.
> * Medium (e.g. Emacs mode with support to some programming
> tasks and independent automatic tools)
> * Low (Simple text editor and independent automatic tools)
As I say, I use vim, mtags and mmake and I'm a happy bunny.
Cheers,
Ralph
--------------------------------------------------------------------------
mercury-users mailing list
post: mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe: Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------
More information about the users
mailing list