Continuing the series of ECOOP talk videos, here’s a talk that actually mentions Grace (if you stick with it).
Over the last week, several of the Grace project people were at the ECOOP and Curry On conferences in Rome and gave a few talks that were recorded. Here’s the first one:
Grace will be around in various ways at the ECOOP 2016 conference in Rome in July.
We’ve just heard that Tim Jones will be presenting at technical paper on inheritance design, which includes a models of Grace’s inheritance.
ECOOP is also hosting a workshop on GRACE (and similar language designs). The workshop is interested in short research papers, position papers, and tool demonstrations in areas such as:
- experience implementing Grace
- critiques and feedback on the Grace specification
- proposed extensions to Grace
- lessons that Grace may take from other related language projects (such as Pyret, Racket, BlueJ, Wyvern, Stride,TouchDevelop, TrumpScript etc)
- lessons that Grace may take from language workbench implementation tools
particularly given the recent Draft Grace Language Specification
Expressions of interest to submit position papers or make presentations should be emailed to the organisers.
The Grace project team is delighted to announce that we have released the Grace Language Specification Draft Version 0.7.0 for public comment at gracelang.org. The core language specification is accompanied by a draft description of the standard prelude and key modules.
|grace-spec-0.7.0.pdf||Grace Draft Language Specification 0.7.0 (pdf)|
|grace-spec-0.7.0.html||Grace Draft Language Specification 0.7.0 (html)|
|grace-prelude-0.7.0.pdf||Grace Draft Standard Prelude 0.7.0 (pdf)|
|grace-prelude-0.7.0.html||Grace Draft Standard Prelude 0.7.0 (html)|
This specification is very much a draft. We expect the specification itself, and the langauge described by the specification, to continue to change as we work towards a stable version of the language — indeed, we hope that this evolution will be driven by the comments on this and subsequent drafts.
The specification drafts are supported by several implementations (minigrace, Kernan, and Hopper, also available at gracelang.org) none of which implement the full specification at the time of writing. We know these implementations are prototypes, which is why we are primarily interested in feedback on the language specification.
You can give us feedback in a range of ways: by commenting here; by emailling email@example.com; or by joining the
Grace community. We look forwards to hearing from you.
The Grace 0.7.0 specification replaces the use of angle brackets for generic type arguments
Foo<o> with double square brackets:
This change only affects the syntax of the language, not the semantics. Generic arguments remain optional, and if not supplied have the
The reasons for this change are to make Grace programs easier to read (for people) and to parse (for programs). Using the old syntax, for example, code such as:
1 run(a < B, C > (1))
could call a one-argument method
run passing the result of a generic call
a<B,C>(1), or it could call the two-argument method
run, with arguments
The new syntax resolves these cases clearly. Compare:
1 run(a[[B, C]](1)) // generic invocation of a
1 run(a < B, C > (1)) // two comparisons.
At the time of this post, no Grace implementation supports this new syntax.