Are there any (possibly unpublished) attempts to formalize the Scala Language Specification?
I appreciate Scala (which I got to know about a year ago) very much for, both, its academic background and great suitability for practical use.
Being an enthusiast mathematician and software developer, I am heavily interested in a formal language reference complementing the available semi-formal verbal version.
... and I am willing to contribute myself to it as far as time permits it!
Although probably useful, what I do NOT mean by formalization of the language reference is
theoretic foundation of language aspects (e.g. type system)
refining/updating the available verbal version
formalization based on different ressources (e.g. in alignment with the reflection api)
...
In my intention, this formalization SHOULD instead
closely follow terminology and structure of the verbal version
thus provide the reader with – no more and no less – a locally self-contained formal translation of the verbal version without introducing different/additional concepts
be expressed in machine-processable syntax, preferably in Scala, in order to
prevent/detect terminological inconsistence or incompleteness
possibly build executable reference prototypes for severral language aspects (like type correctness, execution model etc.) based exclusively on information provided by the language specification
Apart from me, is there anybody else interested therein?
If so, I would be glad to cooperate in sharpening the ideas therefore and starting with first steps.
Regards
Andreas
Are there any (possibly unpublished) attempts to formalize the Scala Language Specification?
--
Regards
Andreas
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-languag...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
... and nobody else has stepped forward to do this.
... and nobody else has stepped forward to do this.
I don't think that's an accurate claim.
--
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-languag...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Care to elaborate? - Martin
... and nobody else has stepped forward to do this.
I don't think that's an accurate claim.Care to elaborate? - Martin
On Mon, Sep 23, 2013 at 5:23 AM, martin odersky <martin....@epfl.ch> wrote:
Care to elaborate? - Martin
It's nice to have my departure validated in such a timely fashion. If anyone was wondering why I'm leaving, maybe it's because martin can't hear a single word that he doesn't want to hear. Do you really have no idea what he means?"nobody else has stepped forward to do this" is code for "I will not allow anyone else to touch the specification for any reason under any circumstances no matter what effect this has on people who need an accurate specification for something real like implementing a scala compiler. I will ignore all pull requests, even for completely uncontroversial changes like spelling corrections. And somehow nobody else has stepped forward to perform major work on the specification."
I won't go collecting links where martin promises to update the spec after 2.9 is out, and then after 2.10 is out, and now I guess it's after some future version of scala is out which I'm sure my grandchildren will enjoy. It can all be googled, along with my periodic pleadings for something to be done about the spec.
What's important in order to save time as opposed to wasting it is that such changes should go to the heart of the matter (i.e. the type system). I am less interested in things that are comparatively trivial (say lexical syntax), because I fear that would just create busywork.
To put this discussion on a more productive track, it would be good to get these pull requests again for things that got dropped.
-jason
--
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-languag...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Thanks for the pointer! In fact In was not at all aware of these (I unsubscribed from all github notifications, have to handle too much mail as it is). I merged or answered all open requests against the SLS now.
I do intend to change that at some point but did not have the time yet, and nobody else has stepped forward to do this. In fact my current priority is to get an experimental version of the Scala compiler done (code name "Dotty"), which corresponds closely to the DOT calculus (an early version of the latter was published in FOOL 12). I believe this calculus and compiler could be a better basis for a formal spec. But it will take at least some more months to finish.
On Monday, September 23, 2013 7:11:00 PM UTC+8, martin wrote:I do intend to change that at some point but did not have the time yet, and nobody else has stepped forward to do this. In fact my current priority is to get an experimental version of the Scala compiler done (code name "Dotty"), which corresponds closely to the DOT calculus (an early version of the latter was published in FOOL 12). I believe this calculus and compiler could be a better basis for a formal spec. But it will take at least some more months to finish.Some links on that DOT roadmap:
Any news on this?
--
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to scala-languag...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
All but one of your pull requests are merged now. The single one which needs further refinement is the treatment of arrays. Thanks a lot for your careful work, Simon!
Are you using ScalaC as the backend or is it an independent implementation?
Hi Suminda,
may I kindly refer you our publications on the matter:
* We described the basic design and implementation strategy of the Sugar* families in our OOPSLA’11 paper [1].
* How to implement extensibility for other languages than Java is described in our GPCE’13 paper [2].
* The Scala flavour of Sugar* works just the same as SugarJ, SugarHaskell, etc. You can find the definition of SugarScala here: [3]
We are actively working on SugarScala and it appears functional. We have built relatively small case studies, but not language extensions for large applications.
Currently we work on integrating syntactic extensibility in the style of SugarScala into the Scala compiler directly.. Note however that this is in a very early stage and will take more time to become usable.
Hope this helps, and let me know if something comes up,
Sebastian
[1] http://erdweg.org/publications/sugarj.pdf
[2] http://erdweg.org/publications/language-extensibility-framework.pdf
[3] https://github.com/fjak/lang-scala
The initial discussion that started this thread is