Procedure for Proposed Language Changes - abstools/abstools Wiki

Procedure for Proposed Language Changes

It is often the case that a user or tool implementor wants to see / implement a change in the ABS language. Since we the language community of ABS are very diverse in our interests (static analysis vs simulation, modeling vs programming, etc.), such changes can have impact that the submitter of the proposal cannot foresee.

To make changes to the language in a transparent and inclusive way, all proposals should be written up following a common structure. The template is inspired by the issue write-ups of ANSI X3J13 (see http://www.lispworks.com/documentation/HyperSpec/Front/X3J13Iss.htm; see http://www.lispworks.com/documentation/HyperSpec/Issues/iss010_w.htm for an example).

All change proposals should have a page in this wiki whose title starts with “Proposal”. The following sections should be present. The proposal should be discussed on the abs-dev mailing list as before; missing information in the sections should be completed during discussion and the proposal page should be kept up-to-date.

Template for Proposed Language Change

Problem Description
A description of the problem the proposal tries to solve. Should not describe the solution to the problem.
Proposal
The technical description of the proposed change.
Example
(optional) A larger example of the proposed feature in use.
Rationale
Discussion of both why the problem is relevant, why the proposal solves it, why alternative proposals will not solve it. The previous sections should be matter-of-fact, this section contains discussion.
Current Practice
(optional) If the problem addressed by the proposal is currently solved in some other albeit undesirable way, describe it here.
Cost to implementors
Describes the cost of adopting the proposal, split by categories:
Front end
Cost of implementing the proposal in parsing, pre-processing, type-checking, adaptation of the AST, etc.
Simulation back-ends
Cost of implementing the proposal in the Erlang, Maude, Java, … back-ends.
Tools
Cost of implementing the proposal in SACO, SYCO, KeY-ABS, …
Cost to Users
Describes the cost of adopting the proposal for end users (mainly incompatible changes to the language)
Cost of Non-Adoption
Describes the cost of remaining at the status quo
⚠️ **GitHub.com Fallback** ⚠️