	<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt">
		<id>https://wiki.dcet.uab.pt/files/index.php?action=history&amp;feed=atom&amp;title=E-folioB_2017%2F2018</id>
		<title>E-folioB 2017/2018 - Histórico de revisão</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.dcet.uab.pt/files/index.php?action=history&amp;feed=atom&amp;title=E-folioB_2017%2F2018"/>
		<link rel="alternate" type="text/html" href="https://wiki.dcet.uab.pt/files/index.php?title=E-folioB_2017/2018&amp;action=history"/>
		<updated>2026-05-15T07:07:51Z</updated>
		<subtitle>Histórico de edições para esta página nesta wiki</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>https://wiki.dcet.uab.pt/files/index.php?title=E-folioB_2017/2018&amp;diff=3891&amp;oldid=prev</id>
		<title>1100896: Criou a página com &quot;E-fólio B: máximo 4 valores  Neste segundo trabalho, partindo dos analisadores léxico e sintático implementados e-fólio A, deve ser feita a geração de código interm...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.dcet.uab.pt/files/index.php?title=E-folioB_2017/2018&amp;diff=3891&amp;oldid=prev"/>
				<updated>2019-01-21T08:42:36Z</updated>
		
		<summary type="html">&lt;p&gt;Criou a página com &amp;quot;E-fólio B: máximo 4 valores  Neste segundo trabalho, partindo dos analisadores léxico e sintático implementados e-fólio A, deve ser feita a geração de código interm...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;E-fólio B: máximo 4 valores&lt;br /&gt;
&lt;br /&gt;
Neste segundo trabalho, partindo dos analisadores léxico e sintático implementados e-fólio A, deve ser feita a geração de código intermédio em TAC (Three Address Code) e otimização desse código gerado. Aconselha-se a que o geração de código intermédio seja feita no analisador sintático e a otimização seja posterior, sobre o resultado anterior.&lt;br /&gt;
&lt;br /&gt;
Tome em atenção que os números devem ser todos trabalhados como sendo do tipo double, mesmo os inteiros. Assim, 5/2 deve ser igual a 2.5 e não 2 (divisão inteira).&lt;br /&gt;
&lt;br /&gt;
Exemplo de tradução para TAC de um programa em LittleC (NOTA: este exemplo foi feito manualmente, sem qualquer tipo de otimização; se encontrarem um resultado diferente na geração de código, coloquem a questão no fórum respetivo)&lt;br /&gt;
&lt;br /&gt;
% i=0;&lt;br /&gt;
&lt;br /&gt;
_t1 = 0&lt;br /&gt;
i = _t1&lt;br /&gt;
&lt;br /&gt;
% x=0;&lt;br /&gt;
&lt;br /&gt;
_t2 = 0&lt;br /&gt;
x = _t2&lt;br /&gt;
&lt;br /&gt;
% while(i&amp;lt;10){&lt;br /&gt;
&lt;br /&gt;
l1: &lt;br /&gt;
&lt;br /&gt;
_t3 = i&lt;br /&gt;
_t4 = 10&lt;br /&gt;
ifz _t3 &amp;lt; _t4 goto l2&lt;br /&gt;
&lt;br /&gt;
%  x=x+i;&lt;br /&gt;
&lt;br /&gt;
_t5 = x&lt;br /&gt;
_t6 = i&lt;br /&gt;
_t7 = _t5 + _t6&lt;br /&gt;
x = _t7&lt;br /&gt;
&lt;br /&gt;
%  i=i+1;&lt;br /&gt;
&lt;br /&gt;
_t8 = i&lt;br /&gt;
_t9 = 1&lt;br /&gt;
_t10 = _t8 + _t9&lt;br /&gt;
i = _t10&lt;br /&gt;
&lt;br /&gt;
%}&lt;br /&gt;
&lt;br /&gt;
goto l1&lt;br /&gt;
&lt;br /&gt;
l2:&lt;br /&gt;
&lt;br /&gt;
% if(x&amp;lt;50){&lt;br /&gt;
_t11 = x&lt;br /&gt;
_t12 = 50&lt;br /&gt;
ifz _t11&amp;lt;_t12 goto l3&lt;br /&gt;
&lt;br /&gt;
%  x=50;&lt;br /&gt;
_t13 = 50&lt;br /&gt;
x = _t13&lt;br /&gt;
&lt;br /&gt;
% }&lt;br /&gt;
&lt;br /&gt;
goto l4&lt;br /&gt;
&lt;br /&gt;
l3:&lt;br /&gt;
&lt;br /&gt;
% else{}&lt;br /&gt;
&lt;br /&gt;
l4:&lt;br /&gt;
&lt;br /&gt;
% y=0;&lt;br /&gt;
&lt;br /&gt;
_t14 = 0&lt;br /&gt;
y = _t14&lt;br /&gt;
&lt;br /&gt;
% for(j=0;j&amp;lt;5;j=j+1){&lt;br /&gt;
&lt;br /&gt;
_t15 = 0&lt;br /&gt;
j = _t15&lt;br /&gt;
&lt;br /&gt;
l5:&lt;br /&gt;
_t16 = j&lt;br /&gt;
_t17 = 5&lt;br /&gt;
ifz _t16 &amp;lt; _t17 goto l6&lt;br /&gt;
&lt;br /&gt;
%  y = y + x - j;&lt;br /&gt;
&lt;br /&gt;
_t18 = y&lt;br /&gt;
_t19 = x&lt;br /&gt;
_t20 = _t18 + _t19&lt;br /&gt;
_t21 = j&lt;br /&gt;
_t22 = _t20 - _t21&lt;br /&gt;
y = _t22&lt;br /&gt;
&lt;br /&gt;
%}&lt;br /&gt;
_t23 = j&lt;br /&gt;
_t24 = 1&lt;br /&gt;
_t25 = _t23 + _t24&lt;br /&gt;
j = _t25&lt;br /&gt;
goto l5&lt;br /&gt;
&lt;br /&gt;
l6:&lt;br /&gt;
&lt;br /&gt;
Formato de entrega: o trabalho deve ser enviado com todos os ficheiro contidos num ficheiro ZIP, incluindo todos os ficheiros de código, bem como um pequeno relatório (não mais de 3 páginas) a explicar as opções tomadas, e um ficheiro readme.txt a explicar como devem ser compilados os ficheiros de modo a obter o compilador, bem como a explicar os argumentos do mesmo.&lt;/div&gt;</summary>
		<author><name>1100896</name></author>	</entry>

	</feed>