Why do some programming languages ​​have several compilers and / or interpreters? What is the difference between a language and its implementation?
Is always "one language - one implementation" good? Explain what is the point of using different implementations for different tasks?

Closed due to the fact that the issue is too common for participants Vlad from Moscow , Denis , Harry , pavel , ixSci Nov. 18 '16 at 9:23 .

Please correct the question so that it describes the specific problem with sufficient detail to determine the appropriate answer. Do not ask a few questions at once. See “How to ask a good question?” For clarification. If the question can be reformulated according to the rules set out in the certificate , edit it .

  • I think the same, why and many manufacturers of cars. Or because a lot, for example, countries. technology appears, everyone begins to sharpen "for themselves." Someone adds something from himself. Some compiler optimizes memory. Someone better compiles a program to work on distributed systems. The result is one - machine code. And a lot of compilers depend most likely on the “popularity” of the language - Chubatiy
  • @Chubatiy, can you write this in response? - Sithell
  • Of course, a minute - Chubatiy
  • Do not quite understand what you mean by "a lot." For example, GCC for Windows, Linux and ARM - are they different compilers or the same? - AnT
  • one
    In fact, each compiler has its own language . It just may happen that several compilers have a large number of similarities in languages. These common features can be described, for example, in a standard. For example, standard C ++. Compilers whose languages ​​have all the features of C ++ are C ++ compilers. Although there are usually differences in their languages, they are beyond the scope of the C ++ standard: not defined / specified by the standard or impaired. And these details can open other, non-standard features, or give programs special characteristics (small size, work with other architectures, etc.). - D-side

1 answer 1

I think the same, why and many manufacturers of cars.

Or because a lot, for example, countries.

The technology appears, everyone starts to sharpen "under him".

Someone adds something from himself.

Some compiler optimizes memory. Someone better compiles a program to work on distributed systems.

The result is one - machine code.

And a lot of compilers are likely to depend on the “popularity” of the language.

  • one
    For a number of languages, there are patent restrictions that allow anyone other than the owner to create their own compiler. - Chorkov
  • " Outcome one - machine code. " Not optional. More precisely, to say, machine code is a platform-dependent concept, so it’s difficult to say that the result is really one . On the web browser platform, for example, JavaScript can be read as machine code, and clang + emscripten compiles C ++ into JS. Such are the cases. - D-side