Home Messages Index
[Date Prev][Date Next][Thread Prev][Thread Next]
Author IndexDate IndexThread Index

Re: [News] New Free Software Project Wants Strive to Eliminate S/W Bugs

In comp.os.linux.advocacy, Roy Schestowitz
<newsgroups@xxxxxxxxxxxxxxx>
 wrote
on Sat, 19 Jul 2008 09:03:07 +0000
<3116918.ZoTPdTZZ3V@xxxxxxxxxxxxxxx>:
>
> ____/ The Ghost In The Machine on Friday 18 July 2008 16:49 : \____
>
>> In comp.os.linux.advocacy, Roy Schestowitz
>> <newsgroups@xxxxxxxxxxxxxxx>
>>  wrote
>> on Fri, 18 Jul 2008 14:51:57 +0000
>> <1725011.GhelxmuWVP@xxxxxxxxxxxxxxx>:
>>>
>>> ____/ The Ghost In The Machine on Thursday 17 July 2008 20:41 : \____
>>>
>>>> In comp.os.linux.advocacy, Homer
>>>> <usenet@xxxxxxxxxx>
>>>>  wrote
>>>> on Thu, 17 Jul 2008 18:56:58 +0100
>>>> <cod4l5-9vs.ln1@xxxxxxxxxx>:
>>>>> Verily I say unto thee, that Roy Schestowitz spake thusly:
>>>>>
>>>>>> Bug free software to come from EU open source Type Theory project
>>>>>
>>>>> Haven't they heard of ML? It's a self-proving language that's been
>>>>> around for three decades.
>>>>>
>>>>> http://en.wikipedia.org/wiki/ML_programming_language
>>>>>
>>>> 
>>>> Interesting language; beats me how I missed this one. ;-)
>>>> 
>>>> While most languages would probably implement reverse() recursively as
>>>> e.g. C++, using a substring method:
>>>> 
>>>> std::string reverse(std::string inp)
>>>> {
>>>>    if(inp.size() == 0) return "";
>>>>    else return reverse(inp.substr(1,inp.size() - 1)) + inp[0];
>>>> }
>>>> 
>>>> or Java:
>>>> 
>>>> String reverse(String inp)
>>>> {
>>>> if(inp.equals("")) return "";
>>>> else return reverse(inp.substr(1)) + inp.substr(0,1);
>>>> }
>>>> 
>>>> ML uses a pattern-matching syntax:
>>>> 
>>>> fun reverse([])=nil
>>>>   | reverse(h::t) = (reverse(t))@[h];
>>>> 
>>>> Microsoft already has F#, which is apparently an ML derivative for .NET.
>>>> 
>>>> For its part Linux appears to have similar functional
>>>> languages OCaml, Haskell, and is working on a beta
>>>> for Erlang.  All three are in Gentoo's Portage tree,
>>>> and wxhaskell is also available (presumably based on the
>>>> wxPython widget set).
>>>
>>> ML was one of the first P/Ls I was taught. SML in high school,
>>> then Moscow ML (just a different implementation) in college.
>>> It's pretty useless for most things we think of as
>>> 'applications', but good for language processing, AI,
>>> etc.
>>>
>>> ML is a nightmare to work with at a high pace. OpenGL,
>>> on the other hand, has been lots of fun. programming
>>> for GPUs makes eye candy (bugs are very visual)
>>> whereas ML is the very opposite -- CLI.
>> 
>> Agreed; I was hoping wxHaskell would be an IDE, but it turns
>> out to be a set of Haskell bindings for the wx widget set.
>> Still useful, for Haskell users, I suppose; just not quite
>> what I was expecting.
>> 
>> OpenGL is also a language (though not in the usual sense), and
>> quite fun to play with.
>> 
>> [.sigsnip]
>
> You could probably embed/nest ML quite conveniently under another
> framework and do some fun GTK stuff. You could also make system
> calls to the ML prompt and play with the output, I guess.
> My experience with Qt is more limited, so I don't know if
> this can be conveniently achieved (more confined).

Not sure whether ML has Qt bindings on Windows.  I can't
find ML on Linux anyway, at least at the moment; Haskell
is readily available, however.

> Trolltech
> made some nice IDE (what would Nokia do to it, I wonder?) and I didn't know
> about Glade when I worked with GTK. MATLAB is the same in the sense that you
> could do all the UNIXy stuff usign system() calls. I've always made my
> programs Linux-oriented. Anything else was treated as 'other'.
>
> Does ML for Windows run as a standalone program? Or is the dreadful cmd.exe
> needed (it's quite ugly and lacks function)? I never tried it.

I doubt cmd.exe is ever needed, unless a .bat or other
such file is involved (in which case it will be invoked on
one's behalf, with the usual Windows stupidity about not
looking deeper than the actual filename); either create a
shortcut on one's desktop (actually, any folder will do),
or use "Run As".

If it needs a console, I suspect it'll open one;
certainly Windows has AllocConsole() for just such
a purpose, though I don't think many call it directly.

http://msdn.microsoft.com/en-us/library/ms681944%28VS.85%29.aspx

I frankly don't know regarding ML specifically, though.
http://en.wikipedia.org/wiki/Standard_ML
suggests a fair number of implementations.  SML.NET (at
http://www.cl.cam.ac.uk/research/tsg/SMLNET/ ) looks to
be an interesting but possibly risky (patents) implementation
of ML that compiles down to .NET's CLR.  SML# also exists
as an entirely different project produced in Japan:
http://www.pllab.riec.tohoku.ac.jp/smlsharp/ .

There are a fair number of open source variants of ML as well,
and it turns out Gentoo does have MLton ('emerge mlton'
or 'emerge mlton-bin'), which claims to have a very fast
optimizing compiler.

Gadzooks, two more languages to learn. ;-)

[.sigsnip]

-- 
#191, ewill3@xxxxxxxxxxxxx
Useless C++ Programming Idea #992398129:
void f(unsigned u) { if(u < 0) ... }
** Posted from http://www.teranews.com **

[Date Prev][Date Next][Thread Prev][Thread Next]
Author IndexDate IndexThread Index