Liberty language specification

cadrian edited this page Sep 13, 2010 · 11 revisions

Liberty is an heir of SmartEiffel. Its syntax is a superset of SmartEiffel’s with the following additions:

  • require then
  • generic creation
    (Paolo 2009-09-16) Is it perhaps something like
    “class FOO[X] ….. feature process is local x: X do create x end ….”?
    TODO: provide examples and rationale behind it, pro and cons.

  • generic inheritance
    (Paolo 2009-09-16) > AFAIK this is “class FOO[X] inherit X”.
    TODO: provide examples and rationale behind it, pro and cons.

  • type conversion
  • non-Void
  • inline agents are real closures
  • simplified (but sound) SCOOP

The syntax of the language is defined in EIFFEL_GRAMMAR. Its textual representation will use the YEPP syntax1.

System architecture

Classes structure

Contracts

Types

Genericity

Objects, values, entities

Feature call

1 YEPP is currently available from the Enterprise SmartEiffel but will be included in Liberty.