<?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/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
		<title>eplmediawiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://eplmediawiki.di.uminho.pt/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Special:Contributions/Admin"/>
		<updated>2026-06-16T23:44:02Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.0</generator>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2013-02-27T19:54:41Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide ''theoretical'' and ''practical support'' to those who want to '''design and process formal programming languages''' (both general purpose or domain specific). &lt;br /&gt;
&lt;br /&gt;
So we gathered in this site information about Grammars (for different Languages) and Tools (like ''compiler generators'') for Language Processing.&lt;br /&gt;
The ''basic concepts'' in the area of Language Processing are identified and defined.&lt;br /&gt;
Also information about Virtual Machines (that are becoming more and more important as the target for compilers) is provided.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
Click on the image to get access to the map.&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://eplmediawiki.di.uminho.pt/Map.html]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Grammar</id>
		<title>Grammar</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Grammar"/>
				<updated>2013-02-27T19:39:51Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Formally, a '''grammar''' is an ordered fourtuple ''G'' = (''T,N,S,P''), where ''N'' and ''T'' are finite alphabets, ''S'' is a distinguished symbol of ''N'', and ''P'' is a finite non-empty set pairs (L,R) such that ''L'' and ''R'' are in (''N U T'')* and ''G'' is called a '''Context Free Grammar''' (CFG) if ''L'' is in ''N''. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The symbols of ''N'' are called ''nonterminal symbols''. The symbols of ''T'' are called ''terminal symbols''. According to above definition of a grammar ''G'', the sets ''N'' and ''T'' are disjoint in every grammar. The nonterminal symbol ''S'' is called the initial symbol, axiom or root, and is used to start the derivations of the sentences of the language. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ordered pairs in ''P'' are called ''rewriting rules'' or ''productions'' and will be written in the form L ---&amp;gt; R where the symbol ---&amp;gt; (derives) is, of course, not in ''N U T''. Productions are used to derive new sentences from given ones by replacing a part equal to the left-hand side of a rule by the right-hand side of the same rule. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In such a way, taking always ''S'' as the starting symbol, it is possible to derive from ''S'' and just applying productions in ''P'', a set (possibly infinite) of sentences that is called the language generated by ''G'', ''L(G)''.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''See following grammar example:''' [http://eplmediawiki.di.uminho.pt/uploads/NLPDgrammar.pdf nLPD grammar]&lt;br /&gt;
&lt;br /&gt;
[[Category: Basic Concepts]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=File:NLPDgrammar.pdf</id>
		<title>File:NLPDgrammar.pdf</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=File:NLPDgrammar.pdf"/>
				<updated>2013-02-27T19:39:09Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Tools_%26_Utilities</id>
		<title>Category:Tools &amp; Utilities</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Tools_%26_Utilities"/>
				<updated>2013-01-09T10:53:05Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: Protected &amp;quot;Category:Tools &amp;amp; Utilities&amp;quot; (‎[edit=sysop] (indefinite) ‎[move=sysop] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This category groups a set of pages that contain information about Tools that help on the development and analysis of Grammars or Regular Expressions.&lt;br /&gt;
&lt;br /&gt;
Other environments or tools useful for various activities (like planning, editing, reporting, etc.) involved in the development of a project are also included here.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Virtual_Machines</id>
		<title>Category:Virtual Machines</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Virtual_Machines"/>
				<updated>2013-01-05T18:02:19Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: atualização do texto introdutório desta categoria&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The pages grouped under this category provide information about Virtual Machines used in academic or professional environments as the target of some compilers.&lt;br /&gt;
&lt;br /&gt;
A Virtual Machine (VM) is a program that simulates the behavior of a real CPU.&lt;br /&gt;
&lt;br /&gt;
The program uses data structures to implement the blocks that compose the machine architecture like the ''decoder'',&lt;br /&gt;
the ''controller'', the ''registers'', the ''stack'', the ''data'' and ''program memories'', the ''input/output ports'', etc.&lt;br /&gt;
&lt;br /&gt;
It accepts as input a ''list of instructions'' (the machine code), written in the style of an Assembly language (operator followed by  zero or&lt;br /&gt;
more operands), and  interprets (recognizes and&lt;br /&gt;
executes) them sequentially from the first to the last or until finding one that halts the execution.&lt;br /&gt;
&lt;br /&gt;
In this way, the VM simulates the execution of the program (defined by that list of instructions) on a real CPU.&lt;br /&gt;
&lt;br /&gt;
The biggest advantage of using a VM as the target of a Compiler is the possibility to run a program independently of the hardware. &lt;br /&gt;
The most famous example is  JVM, Java Virtual Machine, used by the Java Compiler -- in this way the same java byte-code can be executed in any hardware platform where a JVM is installed.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Basic_Concepts</id>
		<title>Category:Basic Concepts</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Basic_Concepts"/>
				<updated>2013-01-05T17:02:44Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: creation of the introductory text for this category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This category gathers definitions related to the ''basic concepts'' underlying the area of Language Processing (LP).&lt;br /&gt;
&lt;br /&gt;
It is organized in a dictionary style in order to enable a simple and quick consult. &lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Tools_%26_Utilities</id>
		<title>Category:Tools &amp; Utilities</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Tools_%26_Utilities"/>
				<updated>2013-01-05T16:53:52Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This category groups a set of pages that contain information about Tools that help on the development and analysis of Grammars or Regular Expressions.&lt;br /&gt;
&lt;br /&gt;
Other environments or tools useful for various activities (like planning, editing, reporting, etc.) involved in the development of a project are also included here.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Tools_%26_Utilities</id>
		<title>Category:Tools &amp; Utilities</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Tools_%26_Utilities"/>
				<updated>2013-01-05T16:49:15Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: creation of the introductory text for this category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
This category groups a set of pages that contain information about Tools that help on the development and analysis of Grammars or Regular Expressions.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Virtual_Machines</id>
		<title>Category:Virtual Machines</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Virtual_Machines"/>
				<updated>2013-01-05T16:37:35Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: creation of the introductory text for this category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
The pages grouped under this category provide information about Virtual Machines used in academic or professional environments as the target of some compilers.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Languages_and_Grammars</id>
		<title>Category:Languages and Grammars</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Languages_and_Grammars"/>
				<updated>2013-01-05T16:32:43Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
In this category we collect information about Programming Languages: their Characteristics (purpose, underlying philosophy and usage); and Grammars.&lt;br /&gt;
&lt;br /&gt;
At moment this page is under construction....&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Compiler_Generators</id>
		<title>Category:Compiler Generators</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Compiler_Generators"/>
				<updated>2013-01-05T16:24:53Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Compiler Generator (CG) is a program that takes, as input, a Language Specification (a Regular Expression (ER), a Grammar (G), etc.)  and produces, as output, another program that is a Processor (a Compiler, an Interpreter, or whatever) for the language specified.&lt;br /&gt;
&lt;br /&gt;
Notice that the correct name for this special program should be Language-Processor Generator.&lt;br /&gt;
However the actual name is indeed Compiler Generator; alternatively, it is&lt;br /&gt;
also known as Compilers Compiler.&lt;br /&gt;
&lt;br /&gt;
The usefulness of such a program is unquestionable. &lt;br /&gt;
From a short and concise formal specification of a language, a complex and efficient&lt;br /&gt;
program is quickly generated with the guarantee that the generated program will recognize all the valid sentences&lt;br /&gt;
that belong to that language and will transform/translate them in a systematic way.&lt;br /&gt;
&lt;br /&gt;
From a large list of well known Compiler Generators---Yacc, Btyacc, Mlyacc, Happy, Coco/R, Tools, CTB, JavaCC, CUP, LISA, Eli, PCCTS, AnTLR, Silver, Sable,  SGen, LRC, ASF+SDF---we chose a subset of them to install and test.&lt;br /&gt;
&lt;br /&gt;
The pages in this category correspond, precisely, to the selected Compiler Generators and provide some pratical information about each one.&lt;br /&gt;
&lt;br /&gt;
To enable the comparasion of  each tool usage, &lt;br /&gt;
all of the CG chosen were experimented with the same language, ''Lavanda'',&lt;br /&gt;
that is a didatic Domain Specific Language designed for teaching purposes. &lt;br /&gt;
''Lavanda'' is specified by  the following grammar:&lt;br /&gt;
[http://eplmediawiki.di.uminho.pt/uploads/Lavanda.pdf LavandaGrammar]. &lt;br /&gt;
&lt;br /&gt;
A small set of input texts, to test the compiler generated by each tool, is available [http://eplmediawiki.di.uminho.pt/uploads/SamplesLavanda.zip here]. &lt;br /&gt;
&lt;br /&gt;
An article comparing three  compiler generators (Lex/Yacc, LISA and ANTLR-3) ca be found [http://eplmediawiki.di.uminho.pt/uploads/CoRTA07CGvs.pdf here].&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Compiler_Generators</id>
		<title>Category:Compiler Generators</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Compiler_Generators"/>
				<updated>2013-01-05T01:23:36Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Compiler Generator (CG) is a program that takes, as input, a Language Specification (a Regular Expression (ER), a Grammar (G), etc.)  and produces, as output, another program that is a Processor (a Compiler, an Interpreter, or whatever) for the language specified.&lt;br /&gt;
&lt;br /&gt;
Notice that the correct name for this special program should be Language-Processor Generator.&lt;br /&gt;
However the actual name is indeed Compiler Generator; alternatively, it is&lt;br /&gt;
also known as Compilers Compiler.&lt;br /&gt;
&lt;br /&gt;
The usefulness of such a program is unquestionable. &lt;br /&gt;
From a short and concise formal specification of a language, a complex and efficient&lt;br /&gt;
program is quickly generated with the guarantee that the generated program will recognize all the valid sentences&lt;br /&gt;
that belong to that language and will transform/translate them in a systematic way.&lt;br /&gt;
&lt;br /&gt;
From a large list of well known Compiler Generators---Yacc, Btyacc, Mlyacc, Happy, Coco/R, CTB, Tools, JavaCC, CUP, SGen, LRC,&lt;br /&gt;
LISA, Eli, PCCTS, AnTLR, Silver, Sable, ASF+SDF---we chose a subset of them to install and test.&lt;br /&gt;
&lt;br /&gt;
To enable the comparasion of  each tool usage, &lt;br /&gt;
all of the CG chosen were experimented with the same language, Lavanda,&lt;br /&gt;
that is a didatic Domain Specific Language used for teaching purposes. &lt;br /&gt;
Lavanda is specified by  the following grammar:&lt;br /&gt;
[http://eplmediawiki.di.uminho.pt/uploads/Lavanda.pdf LavandaGrammar]. &lt;br /&gt;
&lt;br /&gt;
A small set of input texts, to test the compiler generated by each tool, is available [http://eplmediawiki.di.uminho.pt/uploads/SamplesLavanda.zip here]. &lt;br /&gt;
&lt;br /&gt;
An article comparing three  compiler generators (Lex/Yacc, LISA and ANTLR-3) ca be found [http://eplmediawiki.di.uminho.pt/uploads/CoRTA07CGvs.pdf here].&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;br /&gt;
&lt;br /&gt;
Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Compiler_Generators</id>
		<title>Category:Compiler Generators</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Compiler_Generators"/>
				<updated>2013-01-05T01:18:45Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: atualização do texto introdutório desta categoria&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Compiler Generator (CG) is a program that takes, as input, a Language Specification (a Regular Expression (ER), a Grammar (G), etc.)  and produces, as output, another program that is a Processor (a Compiler, an Interpreter, or whatever) for the language specified.&lt;br /&gt;
&lt;br /&gt;
Notice that the correct name for this special program should be Language-Processor Generator.&lt;br /&gt;
However the actual name is indeed Compiler Generator; alternatively, it is&lt;br /&gt;
also known as Compilers Compiler.&lt;br /&gt;
&lt;br /&gt;
The usefulness of such a program is unquestionable. &lt;br /&gt;
From a short and concise formal specification of a language, a complex and efficient&lt;br /&gt;
program is quickly generated with the guarantee that the generated program will recognize all the valid sentences&lt;br /&gt;
that belong to that language and will transform/translate them in a systematic way.&lt;br /&gt;
&lt;br /&gt;
From a large list of well known Compiler Generators---Yacc, Btyacc, Mlyacc, Happy, Coco/R, CTB, Tools, JavaCC, CUP, SGen, LRC,&lt;br /&gt;
LISA, Eli, PCCTS, AnTLR, Silver, Sable, ASF+SDF---we chose a subset of them to install and test.&lt;br /&gt;
To enable the comparasion of the usage of each tool, &lt;br /&gt;
all of the CG chosen were experimented with the same language, Lavanda,&lt;br /&gt;
that is a didatic Domain Specific Language used for teaching purposes. &lt;br /&gt;
Lavanda is specified by  the following grammar:&lt;br /&gt;
[http://eplmediawiki.di.uminho.pt/uploads/Lavanda.pdf LavandaGrammar]. &lt;br /&gt;
&lt;br /&gt;
A small set of input texts, to test the compiler generated by each tool, is available [http://eplmediawiki.di.uminho.pt/uploads/SamplesLavanda.zip here]. &lt;br /&gt;
&lt;br /&gt;
An article comparing three  compiler generators (Lex/Yacc, LISA and ANTLR-3) ca be found [http://eplmediawiki.di.uminho.pt/uploads/CoRTA07CGvs.pdf here].&lt;br /&gt;
&lt;br /&gt;
_________________________________________________________&lt;br /&gt;
Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Languages_and_Grammars</id>
		<title>Category:Languages and Grammars</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Languages_and_Grammars"/>
				<updated>2013-01-03T01:07:22Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this category we collect information about Programming Languages: their Characteristics (purpose, underlying philosophy and usage); and Grammars.&lt;br /&gt;
&lt;br /&gt;
At moment this page is under construction....&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Languages_and_Grammars</id>
		<title>Category:Languages and Grammars</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Languages_and_Grammars"/>
				<updated>2013-01-03T01:00:01Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: criação do texto base desta categoria&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this category we collect information about Programming Languages: their Characteristics (purpose, underlying philosophy and usage); and Grammars.&lt;br /&gt;
&lt;br /&gt;
At moment this page is under construction....&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2013-01-03T00:36:01Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: revisão do texto introdutório da Homepage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide ''theoretical'' and ''practical support'' to those who want to '''design and process formal programming languages''' (both general purpose or domain specific). &lt;br /&gt;
&lt;br /&gt;
So we gathered in this site information about Grammars (for different Languages) and Tools (like ''compiler generators'') for Language Processing.&lt;br /&gt;
The ''basic concepts'' in the area of Language Processing are identified and defined.&lt;br /&gt;
Also information about Virtual Machines (that are becoming more and more important as the target for compilers) is provided.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
Click on the image to get access to the map.&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://eplmediawiki.di.uminho.pt/map.html]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2013-01-03T00:30:53Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide ''theoretical'' and ''practical support'' to those who want to '''design and process formal programming languages''' (both general purpose or domain specific). &lt;br /&gt;
&lt;br /&gt;
So we gathered in this site information about Grammars (for different Languages) and Tools (like ''compiler generators'') for Language Processing.&lt;br /&gt;
The basic concepts in the area of Language Processing are identified and defined.&lt;br /&gt;
Also information about Virtual Machines (that are becoming more and more important as the target for compilers) is provided.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
Click on the image to get access to the map.&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://eplmediawiki.di.uminho.pt/map.html]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2013-01-03T00:17:38Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide ''theoretical'' and ''practical support'' to those who want to '''design and process formal programming languages''' (both general purpose or domain specific). &lt;br /&gt;
&lt;br /&gt;
So we gathered in this site information about Grammars (for different Languages) and Tools (like compiler generators) for Language Processing.&lt;br /&gt;
The basic concepts in the area of Language Processing are identified and defined.&lt;br /&gt;
Also information about Virtual Machines (that are becoming more and more important as the target for compilers) is provided.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
Click on the image to get access to the map.&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://eplmediawiki.di.uminho.pt/map.html]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2013-01-03T00:14:40Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide theoretical and practical support to those who want to design and process formal (programming or domain specific) languages. &lt;br /&gt;
&lt;br /&gt;
So we gathered in this site information about Grammars (for different Languages) and Tools (like compiler generators) for Language Processing.&lt;br /&gt;
The basic concepts in the area of Language Processing are identified and defined.&lt;br /&gt;
Also information about Virtual Machines (that are becoming more and more important as the target for compilers) is provided.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
Click on the image to get access to the map.&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://eplmediawiki.di.uminho.pt/map.html]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=LALR_Parsers</id>
		<title>LALR Parsers</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=LALR_Parsers"/>
				<updated>2012-12-27T22:41:20Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''''LALR''' - '''L'''ook '''A'''head '''L'''eft-to-right parse, '''R'''ightmost-derivation''. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LALR parsers are a specialized form of [http://eplmediawiki.di.uminho.pt/index.php/LL(k)_----_LL(1)_Parsers LR parsers] that can deal with more context-free grammars than Simple LR parsers [INSERIR LINKS] but less than [http://eplmediawiki.di.uminho.pt/index.php/LL(k)_----_LL(1)_Parsers LR(1)] parsers can. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LALR parsers were introduced as practical parsers for deterministic languages. Rather than building an exponential number of LR(k) states, LALR(k) parsers add lookahead sets to the actions of the small LR(0) parser. While SLR uses follow sets to construct reduce actions, LALR uses lookahead sets, which are more specific because they take more of the parsing context into account. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In LR(1) parsing, an item '''A ::= a''' (s1) is different from '''A ::= a''' (s2) if s1 is different from s2. This results to a large number of states since the combinations of expected lookahead symbols can be very large. To reduce the number of states, when we have two items like those two, instead of creating two states (one for each item), we combine the two states into one by creating an item '''A := a''' (s3) where s3 is the union of s1 and s2. Since we make the expected lookahead sets larger, there is a danger that some conflicts will have worse chances to be resolved. But the number of states we get is the same as that for LR(0). This grammar is called LALR(1). &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LALR parser generators ==&lt;br /&gt;
# [http://www.parsifalsoft.com/ AnaGram]&lt;br /&gt;
# [http://beaver.sourceforge.net/ BEAVER]&lt;br /&gt;
# [http://www.cs.princeton.edu/~appel/modern/java/CUP CUP]&lt;br /&gt;
# ELI&lt;br /&gt;
# [http://www.devincook.com/goldparser/ Gold]&lt;br /&gt;
# [http://www.hwaci.com/sw/lemon/ Lemon]&lt;br /&gt;
# [http://eplmediawiki.di.uminho.pt/index.php/Lisa LISA]&lt;br /&gt;
# [http://www.mathematik.uni-ulm.de/modula Ulm's Modula-2 System]&lt;br /&gt;
# [http://eplmediawiki.di.uminho.pt/index.php/Yacc YACC]&lt;br /&gt;
# [http://www.gradsoft.com.ua/products/yayacc_eng.html YaYacc]&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic Concepts]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Assembler</id>
		<title>Assembler</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Assembler"/>
				<updated>2012-12-27T22:08:09Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An assembler is a program that translates assembly language into binary instructions. Assembly language provides a friendlier representation for machine code than a computer’s 0s and 1s bytecode, that simplifies writing and reading programs. Symbolic names (mnemonics) for operations (labels) and locations are one facet of this representation. Another facet is programming facilities that increase a program’s clarity. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An assembler (that is a language processor, similar to a compiler) reads a single assembly language source file and produces an object file containing machine instructions in bytecode format and bookkeeping information that helps combine several object files into a program. &lt;br /&gt;
&lt;br /&gt;
[[Category:Basic Concepts]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Assembler</id>
		<title>Assembler</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Assembler"/>
				<updated>2012-12-27T22:07:30Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An assembler is a program that translates assembly language into binary instructions. Assembly language provides a friendlier representation for machine code than a computer’s 0s and 1s bytecode, that simplifies writing and reading programs. Symbolic names (mnemonics) for operations (labels) and locations are one facet of this representation. Another facet is programming facilities that increase a program’s clarity. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An assembler (that is a language processor, similar to a compiler) reads a single assembly language source file and produces an object file containing machine instructions in bytecode format and bookkeeping information that helps combine several object files into a program. &lt;br /&gt;
&lt;br /&gt;
edit&lt;br /&gt;
[[Category:Basic Concepts]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2012-12-27T22:05:28Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Map of Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide theoretical and practical support to those who want to design and process formal (programming or domain specific) languages. So we gathered in this page information about language/grammars and tools (compiler generators), as well as definitions for the basic concepts in compilers area; also information about Virtual Machines (that are becoming now and more important as the compilers target) is available.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
Click on the image to get access to the map.&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://eplmediawiki.di.uminho.pt/map.html]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2012-12-27T22:04:39Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Map of Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide theoretical and practical support to those who want to design and process formal (programming or domain specific) languages. So we gathered in this page information about language/grammars and tools (compiler generators), as well as definitions for the basic concepts in compilers area; also information about Virtual Machines (that are becoming now and more important as the compilers target) is available.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://eplmediawiki.di.uminho.pt/map.html]]&lt;br /&gt;
&lt;br /&gt;
Click on the image to get acess to the map.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2012-12-27T22:02:58Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Map of Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide theoretical and practical support to those who want to design and process formal (programming or domain specific) languages. So we gathered in this page information about language/grammars and tools (compiler generators), as well as definitions for the basic concepts in compilers area; also information about Virtual Machines (that are becoming now and more important as the compilers target) is available.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://eplmediawiki.di.uminho.pt/map.html]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2012-12-20T22:08:45Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide theoretical and practical support to those who want to design and process formal (programming or domain specific) languages. So we gathered in this page information about language/grammars and tools (compiler generators), as well as definitions for the basic concepts in compilers area; also information about Virtual Machines (that are becoming now and more important as the compilers target) is available.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://wikipedia.org]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Abstract_Syntax_Tree</id>
		<title>Abstract Syntax Tree</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Abstract_Syntax_Tree"/>
				<updated>2012-12-17T11:32:52Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An abstract syntax tree (AST) is a finite, labeled, directed tree, where the internal nodes are labeled by operators, and the leaf nodes represent the operands of the node operators. Thus, the leaves have nullary operators, i.e., variables or constants. In computing, it is used in a parser as an intermediate between a parse tree and a data structure, the latter which is often used as a compiler or interpreter's internal representation of a computer program while it is being optimized and from which code generation is performed. The range of all possible such structures is described by the abstract syntax. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An AST differs from a parse tree by omitting nodes and edges for syntax rules that do not affect the semantics of the program. The classic example of such an omission is grouping parentheses, since in an AST the grouping of operands is explicit in the tree structure. Creating an AST in a parser for a language described by a context free grammar, as nearly all programming languages are, is straightforward. Most rules in the grammar create a new node with the nodes edges being the symbols in the rule. Rules that do not contribute to the AST, such as grouping rules, merely pass through the node for one of their symbols. Alternatively, a parser can create a full parse tree, and a post-pass over the parse tree can convert it to an AST by removing the nodes and edges not used in the abstract syntax. &lt;br /&gt;
&lt;br /&gt;
[[Category:Basic Concepts]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2012-12-17T11:18:06Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Extensões */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide theoretical and practical support to those who want to design and process formal (programming or domain specific) languages. So we gathered in this page information about language/grammars and tools (compiler generators), as well as definitions for the basic concepts in compilers area; also information about Virtual Machines (that are becoming now and more important as the compilers target) is available.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://wikipedia.org]]&lt;br /&gt;
&lt;br /&gt;
== Extensões ==&lt;br /&gt;
=== MimeTeX ===&lt;br /&gt;
 &amp;lt;tex&amp;gt;&lt;br /&gt;
  \operatorname{erfc}(x) =&lt;br /&gt;
  \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt =&lt;br /&gt;
  \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}}&lt;br /&gt;
 &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SyntaxHighlight ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    $v = &amp;quot;string&amp;quot;;    // sample initialization&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
html text&lt;br /&gt;
&amp;lt;?&lt;br /&gt;
    echo $v;         // end of php code&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Team</id>
		<title>Team</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Team"/>
				<updated>2012-12-16T19:31:43Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Professor Pedro Manuel Rangel Santos Henriques&lt;br /&gt;
** [http://www3.di.uminho.pt/~prh/| Página]&lt;br /&gt;
&lt;br /&gt;
* Professora Daniela Carneiro da Cruz&lt;br /&gt;
** [http://alfa.di.uminho.pt/~danieladacruz/| Página]&lt;br /&gt;
&lt;br /&gt;
== Developer ==&lt;br /&gt;
* João Miranda, PG22838&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=MediaWiki:Sidebar</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=MediaWiki:Sidebar"/>
				<updated>2012-12-16T03:41:57Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
**Category:Basic Concepts|Basic Concepts&lt;br /&gt;
**Category:Languages and Grammars|Languages and Grammars&lt;br /&gt;
**Category:Compiler Generators|Compiler Generators&lt;br /&gt;
**Category:Virtual Machines|Virtual Machines&lt;br /&gt;
**Category:Tools &amp;amp; Utilities|Tools &amp;amp; Utilities&lt;br /&gt;
&lt;br /&gt;
*extras&lt;br /&gt;
** Team|Team&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=MediaWiki:Sidebar</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=MediaWiki:Sidebar"/>
				<updated>2012-12-16T03:41:17Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
**Category:Basic Concepts|Basic Concepts&lt;br /&gt;
**Category:Languages and Grammars|Languages and Grammars&lt;br /&gt;
**Category:Compiler Generators|Compiler Generators&lt;br /&gt;
**Category:Virtual Machines|Virtual Machines&lt;br /&gt;
**Category:Tools &amp;amp; Utilities|Tools &amp;amp; Utilities&lt;br /&gt;
&lt;br /&gt;
*extras&lt;br /&gt;
** Team|Team&lt;br /&gt;
** portal-url|portal&lt;br /&gt;
** currentevents-url|currentevents&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** helppage|help&lt;br /&gt;
** Special:MultipleUpload|Upload multiple files&lt;br /&gt;
&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2012-12-15T20:21:03Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Map of Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide theoretical and practical support to those who want to design and process formal (programming or domain specific) languages. So we gathered in this page information about language/grammars and tools (compiler generators), as well as definitions for the basic concepts in compilers area; also information about Virtual Machines (that are becoming now and more important as the compilers target) is available.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
[[File:Map.jpg|1000px|link=http://wikipedia.org]]&lt;br /&gt;
&lt;br /&gt;
== Extensões ==&lt;br /&gt;
=== MimeTeX ===&lt;br /&gt;
 &amp;lt;tex&amp;gt;&lt;br /&gt;
  \operatorname{erfc}(x) =&lt;br /&gt;
  \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt =&lt;br /&gt;
  \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}}&lt;br /&gt;
 &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SyntaxHighlight ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    $v = &amp;quot;string&amp;quot;;    // sample initialization&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
html text&lt;br /&gt;
&amp;lt;?&lt;br /&gt;
    echo $v;         // end of php code&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== InputBox ===&lt;br /&gt;
&amp;lt;inputbox&amp;gt;&lt;br /&gt;
type=comment&lt;br /&gt;
width=20&lt;br /&gt;
buttonlabel=Go&lt;br /&gt;
searchbuttonlabel=Search&lt;br /&gt;
break=no&lt;br /&gt;
&amp;lt;/inputbox&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2012-12-15T20:19:58Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide theoretical and practical support to those who want to design and process formal (programming or domain specific) languages. So we gathered in this page information about language/grammars and tools (compiler generators), as well as definitions for the basic concepts in compilers area; also information about Virtual Machines (that are becoming now and more important as the compilers target) is available.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
[[File:Map.jpg|1000px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extensões ==&lt;br /&gt;
=== MimeTeX ===&lt;br /&gt;
 &amp;lt;tex&amp;gt;&lt;br /&gt;
  \operatorname{erfc}(x) =&lt;br /&gt;
  \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt =&lt;br /&gt;
  \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}}&lt;br /&gt;
 &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SyntaxHighlight ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    $v = &amp;quot;string&amp;quot;;    // sample initialization&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
html text&lt;br /&gt;
&amp;lt;?&lt;br /&gt;
    echo $v;         // end of php code&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== InputBox ===&lt;br /&gt;
&amp;lt;inputbox&amp;gt;&lt;br /&gt;
type=comment&lt;br /&gt;
width=20&lt;br /&gt;
buttonlabel=Go&lt;br /&gt;
searchbuttonlabel=Search&lt;br /&gt;
break=no&lt;br /&gt;
&amp;lt;/inputbox&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Main_Page"/>
				<updated>2012-12-15T20:18:56Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: /* Map of Concepts */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;It is our purpose to provide theoretical and practical support to those who want to design and process formal (programming or domain specific) languages. So we gathered in this page information about language/grammars and tools (compiler generators), as well as definitions for the basic concepts in compilers area; also information about Virtual Machines (that are becoming now and more important as the compilers target) is available.&lt;br /&gt;
&lt;br /&gt;
== Categories ==&lt;br /&gt;
[[Image:b_bc.png|link=Category:Basic Concepts]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_lg.png|link=Category:Languages and Grammars]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_cg.png|link=Category:Compiler Generators]]&lt;br /&gt;
&amp;amp;nbsp; &amp;amp;nbsp;&lt;br /&gt;
[[Image:b_vm.png|link=Category:Virtual Machines]]&lt;br /&gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Image:b_tu.png|link=Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Extensões ==&lt;br /&gt;
=== MimeTeX ===&lt;br /&gt;
 &amp;lt;tex&amp;gt;&lt;br /&gt;
  \operatorname{erfc}(x) =&lt;br /&gt;
  \frac{2}{\sqrt{\pi}} \int_x^{\infty} e^{-t^2}\,dt =&lt;br /&gt;
  \frac{e^{-x^2}}{x\sqrt{\pi}}\sum_{n=0}^\infty (-1)^n \frac{(2n)!}{n!(2x)^{2n}}&lt;br /&gt;
 &amp;lt;/tex&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== SyntaxHighlight ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
    $v = &amp;quot;string&amp;quot;;    // sample initialization&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
html text&lt;br /&gt;
&amp;lt;?&lt;br /&gt;
    echo $v;         // end of php code&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== InputBox ===&lt;br /&gt;
&amp;lt;inputbox&amp;gt;&lt;br /&gt;
type=comment&lt;br /&gt;
width=20&lt;br /&gt;
buttonlabel=Go&lt;br /&gt;
searchbuttonlabel=Search&lt;br /&gt;
break=no&lt;br /&gt;
&amp;lt;/inputbox&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Map of Concepts ==&lt;br /&gt;
[[File:Map.jpg|500px]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=File:Map.jpg</id>
		<title>File:Map.jpg</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=File:Map.jpg"/>
				<updated>2012-12-15T20:18:13Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Attributes</id>
		<title>Attributes</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Attributes"/>
				<updated>2012-12-15T19:22:55Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''&amp;quot;Attribute: quality, sign or mark which is charatetristic of something or somebody.&amp;quot;'' &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;in ''An English-Reader's Dictionary, Oxford University Press''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In general, a set of attributes is used to characterize a family of objects (a class); for a given object (a class instance), each &amp;quot;attribute&amp;quot; has a specific &amp;quot;value&amp;quot; that is said to be an object &amp;quot;property&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
In the context of formal language definition, attributes are associated to grammar symbols (non-terminal, or terminal symbols) to specify the language semantics. &lt;br /&gt;
For a particular sentence in that language, the values of the set of attributes associated with the grammar axiom (or root symbol) define its specific meaning. &lt;br /&gt;
An attribute should be defined for each data item that should be known about each symbol, after the lexical and syntactical analysis of a sentence in order to do the static semantic analysis and its translation or processing. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [http://eplmediawiki.di.uminho.pt/index.php/Inherited_attributes Inherited attributes], [http://eplmediawiki.di.uminho.pt/index.php/Synthesized_Attributes Synthesized attributes]&lt;br /&gt;
[[Category:Basic Concepts]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Attributes</id>
		<title>Attributes</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Attributes"/>
				<updated>2012-12-15T19:21:56Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''&amp;quot;Attribute: quality, sign or mark which is charatetristic of something or somebody.&amp;quot;'' &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;in ''An English-Reader's Dictionary, Oxford University Press''&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In general, a set of attributes is used to characterize a family of objects (a class); for a given object (a class instance), each &amp;quot;attribute&amp;quot; has a specific &amp;quot;value&amp;quot; that is said to be an object &amp;quot;property&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
In the context of formal language definition, attributes are associated to grammar symbols (non-terminal, or terminal symbols) to specify the language semantics. &lt;br /&gt;
For a particular sentence in that language, the values of the set of attributes associated with the grammar axiom (or root symbol) define its specific meaning. &lt;br /&gt;
An attribute should be defined for each data item that should be known about each symbol, after the lexical and syntactical analysis of a sentence in order to do the static semantic analysis and its translation or processing. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''See also:''' [http://eplmediawiki.di.uminho.pt/index.php/Inherited_attributes Inherited attributes], [http://eplmediawiki.di.uminho.pt/index.php/Synthesized_attributes Synthesized attributes]&lt;br /&gt;
[[Category:Basic Concepts]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Attribute_Grammar</id>
		<title>Attribute Grammar</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Attribute_Grammar"/>
				<updated>2012-12-15T19:21:45Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An attribute grammar is an ordered eighttuple AG = (T, N, S, P, A, R, CC, TR) , where: &lt;br /&gt;
- N and T are finite alphabets; &lt;br /&gt;
- S is a distinguished symbol of N; &lt;br /&gt;
- P is a finite non-empty set pairs (L,R) such that L and R are in (N U T)*; &lt;br /&gt;
- A is the union of the inherited and synthesized attributes of a non-terminal X in (N U T)* (if X in N then A(ttributes) (X) = S(inthesized)A(ttributes) U I(nherited)A(ttributes) and the intersection of this two sets is empty; if X in T then A(X) = SA(X) and A(S) = SA(S)); &lt;br /&gt;
- R = U R(p) is a set of evaluation rules, &lt;br /&gt;
- CC = U CC(p) is a set of contextual conditions &lt;br /&gt;
- and TR is a set of translation rules. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An attribute grammar is a formalism to specify the syntax and semantics of a language; it defines the information that will need to be in the abstract syntax tree to successfully perform semantic analysis and code generation. This information is stored as attributes of the nodes of the abstract syntax tree. &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The attributes (see also: [http://eplmediawiki.di.uminho.pt/index.php/Attributes Attributes]) are divided into two groups, called synthesized attributes and inherited attributes. &lt;br /&gt;
# The '''synthesized attributes''' of a symbol X0, at the root of a tree, store the values that result from attribute evaluation rules using the values of the synthesized attributes of its children nodes (Y1 to Yn) and its own inherited attributes. &lt;br /&gt;
# The '''inherited attributes''' of a symbol Yi, i=1..n, at the leaves of a tree, store the values that result from attribute evaluation rules using the values of the synthesized attributes of its sibling nodes and inherited attributes of its parent node (the root of that tree). &lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically, synthesized attributes are used to pass semantic information up the parse tree (from leaves to the root), while inherited attributes are used to pass semantic information down the parse tree (propagating values from the root to the leaves). The first is information extracted (directly or after some computation) from the present substring, of the source text, under analysis and processing; the second corresponds to information, available from the context (substrings before or after), that should be taken into consideration for processing the present substring of the source text. &lt;br /&gt;
&lt;br /&gt;
[[Category:Basic Concepts]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Synthesized_Attributes</id>
		<title>Synthesized Attributes</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Synthesized_Attributes"/>
				<updated>2012-12-15T19:19:59Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;''Coming soon...''  Category:Basic Concepts&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Coming soon...''&lt;br /&gt;
&lt;br /&gt;
[[Category:Basic Concepts]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Category:Basic_Concepts</id>
		<title>Category:Basic Concepts</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Category:Basic_Concepts"/>
				<updated>2012-12-11T00:55:03Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: Protected &amp;quot;Category:Basic Concepts&amp;quot; (‎[edit=sysop] (indefinite) ‎[move=sysop] (indefinite))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Click [{{fullurl:{{FULLPAGENAMEE}}|action=pdfbook}} here] to download this selection of articles as a PDF book.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=DynaLab</id>
		<title>DynaLab</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=DynaLab"/>
				<updated>2012-12-11T00:35:13Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DynaLab (an acronym for DYNAmic LABoratory) provides a dynamic,interactive, hands-on software environment for studying virtually all aspects of programming, as well as time and space complexity issues. The current version of DynaLab supports program animation of Pascal programs, with unbounded reverse execution for repeated study of puzzling program constructs. &lt;br /&gt;
Algorithm animation and computer science concept animation are also being incorporated. &lt;br /&gt;
&lt;br /&gt;
== Original Page ==&lt;br /&gt;
[http://www.cs.montana.edu/~dynalab/ Link]&lt;br /&gt;
&lt;br /&gt;
== Report ==&lt;br /&gt;
A small report relating some details of features of Dynalab ([http://eplmediawiki.di.uminho.pt/uploads/DynaLab.pdf portuguese version]). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;right&amp;quot;&amp;gt;'''Contribution by:''' [mailto:francisco.oliveira.ext@gmail.com Francisco Oliveira]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
[[Category:Tools]]&lt;br /&gt;
[[Category:Pedagogical Tools]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Gram2C</id>
		<title>Gram2C</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Gram2C"/>
				<updated>2012-12-11T00:35:09Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A very useful tool in the context of LP development - [ Gram2C]. missing link&lt;br /&gt;
Gram2C works with abstract grammars and syntax trees in C language.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
[[Category:Tools]]&lt;br /&gt;
[[Category:Generic Tools]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=File:DynaLab.pdf</id>
		<title>File:DynaLab.pdf</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=File:DynaLab.pdf"/>
				<updated>2012-12-11T00:34:19Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=GraphViz</id>
		<title>GraphViz</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=GraphViz"/>
				<updated>2012-12-11T00:30:19Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A very useful tool in the context of LP development - [http://www.research.att.com/sw/tools/graphviz/refs.html GraphViz (Reference Manual)]. &lt;br /&gt;
GraphViz is a system (library and tools) to handle Graphs, namely to plot a graph.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tools &amp;amp; Utilities]]&lt;br /&gt;
[[Category:Tools]]&lt;br /&gt;
[[Category:Generic Tools]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=VM</id>
		<title>VM</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=VM"/>
				<updated>2012-12-11T00:27:47Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''VM''' is a virtual stack-machine that supports integer and float numbers, is slightly different from the usual. &lt;br /&gt;
It contains a special stack to save the internal registers to allow the return from functions, and two heaps for dynamic memory allocation---one generic and the other for character strings; it also has graphic primitives. &lt;br /&gt;
&lt;br /&gt;
== Manual (portuguese version) ==&lt;br /&gt;
[http://eplmediawiki.di.uminho.pt/uploads/Vmdocpt.pdf Link]&lt;br /&gt;
&lt;br /&gt;
== Original Page ==&lt;br /&gt;
[http://www.lri.fr/~paulin/COMPIL/introduction.html Link]&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* [http://eplmediawiki.di.uminho.pt/uploads/Integers.w Integers.w ]  &amp;lt;br&amp;gt;&lt;br /&gt;
* [http://eplmediawiki.di.uminho.pt/uploads/Integers.pdf Integers.pdf]&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtual Machines]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=File:Integers.w</id>
		<title>File:Integers.w</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=File:Integers.w"/>
				<updated>2012-12-11T00:24:45Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=File:Vmdocpt.pdf</id>
		<title>File:Vmdocpt.pdf</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=File:Vmdocpt.pdf"/>
				<updated>2012-12-11T00:24:45Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=File:Integers.pdf</id>
		<title>File:Integers.pdf</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=File:Integers.pdf"/>
				<updated>2012-12-11T00:24:43Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Parrot_VM</id>
		<title>Parrot VM</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Parrot_VM"/>
				<updated>2012-12-11T00:22:39Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Parrot''' is a virtual machine designed to efficiently compile and execute bytecode for dynamic languages. Parrot currently hosts a variety of language implementations in various stages of completion, including Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, and a .NET bytecode translator. &lt;br /&gt;
Visit [http://trac.parrot.org/parrot/wiki/Languages this page] for a complete list of languages targeting Parrot. &lt;br /&gt;
&lt;br /&gt;
== Official Site ==&lt;br /&gt;
[http://www.parrot.org/ Link]&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtual Machines]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Yacc</id>
		<title>Yacc</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Yacc"/>
				<updated>2012-12-11T00:18:55Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Yacc: Yet Another Compiler-Compiler''&lt;br /&gt;
&lt;br /&gt;
Computer program input generally has some structure; in fact, every computer program that does input can be thought of as defining an &amp;quot;input language&amp;quot; which it accepts. &lt;br /&gt;
&lt;br /&gt;
An input language may be as complex as a programming language, or as simple as a sequence of numbers. Unfortunately, usual input facilities are limited, difficult to use, and often are lax about checking their inputs for validity. &lt;br /&gt;
&lt;br /&gt;
Yacc provides a general tool for describing the input to a computer program. The Yacc user specifies the structures of his input, together with code to be invoked as each such structure is recognized. Yacc turns such a specification into a subroutine that handles the input process; frequently, it is convenient and appropriate to have most of the flow of control in the user's application handled by this subroutine. &lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
[http://epaperpress.com/lexandyacc/download/yacc.pdf Link]&lt;br /&gt;
&lt;br /&gt;
== Original Page ==&lt;br /&gt;
[http://dinosaur.compilertools.net/ Link]&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* [http://eplmediawiki.di.uminho.pt/uploads/Lavanda_LexYacc.w Lavanda.w] &lt;br /&gt;
* [http://eplmediawiki.di.uminho.pt/uploads/Lavanda_LexYacc.pdf Lavanda.pdf]&lt;br /&gt;
&lt;br /&gt;
[[Category:Compiler Generators]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://eplmediawiki.di.uminho.pt/index.php?title=Yacc</id>
		<title>Yacc</title>
		<link rel="alternate" type="text/html" href="http://eplmediawiki.di.uminho.pt/index.php?title=Yacc"/>
				<updated>2012-12-11T00:18:44Z</updated>
		
		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;''Yacc: Yet Another Compiler-Compiler''&lt;br /&gt;
&lt;br /&gt;
Computer program input generally has some structure; in fact, every computer program that does input can be thought of as defining an &amp;quot;input language&amp;quot; which it accepts. &lt;br /&gt;
&lt;br /&gt;
An input language may be as complex as a programming language, or as simple as a sequence of numbers. Unfortunately, usual input facilities are limited, difficult to use, and often are lax about checking their inputs for validity. &lt;br /&gt;
&lt;br /&gt;
Yacc provides a general tool for describing the input to a computer program. The Yacc user specifies the structures of his input, together with code to be invoked as each such structure is recognized. Yacc turns such a specification into a subroutine that handles the input process; frequently, it is convenient and appropriate to have most of the flow of control in the user's application handled by this subroutine. &lt;br /&gt;
&lt;br /&gt;
== Manual ==&lt;br /&gt;
[http://epaperpress.com/lexandyacc/download/yacc.pdf Link]&lt;br /&gt;
&lt;br /&gt;
== Original Page ==&lt;br /&gt;
[http://dinosaur.compilertools.net/ Link]&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
* [http://eplmediawiki.di.uminho.pt/uploads/Lavanda_LexYacc.w Lavanda.w]  &amp;lt;br&amp;gt;&lt;br /&gt;
* [http://eplmediawiki.di.uminho.pt/uploads/Lavanda_LexYacc.pdf Lavanda.pdf]&lt;br /&gt;
&lt;br /&gt;
[[Category:Compiler Generators]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>