<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<link rel="stylesheet" type="text/css" href="http://oldforge.etsi.org/mantis/css/default.css" />
	<script type="text/javascript"><!--
		if(document.layers) {document.write("<style>td{padding:0px;}<\/style>")}
	// --></script>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
	<meta http-equiv="Pragma" content="no-cache" />
	<meta http-equiv="Cache-Control" content="no-cache" />
	<meta http-equiv="Pragma-directive" content="no-cache" />
	<meta http-equiv="Cache-Directive" content="no-cache" />
	<meta http-equiv="Expires" content="Tue, 17 Dec 2024 09:20:39 GMT" />
	<link rel="shortcut icon" href="/mantis/images/favicon.ico" type="image/x-icon" />
	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Text Search" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=text" />	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Issue Id" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=id" />	<title>0000416: Passing omit to value formal parameters - ETSI's Bug Tracker</title>
<script type="text/javascript" src="/mantis/javascript/min/common.js"></script>
<script type="text/javascript">var loading_lang = "Loading...";</script><script type="text/javascript" src="/mantis/javascript/min/ajax.js"></script>
</head>
<body>
<br /><table class="width100" cellspacing="1"><tr><td class="form-title" colspan="6"><div class="center">ETSI's Bug Tracker - Part 01: TTCN-3 Core Language</div></td></tr><tr><td class="form-title" colspan="6">View Issue Details</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print-category"><td class="print" width="16%">ID</td><td class="print" width="16%">Project</td><td class="print" width="16%">Category</td><td class="print" width="16%">View Status</td><td class="print" width="16%">Date Submitted</td><td class="print" width="16%">Last Update</td></tr><tr class="print"><td class="print">0000416</td><td class="print">Part 01: TTCN-3 Core Language</td><td class="print">Clarification</td><td class="print">public</td><td class="print">24-11-2006 14:34</td><td class="print">12-03-2008 10:24</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Reporter</td><td class="print">Stephan Schulz</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Assigned To</td><td class="print">Ina Schieferdecker</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Priority</td><td class="print">high</td><td class="print-category">Severity</td><td class="print">block</td><td class="print-category">Reproducibility</td><td class="print">N/A</td></tr><tr class="print"><td class="print-category">Status</td><td class="print">closed</td><td class="print-category">Resolution</td><td class="print">fixed</td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Platform</td><td class="print"></td><td class="print-category">OS</td><td class="print"></td><td class="print-category">OS Version</td><td class="print"></td></tr><tr class="print"><td class="print-category">Product Version</td><td class="print">v3.1.1 (published 2005-06)</td><td class="print" colspan="4">&#160;</td></tr><tr><td class="print-category">Target Version</td><td class="print">v3.3.2  (published 2008-04)</td><td class="print-category">Fixed in Version</td><td class="print">v3.3.2  (published 2008-04)</td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Clause Reference(s)</td><td class="print" colspan="4">-</td></tr><tr class="print"><td class="print-category">Source  (company  - Author)</td><td class="print" colspan="4">dr. György Réthy, Ericsson</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Summary</td><td class="print" colspan="5">0000416: Passing omit to value formal parameters</td></tr><tr class="print"><td class="print-category">Description</td><td class="print" colspan="5">The TTCN-3 standard today does not defines the term &quot;value&quot;. In common sense value means &quot;In computer science, a value may be a number, literal string, array and anything that can be treated as if it were a number. ... The exact definition varies across programming languages.&quot; (from the English Wikipedia, Value (computer science) item). &quot;Nothing&quot; is not a value, i.e. omit should not be considered as value in TTCN-3. This meaning is strengthened by the TTCN-3 standard, where omit is mentioned as a matching mechanism (though it can also be PART of a value, i.e. assigned to optional fields. Titan follows this approach and allows to pass real specific values to value parameters only but not omit. This provides a big advantage: it is sufficient to check the &quot;value&quot; of a value formal parameter when it is passed, no need for subsequent checks when it is used e.g. in expressions.<br />
However, in many cases it would be useful to allow formal parameters accepting specific values and omit, e.g. when this parameter is passed to optional template fields in sending operations.<br />
</td></tr><tr class="print"><td class="print-category">Steps To Reproduce</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Additional Information</td><td class="print" colspan="5">It is proposed to make a distinction between value formal parameters allowing omit and not allowing omit in the TTCN-3 language.<br />
<br />
Formal parameters<br />
To denote that the special value omit is allowed for a value formal parameter, the optional keyword shall be used in the formal parameter list of test cases, functions, altsteps or templates. In the testcase/function/altstep the optional parameter can be compared with omit to determine if a concrete value has been provided or omit was given when calling it.<br />
Example code:<br />
function f_MyFunc1 (optional integer par)<br />
{<br />
&#160;&#160;&#160;if (par==omit) {  <br />
&#160;&#160;&#160;&#160;&#160;&#160;// omit was given for par<br />
&#160;&#160;&#160;} else {<br />
&#160;&#160;&#160;&#160;&#160;&#160;// value was provided for par<br />
&#160;&#160;&#160;}<br />
}<br />
The parameters with default value (see CR 406) and optional parameters are independent features. The user can combine the two features, <br />
Example code:<br />
function f_MyFunc2(optional integer par1, optional integer par2 := omit, integer par3 := 5 )<br />
{ ... }<br />
<br />
Actual parameters<br />
Optional value parameters may be called with a concrete value or with omit as actual parameter.<br />
Example code:<br />
f_MyFunc1(11);<br />
f_MyFunc1(omit);<br />
f_MyFunc2(omit); // par1 &amp; par2 will have the actual value omit,<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;// par3 will have the actual value 5<br />
<br />
</td></tr><tr class="print"><td class="print-category">Tags</td><td class="print" colspan="5">No tags attached.</td></tr><tr class="print"><td class="print-category">Relationships</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Attached Files</td><td class="print" colspan="5"><img src="http://oldforge.etsi.org/mantis/images/fileicons/zip.gif" alt="zip" />&#160;CR_416_v2.zip (890,821) <span class="italic">06-12-2007 11:51</span><br />http://oldforge.etsi.org/mantis/file_download.php?file_id=1234&amp;type=bug<br /><img src="http://oldforge.etsi.org/mantis/images/fileicons/zip.gif" alt="zip" />&#160;CR_416_v3.zip (885,232) <span class="italic">06-12-2007 17:01</span><br />http://oldforge.etsi.org/mantis/file_download.php?file_id=1242&amp;type=bug<br /><img src="http://oldforge.etsi.org/mantis/images/fileicons/zip.gif" alt="zip" />&#160;CR_416_v4.zip (869,220) <span class="italic">06-12-2007 17:43</span><br />http://oldforge.etsi.org/mantis/file_download.php?file_id=1245&amp;type=bug<br /><img src="http://oldforge.etsi.org/mantis/images/fileicons/zip.gif" alt="zip" />&#160;CR_416_v5.zip (886,077) <span class="italic">06-12-2007 18:30</span><br />http://oldforge.etsi.org/mantis/file_download.php?file_id=1247&amp;type=bug</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr><td class="form-title">Issue History</td></tr><tr class="print-category"><td class="row-category-history">Date Modified</td><td class="row-category-history">Username</td><td class="row-category-history">Field</td><td class="row-category-history">Change</td></tr><tr class="print"><td class="print">24-11-2006 14:34</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan Schulz</a></td><td class="print">New Issue</td><td class="print"></td></tr><tr class="print"><td class="print">24-11-2006 14:34</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan Schulz</a></td><td class="print">Clause Reference(s)</td><td class="print"> =&gt; -</td></tr><tr class="print"><td class="print">24-11-2006 14:34</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan Schulz</a></td><td class="print">Source  (company  - Author)</td><td class="print"> =&gt; dr. György Réthy, Ericsson</td></tr><tr class="print"><td class="print">15-06-2007 19:15</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan Schulz</a></td><td class="print">Status</td><td class="print">new =&gt; assigned</td></tr><tr class="print"><td class="print">15-06-2007 19:15</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=56">Stephan Schulz</a></td><td class="print">Assigned To</td><td class="print"> =&gt; Ina Schieferdecker</td></tr><tr class="print"><td class="print">13-10-2007 19:22</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Assigned To</td><td class="print">Ina Schieferdecker =&gt; developer_u</td></tr><tr class="print"><td class="print">17-10-2007 12:41</td><td class="print"><font STYLE="text-decoration: line-through">user10</font></td><td class="print">Assigned To</td><td class="print">developer_u =&gt; Thomas DeiÃŸ</td></tr><tr class="print"><td class="print">18-10-2007 12:10</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Target Version</td><td class="print"> =&gt; Edition 4.1.1 (not yet published)</td></tr><tr class="print"><td class="print">06-12-2007 11:51</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">File Added: CR_416_v2.zip</td><td class="print"></td></tr><tr class="print"><td class="print">06-12-2007 11:52</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Note Added: 0004372</td><td class="print"></td></tr><tr class="print"><td class="print">06-12-2007 11:52</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Assigned To</td><td class="print">Thomas DeiÃŸ =&gt; Gyorgy Rethy</td></tr><tr class="print"><td class="print">06-12-2007 11:52</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Resolution</td><td class="print">open =&gt; fixed</td></tr><tr class="print"><td class="print">06-12-2007 11:52</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Target Version</td><td class="print">Edition 4.1.1 (not yet published) =&gt; Edition 3.3.1 (not yet published)</td></tr><tr class="print"><td class="print">06-12-2007 16:59</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Note Added: 0004396</td><td class="print"></td></tr><tr class="print"><td class="print">06-12-2007 17:01</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">File Added: CR_416_v3.zip</td><td class="print"></td></tr><tr class="print"><td class="print">06-12-2007 17:43</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">File Added: CR_416_v4.zip</td><td class="print"></td></tr><tr class="print"><td class="print">06-12-2007 17:45</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Note Added: 0004401</td><td class="print"></td></tr><tr class="print"><td class="print">06-12-2007 17:45</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a></td><td class="print">Assigned To</td><td class="print">Gyorgy Rethy =&gt; Jens Grabowski</td></tr><tr class="print"><td class="print">06-12-2007 18:05</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=82">Jens Grabowski</a></td><td class="print">Assigned To</td><td class="print">Jens Grabowski =&gt; Thomas DeiÃŸ</td></tr><tr class="print"><td class="print">06-12-2007 18:30</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">File Added: CR_416_v5.zip</td><td class="print"></td></tr><tr class="print"><td class="print">06-12-2007 18:34</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Note Added: 0004407</td><td class="print"></td></tr><tr class="print"><td class="print">06-12-2007 18:34</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Assigned To</td><td class="print">Thomas DeiÃŸ =&gt; Ina Schieferdecker</td></tr><tr class="print"><td class="print">07-12-2007 09:38</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Status</td><td class="print">assigned =&gt; resolved</td></tr><tr class="print"><td class="print">07-12-2007 10:05</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Status</td><td class="print">resolved =&gt; closed</td></tr><tr class="print"><td class="print">07-12-2007 10:05</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Note Added: 0004417</td><td class="print"></td></tr><tr class="print"><td class="print">07-12-2007 10:05</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Fixed in Version</td><td class="print"> =&gt; Edition 3.3.1 (not yet published)</td></tr><tr class="print"><td class="print">12-03-2008 10:22</td><td class="print"><font STYLE="text-decoration: line-through">user10</font></td><td class="print">Fixed in Version</td><td class="print">Edition 3.3.1 --will not be published, see 3.3.2 =&gt; Edition 3.3.2 (not yet published)</td></tr><tr class="print"><td class="print">12-03-2008 10:24</td><td class="print"><font STYLE="text-decoration: line-through">user10</font></td><td class="print">Target Version</td><td class="print">Edition 3.3.1 --will not be published, see 3.3.2 =&gt; Edition 3.3.2 (not yet published)</td></tr></table>
<br />
<table class="width100" cellspacing="1">
<tr>
	<td class="form-title" colspan="2">
		Notes	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0004372)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				06-12-2007 11:52&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				solution provided (already checked by Gyorgy once)			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0004396)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				06-12-2007 16:59&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				New solution  (R3). Introduce restrictions of templates, currently just one restriction is allowed (omit). 'template (omit)' can be shortened to omit. incorrect cases are not required to be detected at compile time, similar to type compatibility.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0004401)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=127">Gyorgy Rethy</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				06-12-2007 17:45&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				I basically agree both with the solution and handling it in the standard's text. Made some modifications to the text proposed.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0004407)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				06-12-2007 18:34&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				Description made more restrictive (no hints on more general usage).<br />
Example added.<br />
Parentheses changed to curly brackets to avoid confusion with value lists.<br />
<br />
please check the additional comments in the BNF.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0004417)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				07-12-2007 10:05&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				just little wording changes			</td>
		</tr>
		</table>
	</td>
</tr>
</table>
</body>
</html>
