Links
Signal Processing
Wavelets, Multiscale, Multiresolution, Fractional
Phenomena
Wavelet.Org
(Lucent Technologies: Bell Labs Innovations: Mathematical Sciences
Research)
Programming
Functional Programming
Meta Language (ML) (C++ - like static semantics, without C++ style
polymorphism, except template-like “parametric” polymorphism,
modules and functors instead of classes, cleaner syntax, etc.)
Evolved from Scheme, which evolved from Lisp. Especially nice are Hindley-Milner-like
static types, together with type-inferencing. These make SML source nice to read or write.
SML (Standard Meta Language) and Objective Caml have been the most used ML
dialects. SML97 is a mature, stable computer language for symbolic
calculations. It has a formal, published syntax specification, just
as Pascal programs do. As SML has gone as far as it can go without
redesign. The new effort is currently being called Successor ML.
Standard ML
of New Jersey (Bell Labs) Dr. Dave McQueen, SML principal at
Bell Labs had had an office next to Bjarne Stroustrup for 10 years
when this author discussed the languages with Stroustroup.
MLton An open-source,
whole-program, optimizing Standard ML compiler. Highly efficient run
time and follows the published reference for SML97, especially
"Vector." As of August 26, 2007, MLton is available for 64 bits.
Moscow ML
(Keldysh Institute of Applied Mathematics, Moscow, Cambridge U, IT
University of Copenhagen and Royal Veterinary and Agricultural
University, Copenhagen, Denmark) A light-weight implementation of
SML97, version 2.01 implements the full SML97 language, including SML
Modules, and much of the SML Basis Library. For what is implemented,
it follows the published reference for SML97, especially "Vector."
Poly/ML (PolyML.Org)
(formerly sold by Abstract, Inc., now free software) It is unclear to
what degree version 5.3 actually follows the published reference for
SML97, especially "Vector." However, it continues to improve, being a
true 64 bit version.
HaMLet is a
reference implementation of SML97. HaMLet S incorporates proposals
for Successor ML (sML). It represents a testbed and sort of a
personal vision of what sML might become.
Alice ML (Saarland
University) A functional programming language based on Standard ML,
extended with rich support for concurrent, distributed, and
constraint programming, Alice ML is very useful on an MS Windows
desktop.
Objective CAML,
Objective Caml, OCaml, Ocaml, Caml (INRIA, France) This is probably
near the form that Successor ML will take. In a pun, CAML represented
the Categorical Abstract Machine Language and also represented Meta
Language. Objective Caml has less English documentation than SML97
and depends on SML97 for documentation. Objective Caml is a gift of
the French people. It is probably the most popular ML dialect and has
the most contributions, including constraint programming.
Objective Caml is well documented at this time.
F#
(Pronounced F sharp, Microsoft Research) A Microsoft .Net programming
language. Takes it cue from Objective Caml. Not free for commercial use. To
quote Microsoft, "F# is a succinct, type-inferred, expressive, efficient
typed functional and object-oriented language for the .NET platform."
Haskell (see Haskell.org)
Haskell is nearly as fully declarative as symbolic mathematics with
pencil and paper. Haskell evolved from SML. Microsoft Corporation has
hired many of the Haskell principals. Haskell is an open source
language.
Erlang (see Erlang.org)
Erlang was designed as a network language. Erlang has dynamic types, is extremely
fast and uses message passing for parallelism. Erlang is an open source
language.
R (see The R Project for Statistical Computing)
R has extensive statistical packages and can easily produce Tex documents. R is
used extensively in molecular Biology. R is an open source language.
Logic Programming
Maude (SRI, International
and University of Illinois at Champagne-Urbana) A Rewriting Logic
system
Procedural Programming
Perl (CPAN - Compremensive Perl Archiving
Network) Perl has much in common with Scheme, including a functional subset and
dynamic types. Perl, however, is a context-dependent language with powerful
regular expression capabilities built-in. This might be a good direction for
Successor ML, keeping Hindley-Milner-like types and type inferencing.
Perl is widely used on the Internet, in DNA sequencing for Molecular Biology
and in database processing. Perl is yet another open source language.
Return to Effective Information's
home page.
Last modified: November 11, 2009