<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://eplmediawiki.di.uminho.pt/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://eplmediawiki.di.uminho.pt/index.php?action=history&amp;feed=atom&amp;title=Symbol_Table</id>
		<title>Symbol Table - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://eplmediawiki.di.uminho.pt/index.php?action=history&amp;feed=atom&amp;title=Symbol_Table"/>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Symbol_Table&amp;action=history"/>
		<updated>2026-07-11T10:36:17Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.20.0</generator>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Symbol_Table&amp;diff=299839&amp;oldid=prev</id>
		<title>91.121.176.108: anZqHC  &lt;a href=&quot;http://hxtkvupaooum.com/&quot;&gt;hxtkvupaooum&lt;/a&gt;, [url=http://kouhoeduydfs.com/]kouhoeduydfs[/url], [link=http://jdcizwyawfdx.com/]jdcizwyawfdx[/link], http://zskbgvaxrivw.com/</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Symbol_Table&amp;diff=299839&amp;oldid=prev"/>
				<updated>2013-11-21T14:44:30Z</updated>
		
		<summary type="html">&lt;p&gt;anZqHC  &amp;lt;a href=&amp;quot;http://hxtkvupaooum.com/&amp;quot;&amp;gt;hxtkvupaooum&amp;lt;/a&amp;gt;, [url=http://kouhoeduydfs.com/]kouhoeduydfs[/url], [link=http://jdcizwyawfdx.com/]jdcizwyawfdx[/link], http://zskbgvaxrivw.com/&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 14:44, 21 November 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;IswTnC &lt;/del&gt; &amp;lt;a href=&amp;quot;http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;iutzwgtqmpte&lt;/del&gt;.com/&amp;quot;&amp;gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;iutzwgtqmpte&lt;/del&gt;&amp;lt;/a&amp;gt;, [url=http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;hedjnfjqivcr&lt;/del&gt;.com/]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;hedjnfjqivcr&lt;/del&gt;[/url], [link=http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;scegikbyqcgb&lt;/del&gt;.com/]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;scegikbyqcgb&lt;/del&gt;[/link], http://&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;tuawcjjpdqvy&lt;/del&gt;.com/&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;anZqHC &lt;/ins&gt; &amp;lt;a href=&amp;quot;http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;hxtkvupaooum&lt;/ins&gt;.com/&amp;quot;&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;hxtkvupaooum&lt;/ins&gt;&amp;lt;/a&amp;gt;, [url=http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kouhoeduydfs&lt;/ins&gt;.com/]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kouhoeduydfs&lt;/ins&gt;[/url], [link=http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jdcizwyawfdx&lt;/ins&gt;.com/]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jdcizwyawfdx&lt;/ins&gt;[/link], http://&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zskbgvaxrivw&lt;/ins&gt;.com/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>91.121.176.108</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Symbol_Table&amp;diff=294233&amp;oldid=prev</id>
		<title>94.23.195.192: IswTnC  &lt;a href=&quot;http://iutzwgtqmpte.com/&quot;&gt;iutzwgtqmpte&lt;/a&gt;, [url=http://hedjnfjqivcr.com/]hedjnfjqivcr[/url], [link=http://scegikbyqcgb.com/]scegikbyqcgb[/link], http://tuawcjjpdqvy.com/</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Symbol_Table&amp;diff=294233&amp;oldid=prev"/>
				<updated>2013-11-19T02:03:26Z</updated>
		
		<summary type="html">&lt;p&gt;IswTnC  &amp;lt;a href=&amp;quot;http://iutzwgtqmpte.com/&amp;quot;&amp;gt;iutzwgtqmpte&amp;lt;/a&amp;gt;, [url=http://hedjnfjqivcr.com/]hedjnfjqivcr[/url], [link=http://scegikbyqcgb.com/]scegikbyqcgb[/link], http://tuawcjjpdqvy.com/&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 02:03, 19 November 2013&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;During semantic analysis (scope or type checking), it is necessary to remember declarations (variables, types, functions, etc) so that we can detect inconsistencies and misuses of the identifiers. This identifiers memorization is the task of a symbol table. Note that a symbol table is a compile-time data structure; it's not used during run time. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;IswTnC&amp;#160; &lt;/ins&gt;&amp;lt;a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;href=&amp;quot;http&lt;/ins&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;//iutzwgtqmpte&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;com/&lt;/ins&gt;&amp;quot;&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;iutzwgtqmpte&lt;/ins&gt;&amp;lt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/a&lt;/ins&gt;&amp;gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[url=http://hedjnfjqivcr&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;com&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]hedjnfjqivcr[/url]&lt;/ins&gt;, [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;link=http&lt;/ins&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;//scegikbyqcgb.com/&lt;/ins&gt;]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;scegikbyqcgb[/link&lt;/ins&gt;]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, http://tuawcjjpdqvy.com/&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Formally, '''a symbol table (also called identifiers table) maps names into declarations''' (called attributes), such as mapping the variable name x to its type int. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;More specifically, &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;symbol table stores&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* for each &amp;quot;''type name''&amp;quot;, its type definition (eg&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;for the C type declaration ''typedef int* mytype'', it maps the name ''mytype'' to a data structure that represents the type ''int*'').&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* for &lt;/del&gt;&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''each variable name''&amp;quot;, its type. If the variable is an ''array'', it also stores dimension information. It may also store storage class, offset in activation record etc.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* for each &amp;quot;''constant name''&amp;quot;, its type and value.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* for each &amp;quot;''function and procedure''&amp;quot;, its formal parameter list and its output type. &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;br&lt;/del&gt;&amp;gt;&amp;lt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;br&lt;/del&gt;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Each formal parameter must have name&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;type, type of passing (by-reference or by-value), etc&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Due to its very efficient search&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;retrieval algorithm&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;one convenient data structure for symbol tables is a hash table, that maps names (the hash table keys) to attributs.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[Category&lt;/del&gt;:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Basic Concepts&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>94.23.195.192</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Symbol_Table&amp;diff=248&amp;oldid=prev</id>
		<title>Admin at 19:22, 24 November 2012</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Symbol_Table&amp;diff=248&amp;oldid=prev"/>
				<updated>2012-11-24T19:22:40Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 19:22, 24 November 2012&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 13:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* for each &amp;quot;''function and procedure''&amp;quot;, its formal parameter list and its output type. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* for each &amp;quot;''function and procedure''&amp;quot;, its formal parameter list and its output type. &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Each formal parameter must have name, type, type of passing (by-reference or by-value), etc. Due to its very efficient search/retrieval algorithm, one convenient data structure for symbol tables is a hash table, that maps names (the hash table keys) to attributs.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Each formal parameter must have name, type, type of passing (by-reference or by-value), etc. Due to its very efficient search/retrieval algorithm, one convenient data structure for symbol tables is a hash table, that maps names (the hash table keys) to attributs.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Basic Concepts]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Category:Basic Concepts]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Symbol_Table&amp;diff=247&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;During semantic analysis (scope or type checking), it is necessary to remember declarations (variables, types, functions, etc) so that we can detect inconsistencies and misuse...&quot;</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Symbol_Table&amp;diff=247&amp;oldid=prev"/>
				<updated>2012-11-24T19:22:31Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;During semantic analysis (scope or type checking), it is necessary to remember declarations (variables, types, functions, etc) so that we can detect inconsistencies and misuse...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;During semantic analysis (scope or type checking), it is necessary to remember declarations (variables, types, functions, etc) so that we can detect inconsistencies and misuses of the identifiers. This identifiers memorization is the task of a symbol table. Note that a symbol table is a compile-time data structure; it's not used during run time. &lt;br /&gt;
Formally, '''a symbol table (also called identifiers table) maps names into declarations''' (called attributes), such as mapping the variable name x to its type int. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
More specifically, a symbol table stores:&lt;br /&gt;
&lt;br /&gt;
* for each &amp;quot;''type name''&amp;quot;, its type definition (eg. for the C type declaration ''typedef int* mytype'', it maps the name ''mytype'' to a data structure that represents the type ''int*'').&lt;br /&gt;
&lt;br /&gt;
* for &amp;quot;''each variable name''&amp;quot;, its type. If the variable is an ''array'', it also stores dimension information. It may also store storage class, offset in activation record etc.&lt;br /&gt;
&lt;br /&gt;
* for each &amp;quot;''constant name''&amp;quot;, its type and value.&lt;br /&gt;
&lt;br /&gt;
* for each &amp;quot;''function and procedure''&amp;quot;, its formal parameter list and its output type. &lt;br /&gt;
&lt;br /&gt;
Each formal parameter must have name, type, type of passing (by-reference or by-value), etc. Due to its very efficient search/retrieval algorithm, one convenient data structure for symbol tables is a hash table, that maps names (the hash table keys) to attributs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic Concepts]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>