From: Tony Arcieri Date: 2012-03-24T13:17:47+09:00 Subject: Re: Specification for the Ruby Language(current) --00151747637a4b14ac04bbf56cf5 Content-Type: text/plain; charset=ISO-8859-1 My understanding is the existing formal written language specification covers both Ruby 1.8 and Ruby 1.9, and in doing so is often too generic as to be useful in order to cover both cases. That is to say, where 1.8 and 1.9 differ, the written spec says something that is inclusive of both, but perhaps too generic to be meaningful as a language implementer. Again, your best bet here is going to be RubySpec, which actually includes specific tests for both versions. On Fri, Mar 23, 2012 at 8:03 PM, Carter Cheng wrote: > Thanks Tony. I was wondering if there was some official language > specification out there for the 1.9 series with either an operational or > denotational semantic description or something of that ilk. > > > On Sat, Mar 24, 2012 at 10:36 AM, Tony Arcieri wrote: > >> No, the Ruby language's specification is laboriously written by hand: >> >> >> http://www.ipa.go.jp/osc/english/ruby/ruby_draft_specification_agreement.html >> >> A language specification contains much more than just the grammar, it >> also contains a formal description of the behavior of the language (i.e. >> its semantics) as well. >> >> Personally I find the RubySpec code examples much more useful than a >> formal description of the language. >> >> On Fri, Mar 23, 2012 at 6:51 PM, Carter Cheng wrote: >> >>> Hi Tony, >>> >>> It would seem to me that both are needed since a programmer would have >>> difficulty referring to a non-text specification. Is the specification >>> autogenerated from the context free grammar? I am rather unfamiliar with >>> the notion of an executable spec. >>> >>> Regards, >>> >>> Carter. >>> >>> >>> On Sat, Mar 24, 2012 at 9:30 AM, Tony Arcieri wrote: >>> >>>> It's impossible to know if a language conforms to an on-paper >>>> specification, because an on-paper specification is on-paper and therefore >>>> can't provide any way to check that a given implementation matches what has >>>> been written down. >>>> >>>> In order to do that sort of automatic checking, you need an executable >>>> specification of the language, which is what RubySpec provides: >>>> >>>> http://rubyspec.org/ >>>> >>>> In my opinion, this makes RubySpec a lot more useful than an on-paper >>>> specification, which relies on end user feedback as they discover parts of >>>> an implementation that don't match what's written down. An executable >>>> specification can automatically tell you if you conform to it on a whim. >>>> >>>> >>>> On Fri, Mar 23, 2012 at 6:20 PM, Carter Cheng wrote: >>>> >>>>> Hello, >>>>> >>>>> I have been wondering if there has been some updates since the >>>>> publication of the book by Flanagan and Matsumoto? I am curious how much I >>>>> can expect JRuby, CRuby etc. to still conform to this description? Is there >>>>> some sort of specification out there (similar to the Self specification or >>>>> the Scheme rnrs)? >>>>> >>>>> >>>>> >>>>> Regards, >>>>> >>>>> Carter. >>>>> >>>> >>>> >>>> >>>> -- >>>> Tony Arcieri >>>> >>>> >>> >> >> >> -- >> Tony Arcieri >> >> > -- Tony Arcieri --00151747637a4b14ac04bbf56cf5 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable My understanding is the existing formal written language specification cove= rs both Ruby 1.8 and Ruby 1.9, and in doing so is often too generic as to b= e useful in order to cover both cases. That is to say, where 1.8 and 1.9 di= ffer, the written spec says something that is inclusive of both, but perhap= s too generic to be meaningful as a language implementer.

Again, your best bet here is going to be RubySpec, which act= ually includes specific tests for both versions.

On Fri, Mar 23, 2012 at 8:03 PM, Carter Cheng <= ;cartercheng@gmail.com> wrote:
Thanks Tony. I was wondering if there was so= me official language specification out there for the 1.9 series with either= an operational or denotational semantic description or something of that i= lk.=A0


On Sat, Mar 24, 2012 at 10:36 AM, Tony Arcieri <tony.arcieri@gmail.co= m> wrote:
No, the Ruby language's specification is laboriously written by hand:

A language specification contains much more than just t= he grammar, it also contains a formal description of the behavior of the la= nguage (i.e. its semantics) as well.

Personally I = find the RubySpec code examples much more useful than a formal description = of the language.

On Fri, Mar 23, 2012 at 6:51 = PM, Carter Cheng <cartercheng@gmail.com> wrote:
Hi Tony,

It would seem to me that both are needed since = a programmer would have difficulty referring to a non-text specification. I= s the specification autogenerated from the context free grammar? I am rathe= r unfamiliar with the notion of an executable spec.

Regards,

Carter.

=
On Sat, Mar 24, 2012 at 9:30 AM, Tony Arcier= i <tony.arcieri@gmail.com> wrote:
It's impossible to know if a language co= nforms to an on-paper specification, because an on-paper specification is o= n-paper and therefore can't provide any way to check that a given imple= mentation matches what has been written down.

In order to do that sort of automatic checking, you need an = executable specification of the language, which is what RubySpec provides:<= /div>


In my opinion, this makes RubySpec a lot more useful th= an an on-paper specification, which relies on end user feedback as they dis= cover parts of an implementation that don't match what's written do= wn. An executable specification can automatically tell you if you conform t= o it on a whim.


On Fri, Mar 23, 2012 at 6:20 PM, Carter Chen= g <cartercheng@gmail.com> wrote:
Hello,

I have been wondering if there has been som= e updates since the publication of the book by Flanagan and Matsumoto? I am= curious how much I can expect JRuby, CRuby etc. to still conform to this d= escription? Is there some sort of specification out there (similar to the S= elf specification or the Scheme rnrs)?



Regards,

Ca= rter.



<= font color=3D"#888888">--
Tony Arcieri





<= font color=3D"#888888">--
Tony Arcieri





--
= Tony Arcieri

--00151747637a4b14ac04bbf56cf5--