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