I'm concerned that section 2.2.1 is a misreading of Pereira et al.
[29] "… the performance of a language is influenced by the quality of its compiler, virtual machine, garbage collector, available libraries, etc."
In that context it seems plain that "language" must be understood as a shortening of "language implementation."
> "For instance, Pereira et al. treat Ruby and JRuby as different languages, while they are in fact two separate implementations of the same Ruby language."
It seems to me that Pereira et al. treat Ruby and JRuby as different "language implementations" and compare each one independently against the other language implementations.
(In the "corpus of small benchmark implementations" it was simply convenient to keep separate programs for Ruby and JRuby.)
Those papers say "language" over and over again, in the titles, in the body of the text. That work confounds languages and their implementations, and make it sound like there is a one-to-one connection between the two (of course, there is not necessarily such a correspondence).
With respect to Ruby vs. JRuby: my student just checked and verified that some but not all of the benchmarks are implemented differently (k-nucleotide, mandelbrot, pidigits, spectral-norm).
I'm concerned that section 2.2.1 is a misreading of Pereira et al.
[29] "… the performance of a language is influenced by the quality of its compiler, virtual machine, garbage collector, available libraries, etc."
In that context it seems plain that "language" must be understood as a shortening of "language implementation."
> "For instance, Pereira et al. treat Ruby and JRuby as different languages, while they are in fact two separate implementations of the same Ruby language."
It seems to me that Pereira et al. treat Ruby and JRuby as different "language implementations" and compare each one independently against the other language implementations.
(In the "corpus of small benchmark implementations" it was simply convenient to keep separate programs for Ruby and JRuby.)