What is ML?

ML is a programming language originally developed at the University of Edinburgh around twenty years ago. There are now two variants: Standard ML (also known as SML), which has a formal definition most recently revised in 1997, and O'Caml, developed at INRIA in Paris.

What is ML like?

ML is a high-level language that abstracts away from the machine so that the programmer doesn't have to worry about low-level details like memory management, data representation and pointer chasing. It therefore has advantages of increased productivity, clearer and more maintainable code, and fewer errors. Its features include:

  Static type checking and type inference
  Garbage collection
  Exception handling
  Parameterized types and parametric polymorphism
  Recursive datatypes and pattern matching
  Mutable references
  First-class functions
   Sophisticated module system with parameterized modules

What is ML good for?

ML is particularly good for language-processing, hence its widespread use amongst the research community in compilers, interpreters, program analysis tools, theorem provers and formal verifiers. But the advantages listed above make it useful for many applications.

What is SML.NET?

SML.NET is a Standard ML compiler developed at Microsoft Research Cambridge that targets the .NET Common Language Runtime (CLR). It's very easy to use: tell it where your source code lives, give it the name of a "root" structure, and it produces an assembler file which it then runs through the CLR assembler to produce an executable or DLL. The code that it produces is verifiable.

What is F#?

F# is a variant of ML with a core language akin to that of the OCaml programming language. F# runs on top of the .NET Framework and in many ways the language is designed to be an "ML that fits with .NET". F# includes extensions for working across languages, and the aim is to have it work together seamlessly with C#, COmega, Visual Basic, SML.NET and other .NET programming languages and tools. It is the first ML language where all the types and values in an ML program can be accessed from some significant object-oriented imperative languages (e.g. C#) in a predictable and (reasonably) friendly way.

posted on 2004-12-13 09:53  Laser.NET  阅读(1697)  评论(6编辑  收藏  举报
无觅相关文章插件,快速提升流量