ETSI's Bug Tracker - Part 01: TTCN-3 Core Language
View Issue Details

ID | Project | Category | View Status | Date Submitted | Last Update
0006622 | Part 01: TTCN-3 Core Language | New Feature | public | 07-10-2013 11:06 | 07-02-2014 06:40

Reporter | Jacob Wieland - Spirent |
Assigned To | Gyorgy Rethy |
Priority | high | Severity | major | Reproducibility | N/A
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version |  |
Target Version | v4.6.1 (published 2014-06) | Fixed in Version | v4.6.1 (published 2014-06) |
Clause Reference(s) | A.1.5
Source (company - Author) | Testing Technologies - Jacob Wieland

Summary | 0006622: Introduce special reserved words to avoid future additional keyword problems

Description

In the past, an existing concept in TTCN-3 has been enlarged or given an additional semantics by adding specific syntax or keywords.
This often lead to backward incompatibilities as every new keyword cannot be used as an identifier and therefore all such identifiers in older test suites need to be renamed if they shall be used in a module from the newer language version.
Also, the optional TTCN-3 packages often need to introduce new keywords which - because of their optionality - makes the situation even more complicated.
To alleviate these problems in the future while maintaining/achieving high readability of the language, the concept of special reserved word shall be introduced that works like a keyword but does not clash with an identifier.
The syntax/usage and semantics of each such special reserved word shall still be specified in either the core language or the language package that introduces the it.
The lexical syntax of a special reserved word shall be the @-symbol followed by a sequence of letters, numbers or underscores starting with a letter. This sequence must not be restricted any further other than to avoid clashes between special reserved words. Therefore, the TTCN-3 maintenance must in the future take heed of possible special-reserved-word-clashes whenever a new special reserved word is to be introduced.

Steps To Reproduce |
Additional Information |
Tags | No tags attached.
Relationships |

Attached Files

CR6622.doc (173,568) 09-10-2013 09:46
http://oldforge.etsi.org/mantis/file_download.php?file_id=2903&type=bug
CR6622_v2.doc (174,592) 10-10-2013 13:50
http://oldforge.etsi.org/mantis/file_download.php?file_id=2921&type=bug
CR6622_resolution_v3.doc (176,128) 11-10-2013 13:41
http://oldforge.etsi.org/mantis/file_download.php?file_id=2929&type=bug
CR6622_resolution_v4.doc (177,664) 29-11-2013 09:55
http://oldforge.etsi.org/mantis/file_download.php?file_id=2959&type=bug

Issue History
Date Modified | Username | Field | Change
07-10-2013 11:06 | Jacob Wieland - Spirent | New Issue |
07-10-2013 11:06 | Jacob Wieland - Spirent | Clause Reference(s) | => Core Language - Section 28
07-10-2013 11:06 | Jacob Wieland - Spirent | Source (company - Author) | => Testing Technologies - Jacob Wieland
07-10-2013 11:07 | Jacob Wieland - Spirent | Status | new => assigned
07-10-2013 11:07 | Jacob Wieland - Spirent | Assigned To | => Jacob Wieland - Spirent
07-10-2013 11:59 | Gyorgy Rethy | Project | TTCN-3 Change Requests => Part 01: TTCN-3 Core Language
07-10-2013 11:59 | Gyorgy Rethy | Target Version | => v4.6.1 (published 2014-06)
07-10-2013 12:04 | Gyorgy Rethy | Note Added: 0011678 |
08-10-2013 14:26 | Jacob Wieland - Spirent | Clause Reference(s) | Core Language - Section 28 => A.1.5
08-10-2013 14:26 | Jacob Wieland - Spirent | Summary | Introduce modifiers to avoid future additional keyword problems => Introduce special reserved words to avoid future additional keyword problems
08-10-2013 14:26 | Jacob Wieland - Spirent | Description Updated |
09-10-2013 09:46 | Jacob Wieland - Spirent | File Added: CR6622.doc |
09-10-2013 09:47 | Jacob Wieland - Spirent | Note Added: 0011718 |
09-10-2013 09:47 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Gyorgy Rethy
09-10-2013 09:47 | Jacob Wieland - Spirent | Status | assigned => confirmed
10-10-2013 10:21 | Gyorgy Rethy | Note Added: 0011746 |
10-10-2013 10:22 | Gyorgy Rethy | Assigned To | Gyorgy Rethy => Jacob Wieland - Spirent
10-10-2013 10:22 | Gyorgy Rethy | Status | confirmed => assigned
10-10-2013 13:43 | Jacob Wieland - Spirent | Note Added: 0011754 |
10-10-2013 13:46 | Jacob Wieland - Spirent | Note Added: 0011755 |
10-10-2013 13:50 | Jacob Wieland - Spirent | File Added: CR6622_v2.doc |
10-10-2013 13:50 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Gyorgy Rethy
10-10-2013 13:50 | Jacob Wieland - Spirent | Status | assigned => confirmed
11-10-2013 13:38 | Gyorgy Rethy | File Added: CR6622_v3.doc |
11-10-2013 13:40 | Gyorgy Rethy | Note Added: 0011779 |
11-10-2013 13:40 | Gyorgy Rethy | Assigned To | Gyorgy Rethy => Jacob Wieland - Spirent
11-10-2013 13:40 | Gyorgy Rethy | Status | confirmed => assigned
11-10-2013 13:41 | Gyorgy Rethy | Note Edited: 0011779 |
11-10-2013 13:41 | Gyorgy Rethy | File Deleted: CR6622_v3.doc |
11-10-2013 13:41 | Gyorgy Rethy | File Added: CR6622_resolution_v3.doc |
11-10-2013 14:03 | Jacob Wieland - Spirent | Note Added: 0011781 |
11-10-2013 17:09 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Gyorgy Rethy
11-10-2013 17:09 | Jacob Wieland - Spirent | Status | assigned => confirmed
23-11-2013 10:20 | Gyorgy Rethy | Note Added: 0011820 |
23-11-2013 10:21 | Gyorgy Rethy | Assigned To | Gyorgy Rethy => Jacob Wieland - Spirent
23-11-2013 10:21 | Gyorgy Rethy | Status | confirmed => assigned
25-11-2013 13:01 | Jacob Wieland - Spirent | Note Added: 0011825 |
26-11-2013 14:46 | Jacob Wieland - Spirent | Note Added: 0011835 |
26-11-2013 14:47 | Jacob Wieland - Spirent | Note Added: 0011836 |
26-11-2013 14:47 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Ina Schieferdecker
26-11-2013 14:47 | Jacob Wieland - Spirent | Status | assigned => confirmed
29-11-2013 09:55 | Ina Schieferdecker | File Added: CR6622_resolution_v4.doc |
29-11-2013 09:56 | Ina Schieferdecker | Note Added: 0011862 |
29-11-2013 09:56 | Ina Schieferdecker | Assigned To | Ina Schieferdecker => Gyorgy Rethy
29-11-2013 09:56 | Ina Schieferdecker | Resolution | open => fixed
29-11-2013 10:53 | Jacob Wieland - Spirent | Note Added: 0011863 |
07-02-2014 05:40 | Ina Schieferdecker | Note Added: 0011922 |
07-02-2014 05:40 | Ina Schieferdecker | Status | confirmed => closed
07-02-2014 05:40 | Ina Schieferdecker | Fixed in Version | => v4.6.1 (published 2014-06)
07-02-2014 06:40 | Ina Schieferdecker | Note Added: 0011924 |

Notes

(0011678)
Gyorgy Rethy
07-10-2013 12:04

Hi Jacob, just an editorial note; I can see the clause reference in the CR is 28. I propose to add this stuff to a new clause 5.6, as the mechanism will be used later on throughout the standard.

(0011718)
Jacob Wieland - Spirent
09-10-2013 09:47

I have now simply added a new paragraph and table to the TTCN-3 terminals section in annex A which is where the other terminals are also introduced (and therefore the right place, I think).

(0011746)
Gyorgy Rethy
10-10-2013 10:21

Text has to be added to clause 5.1 instead. The modifiers are not necessary followed by identifiers, in most cases the opposite: [private] @fuzz template ... function MyFunc (in @lazy integer p_i) {...}

(0011754)
Jacob Wieland - Spirent
10-10-2013 13:43

No, I think there is a misunderstanding on your part. the @-symbol (just the character '@') is followed by what is defined as an identifier (i.e. a sequence of letters, digits and underscores beginning with a letter). Such a special reserved word can be used anywhere by the grammar.

(0011755)
Jacob Wieland - Spirent
10-10-2013 13:46

Originally I had added a sentence to 5.1, but I seem to have accidentally deleted it. Maybe I'll find it again.

(0011779)
Gyorgy Rethy
11-10-2013 13:40 (edited on: 11-10-2013 13:41)

I meant this: see in CR6622_resolution_v3.doc

(0011781)
Jacob Wieland - Spirent
11-10-2013 14:03

Why limit ourselves in that way? Why can these keywords not be used for other purposes as well? Of course, we should still only add them if absolutely necessary, but I don't see a reason why this idea can not be used more generally other than for modifiers?

(0011820)
Gyorgy Rethy
23-11-2013 10:20

They can be used later, for other "special" purpose too, if we decide so. But to write a concrete text we need a concrete concept. At the moment the modifier concept is in our heads (that was discussed and agreed earlier) that can be extended later.
I think, the language shall remain consistent in the sense that no@-keywords and @-special-words shall not be mixed. I.e. @identifier words shall be used for special purposes only - like the modifiers - on the long term. Of course, we can use a better (English) word for the special words than "modifiers" in the standard's text, but in this case we need to explain the "modifier meaning" of the @lazy and the @fuzz. If you have a proposal, come forward with it.

(0011825)
Jacob Wieland - Spirent
25-11-2013 13:01

Okay, what you are getting at that these specific special reserved words play the role of modifiers and thus should also be called modifiers in the respective sections that introduce them. I have no problem with that. In the general section introducing the terminal symbols, I would still use a more general term, though, so as not to limit ourselves in the future.

(0011835)
Jacob Wieland - Spirent
26-11-2013 14:46

So, my original proposal (CR6622_v2.doc) stands: in general, when describing the TTCN-3 terminal symbols, call them special TTCN-3 keywords - no semantics is involved, it's just technical. And when such keywords are used as modifiers by some language construct, call them modifiers (in the other proposals).

(0011836)
Jacob Wieland - Spirent
26-11-2013 14:47

Please review and give feedback, if any.

(0011862)
Ina Schieferdecker
29-11-2013 09:56

Please check v4

(0011863)
Jacob Wieland - Spirent
29-11-2013 10:53

you're mixing the lexical and the semantic levels.
Yes, on the semantic level, some of these special keywords can be used like modifiers for existing constructions, but, they could be used for other purposes as well, so already calling them modifiers on the lexical level (which is what these sections describe) is simply wrong.
Thus, all things that have to do with modifiers should be removed from these sections. If you really want to introduce the concept of modifiers, there should be an own section introduced somewhere (at the moment I have no idea where) which describes what a modifier is, where it should normally placed and that they can be freely combined in any order (which is something to do with the syntactical level, not the lexical one).
Maybe the term modifier should simply be defined in the definitions section, so that it later can be used in the text for keywords that play the role of modifiers (the keyword realtime, for instance, is also a modifier for port types).

(0011922)
Ina Schieferdecker
07-02-2014 05:40

Implemented as proposed in v4

(0011924)
Ina Schieferdecker
07-02-2014 06:40

@deterministic to be kept because of CR on deterministic functions!