lawrencecpaulson / lawrencecpaulson.github.io

the blog "Machine Logic"
13 stars 0 forks source link

https://lawrencecpaulson.github.io/2022/10/05/Standard_ML.html #22

Open utterances-bot opened 2 years ago

utterances-bot commented 2 years ago

Memories: Edinburgh ML to Standard ML

https://lawrencecpaulson.github.io/2022/10/05/Standard_ML.html

YawarRaza7349 commented 2 years ago

people no longer see the point of distinguishing between a programming language and its implementation

What makes you say that?

lawrencecpaulson commented 1 year ago

Perhaps I was being overly negative. However, Perl and PHP appear in practice to be based on a single implementation, just as OCaml is. Fortunately, the great majority of programming languages in use have been specified first and implemented (multiple times) afterwards.

gabriel-fallen commented 1 year ago

@YawarRaza7349

people no longer see the point of distinguishing between a programming language and its implementation

What makes you say that?

Unfortunately that's simply the current state of affairs for the most part. As a point of reference...

Pretty popular languages defined by single implementation: Perl, Python, PHP, Ruby.

ECMA spec for C# is irrevocably outdated so effectively the language is defined by the main and almost the only implementation. The same goes for Haskell.

Java is somewhat borderland: on one hand it doesn't have a formal standard at all, on the other hand it features comprehensive specification and conformance tests, thus indeed we have several independent implementations. Though it seems to me lately pretty much all major implementations are either directly based upon or draw heavily from the OpenJDK codebase.

Rust presents another case: despite having mostly complete spec and extensive description of various features in the form of RFCs it's effectively defined by one LLVM-based implementation, and people struggle for several years to port it on top of GCC pipeline.

Again one can argue that Rust shows people care about several implementations, but to a large part it stems for the requirement to have several in the area of High-Assurance Systems, where some people want and strive to apply Rust.