diff --git a/AvaliaTrabs/Exemplo5/MEPA b/AvaliaTrabs/Exemplo5/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..e24998545d45466a2091ccb5310b1145c5bd229f
--- /dev/null
+++ b/AvaliaTrabs/Exemplo5/MEPA
@@ -0,0 +1,38 @@
+     INPP
+     AMEM 2
+     AMEM 3
+     DSVS R00
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     CRCT 0
+     ARMZ 0, 2
+     CRCT 1
+     ARMZ 0, 3
+     CRCT 1
+     ARMZ 0, 1
+R01: NADA 
+     CRVL 0, 1
+     CRVL 0, 0
+     CMEG
+     DSVF R02
+     CRVL 0, 2
+     CRVL 0, 3
+     SOMA
+     ARMZ 0, 4
+     CRVL 0, 3
+     ARMZ 0, 2
+     CRVL 0, 4
+     ARMZ 0, 3
+     CRVL 0, 1
+     CRCT 1
+     SOMA
+     ARMZ 0, 1
+     DSVS R01
+R02: NADA 
+     CRVL 0, 0
+     IMPR
+     CRVL 0, 2
+     IMPR
+     DMEM 5
+     PARA
diff --git a/AvaliaTrabs/Exemplo5/pgma.pas b/AvaliaTrabs/Exemplo5/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..1e2788ff256d0fbd41b053843026ef70ef183713
--- /dev/null
+++ b/AvaliaTrabs/Exemplo5/pgma.pas
@@ -0,0 +1,15 @@
+program exemplo5 (input, output);
+var n, k      : integer;
+   f1, f2, f3 : integer;
+begin
+   read (n);
+   f1:=0; f2:=1; k:=1;
+   while k<=n do
+   begin
+      f3:=f1+f2;
+      f1:=f2;
+      f2:=f3;
+      k:=k+1;
+   end;
+   write (n, f1);
+end.
diff --git a/AvaliaTrabs/Exemplo7.01/MEPA b/AvaliaTrabs/Exemplo7.01/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..5ec13076c19d66ffd90fa44d97edda57e6a49d4c
--- /dev/null
+++ b/AvaliaTrabs/Exemplo7.01/MEPA
@@ -0,0 +1,33 @@
+     INPP
+     AMEM 3
+     DSVS R00
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     LEIT
+     ARMZ 0, 1
+     CRCT 0
+     ARMZ 0, 2
+R01: NADA 
+     CRVL 0, 0
+     CRVL 0, 1
+     CMEG
+     DSVF R02
+     CRVL 0, 2
+     CRVL 0, 0
+     CRVL 0, 0
+     MULT
+     SOMA
+     ARMZ 0, 2
+     CRVL 0, 0
+     IMPR
+     CRVL 0, 2
+     IMPR
+     CRVL 0, 0
+     CRCT 1
+     SOMA
+     ARMZ 0, 0
+     DSVS R01
+R02: NADA 
+     DMEM 3
+     PARA
diff --git a/AvaliaTrabs/Exemplo7.01/pgma.pas b/AvaliaTrabs/Exemplo7.01/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..d6bd70e56b3250849c19cb014bef98bc17dc1e77
--- /dev/null
+++ b/AvaliaTrabs/Exemplo7.01/pgma.pas
@@ -0,0 +1,15 @@
+program teste (input, output); 
+var m, n, s : integer;
+begin
+   read(m,n);
+   s:=0;
+   while m<=n do
+   begin
+      s:=s+m*m;
+      write (m,s);
+      m:=m+1;
+   end;
+   
+
+   
+end.
diff --git a/AvaliaTrabs/Exemplo7.02/MEPA b/AvaliaTrabs/Exemplo7.02/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..cde0b0c818609c9d6725784faf1fdf2cd4b5041c
--- /dev/null
+++ b/AvaliaTrabs/Exemplo7.02/MEPA
@@ -0,0 +1,55 @@
+     INPP
+     AMEM 3
+     DSVS R00
+R01: ENPR 1 
+     AMEM 1
+     DSVS R02
+R02: NADA 
+     CRVL 0, 2
+     CRVL 0, 2
+     MULT
+     ARMZ 1, 0
+     CRVL 0, 2
+     CRCT 2
+     DIVI
+     CRCT 2
+     MULT
+     CRVL 0, 2
+     CMIG
+     DSVF R04
+     CRVL 0, 1
+     CRVL 1, 0
+     SOMA
+     ARMZ 0, 1
+     DSVS R03
+R04: NADA 
+     CRVL 0, 1
+     CRVL 1, 0
+     SUBT
+     ARMZ 0, 1
+R03: NADA 
+     DMEM 1
+     RTPR 1, 0
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     CRCT 0
+     ARMZ 0, 1
+     CRCT 0
+     ARMZ 0, 2
+R05: NADA 
+     CRVL 0, 2
+     CRVL 0, 0
+     CMEG
+     DSVF R06
+     CHPR R01, 0
+     CRVL 0, 1
+     IMPR
+     CRVL 0, 2
+     CRCT 1
+     SOMA
+     ARMZ 0, 2
+     DSVS R05
+R06: NADA 
+     DMEM 3
+     PARA
diff --git a/AvaliaTrabs/Exemplo7.02/pgma.pas b/AvaliaTrabs/Exemplo7.02/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..e6a65e7383455e2ca84dfeeca3d658b5b120c426
--- /dev/null
+++ b/AvaliaTrabs/Exemplo7.02/pgma.pas
@@ -0,0 +1,22 @@
+program exemplo73 (input, output);
+var n, s, i :  integer;
+   procedure soma;
+   var q : integer;
+   begin
+      q:=i*i;
+      if (i div 2) * 2 = i
+      then
+         s:=s+q;
+      else
+         s:=s-q;
+   end;
+begin
+   read (n);
+   s:=0; i:=0;
+   while i<=n do
+   begin
+      soma; write(s); i:=i+1;
+   end;
+end.
+      
+      
\ No newline at end of file
diff --git a/AvaliaTrabs/Exemplo7.03/MEPA b/AvaliaTrabs/Exemplo7.03/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..45f8b88e08cc4d4383fdf5814050d1dcf993fbd9
--- /dev/null
+++ b/AvaliaTrabs/Exemplo7.03/MEPA
@@ -0,0 +1,54 @@
+     INPP
+     AMEM 2
+     DSVS R00
+R01: ENPR 1 
+     AMEM 1
+     DSVS R02
+R02: NADA 
+     CRCT 2
+     CRVL 1, -4
+     MULT
+     ARMZ 1, -4
+     CRCT 2
+     CRVL 1, -4
+     MULT
+     ARMZ 1, 0
+     CRVL 1, 0
+     CRCT 1
+     SOMA
+     ARMZ 0, 0
+     DMEM 1
+     RTPR 1, 1
+R00: NADA 
+     CRCT 3
+     ARMZ 0, 0
+     CRCT 4
+     ARMZ 0, 1
+     CRVL 0, 1
+     CHPR R01, 0
+     CRVL 0, 0
+     IMPR
+     CRVL 0, 1
+     IMPR
+     CRVL 0, 0
+     CHPR R01, 0
+     CRVL 0, 0
+     IMPR
+     CRVL 0, 1
+     IMPR
+     CRVL 0, 1
+     CRVL 0, 0
+     SOMA
+     CHPR R01, 0
+     CRVL 0, 0
+     IMPR
+     CRVL 0, 1
+     IMPR
+     CRCT 7
+     CHPR R01, 0
+     CRVL 0, 0
+     IMPR
+     CRVL 0, 1
+     IMPR
+     DMEM 2
+     PARA
diff --git a/AvaliaTrabs/Exemplo7.03/pgma.pas b/AvaliaTrabs/Exemplo7.03/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..85d8c6bf4fa93b430591d75f26c11c2b2dd61f6f
--- /dev/null
+++ b/AvaliaTrabs/Exemplo7.03/pgma.pas
@@ -0,0 +1,18 @@
+program exemplo3 (input, output);
+var z, t :  integer;
+   procedure g(t : integer);
+   var x :  integer;
+   begin
+      t:=2*t;
+      x:=2*t;
+      z:=x+1
+   end;
+begin
+   z:=3;
+   t:=4;
+   g(t); write (z,t);
+   g(z); write (z,t);
+   g(t+z); write (z,t);
+   g(7); write (z,t)
+end.
+   
\ No newline at end of file
diff --git a/AvaliaTrabs/Exemplo7.04/MEPA b/AvaliaTrabs/Exemplo7.04/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..42d6344eb9c5796d7da644d9cc6f3ec0eaa99f50
--- /dev/null
+++ b/AvaliaTrabs/Exemplo7.04/MEPA
@@ -0,0 +1,68 @@
+     INPP
+     AMEM 2
+     DSVS R00
+R01: ENPR 1 
+     AMEM 1
+     DSVS R02
+R02: NADA 
+     CRVL 1, -4
+     CRVL 1, -4
+     MULT
+     ARMZ 1, 0
+     CRVL 0, 0
+     CRVL 0, 1
+     SOMA
+     CRVL 1, 0
+     SOMA
+     ARMZ 0, 0
+     CRVL 0, 0
+     IMPR
+     DMEM 1
+     RTPR 1, 1
+R03: ENPR 1 
+     AMEM 1
+     DSVS R04
+R05: ENPR 2 
+     AMEM 1
+     DSVS R06
+R06: NADA 
+     CRVL 0, 0
+     CRVL 1, 0
+     SOMA
+     CRVL 2, -4
+     SOMA
+     ARMZ 2, 0
+     CRVL 2, 0
+     CHPR R01, 2
+     CRVL 2, 0
+     ARMZ 0, 0
+     DMEM 1
+     RTPR 2, 1
+R04: NADA 
+     CRVL 1, -4
+     CRCT 1
+     SOMA
+     ARMZ 1, 0
+     CRVL 1, 0
+     CHPR R05, 1
+     CRVL 0, 0
+     CRVL 1, 0
+     SOMA
+     CHPR R01, 1
+     DMEM 1
+     RTPR 1, 1
+R00: NADA 
+     CRCT 1
+     ARMZ 0, 0
+     CRCT 3
+     ARMZ 0, 1
+     CRVL 0, 1
+     CHPR R03, 0
+     CRVL 0, 1
+     CHPR R01, 0
+     CRVL 0, 1
+     IMPR
+     CRVL 0, 0
+     IMPR
+     DMEM 2
+     PARA
diff --git a/AvaliaTrabs/Exemplo7.04/pgma.pas b/AvaliaTrabs/Exemplo7.04/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..290d2dcc216da530abf9010982d9b056b0e41c76
--- /dev/null
+++ b/AvaliaTrabs/Exemplo7.04/pgma.pas
@@ -0,0 +1,31 @@
+program exemplo74 (input, output);
+var z, x: integer;
+   procedure g(t:integer);
+   var y : integer;
+   begin
+      y:=t*t; z:=z+x+y;
+      write(z)
+   end;
+
+   procedure h (y : integer);
+   var x : integer;
+      procedure f(y : integer);
+      var t : integer;
+      begin
+         t:=z+x+y; g(t);
+         z:=t
+      end;
+   begin
+      x:=y+1;
+      f(x);
+      g(z+x)
+   end;
+begin
+   z:=1;
+   x:=3;
+   h(x);
+   g(x);
+   write(x,z)
+end.
+   
+
diff --git a/AvaliaTrabs/Exemplo7.05/MEPA b/AvaliaTrabs/Exemplo7.05/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..431ff02ab80daed1bf63a367d230a6c545b0d53e
--- /dev/null
+++ b/AvaliaTrabs/Exemplo7.05/MEPA
@@ -0,0 +1,56 @@
+     INPP
+     AMEM 2
+     DSVS R00
+R01: ENPR 1 
+     AMEM 2
+     DSVS R02
+R02: NADA 
+     CRVL 1, -5
+     CRCT 2
+     CMME
+     DSVF R04
+     CRVL 1, -5
+     ARMZ 1, -6
+     CRCT 0
+     ARMI 1, -4
+     DSVS R03
+R04: NADA 
+     AMEM 1
+     CRVL 1, -5
+     CRCT 1
+     SUBT
+     CREN 1, 0
+     CHPR R01, 1
+     AMEM 1
+     CRVL 1, -5
+     CRCT 2
+     SUBT
+     CREN 1, 1
+     CHPR R01, 1
+     SOMA
+     ARMZ 1, -6
+     CRVL 1, 0
+     CRVL 1, 1
+     SOMA
+     CRCT 1
+     SOMA
+     ARMI 1, -4
+R03: NADA 
+     CRVL 1, -5
+     IMPR
+     CRVI 1, -4
+     IMPR
+     DMEM 2
+     RTPR 1, 2
+R00: NADA 
+     AMEM 1
+     CRCT 3
+     CREN 0, 0
+     CHPR R01, 0
+     ARMZ 0, 1
+     CRVL 0, 1
+     IMPR
+     CRVL 0, 0
+     IMPR
+     DMEM 2
+     PARA
diff --git a/AvaliaTrabs/Exemplo7.05/pgma.pas b/AvaliaTrabs/Exemplo7.05/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..a0a60b18d4b3192da4bfa4f11542f8ef97b8a700
--- /dev/null
+++ b/AvaliaTrabs/Exemplo7.05/pgma.pas
@@ -0,0 +1,20 @@
+program exemplo75 (input, output);
+var m,n :  integer;
+function f ( n : integer; var k:integer ) : integer;
+var p, q : integer;
+begin    
+   if n<2 then
+      begin 
+         f:=n; k:=0
+      end
+   else
+      begin
+         f:=f(n-1,p) + f(n-2,q);
+         k:=p+q+1
+      end;
+   write (n, k)
+end;
+begin
+   n:=f(3,m);
+   write(n, m)
+end.
diff --git a/AvaliaTrabs/Exemplo8.05/MEPA b/AvaliaTrabs/Exemplo8.05/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..b89306b60e85b79cac9d4e2d459b13b8ac676a29
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.05/MEPA
@@ -0,0 +1,38 @@
+     INPP
+     AMEM 2
+     AMEM 3
+     DSVS R00
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     CRCT 0
+     ARMZ 0, 2
+     CRCT 0
+     ARMZ 0, 3
+     CRCT 1
+     ARMZ 0, 1
+R01: NADA 
+     CRVL 0, 1
+     CRVL 0, 0
+     CMEG
+     DSVF R02
+     CRVL 0, 2
+     CRVL 0, 3
+     SOMA
+     ARMZ 0, 4
+     CRVL 0, 3
+     ARMZ 0, 2
+     CRVL 0, 4
+     ARMZ 0, 3
+     CRVL 0, 1
+     CRCT 1
+     SOMA
+     ARMZ 0, 1
+     DSVS R01
+R02: NADA 
+     CRVL 0, 0
+     IMPR
+     CRVL 0, 2
+     IMPR
+     DMEM 5
+     PARA
diff --git a/AvaliaTrabs/Exemplo8.05/pgma.pas b/AvaliaTrabs/Exemplo8.05/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..c2434680f43c676c2a6225652ccf81accf468164
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.05/pgma.pas
@@ -0,0 +1,16 @@
+program exemplo5 (input, output);
+var n, k      : integer;
+    f1, f2, f3 : integer;
+
+begin
+   read(n);
+   f1:=0; f2:=0; k:=1;
+   while k<=n do
+   begin
+      f3:=f1+f2;
+      f1:=f2;
+      f2:=f3;
+      k:=k+1
+   end;
+   write(n, f1)
+end.
diff --git a/AvaliaTrabs/Exemplo8.06/MEPA b/AvaliaTrabs/Exemplo8.06/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..421577671ea997540bcf4e46ce8f06ca4ae870cc
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.06/MEPA
@@ -0,0 +1,39 @@
+     INPP
+     AMEM 2
+     DSVS R00
+R01: ENPR 1 
+     AMEM 1
+     DSVS R02
+R02: NADA 
+     CRVL 0, 0
+     ARMZ 1, 0
+     CRVL 0, 0
+     CRCT 1
+     SUBT
+     ARMZ 0, 0
+     CRVL 1, 0
+     CRCT 1
+     CMMA
+     DSVF R04
+     CHPR R01, 1
+     DSVS R03
+R04: NADA 
+     CRCT 1
+     ARMZ 0, 1
+R03: NADA 
+     CRVL 0, 1
+     CRVL 1, 0
+     MULT
+     ARMZ 0, 1
+     DMEM 1
+     RTPR 1, 0
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     CHPR R01, 0
+     CRVL 0, 0
+     IMPR
+     CRVL 0, 1
+     IMPR
+     DMEM 2
+     PARA
diff --git a/AvaliaTrabs/Exemplo8.06/pgma.pas b/AvaliaTrabs/Exemplo8.06/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..58f7185b70e0de9b76472c274f97208fcc6650f6
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.06/pgma.pas
@@ -0,0 +1,16 @@
+program exemplo6(input, output);
+var x, y :  integer;
+   procedure p;
+   var z : integer;
+   begin 
+      z:=x; x:=x-1;
+      if z>1
+         then p
+      else y:=1;
+      y:=y*z
+   end;
+begin
+   read (x);
+   p;
+   write (x,y)
+end.
diff --git a/AvaliaTrabs/Exemplo8.07/MEPA b/AvaliaTrabs/Exemplo8.07/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..2cc21afbe5e05ea415b045c63a0f0cfca3e445e4
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.07/MEPA
@@ -0,0 +1,77 @@
+     INPP
+     AMEM 2
+     DSVS R00
+R01: ENPR 1 
+     AMEM 1
+     DSVS R02
+R02: NADA 
+     CRVL 0, 0
+     ARMZ 1, 0
+     CRVL 0, 0
+     CRCT 1
+     SUBT
+     ARMZ 0, 0
+     CRVL 1, 0
+     CRCT 1
+     CMMA
+     DSVF R04
+     CHPR R01, 1
+     DSVS R03
+R04: NADA 
+     CRCT 1
+     ARMZ 0, 1
+R03: NADA 
+     CRVL 0, 1
+     CRVL 1, 0
+     MULT
+     ARMZ 0, 1
+     DMEM 1
+     RTPR 1, 0
+R05: ENPR 1 
+     AMEM 2
+     DSVS R06
+R06: NADA 
+     CRVL 0, 0
+     ARMZ 1, 0
+     CRVL 0, 0
+     CRCT 1
+     SUBT
+     ARMZ 1, 1
+     CRVL 1, 1
+     ARMZ 0, 0
+     CRVL 1, 0
+     CRCT 0
+     CMIG
+     DSVF R08
+     CRCT 1
+     ARMZ 0, 1
+     DSVS R07
+R08: NADA 
+     CRVL 1, 0
+     CRCT 2
+     DIVI
+     CRCT 2
+     MULT
+     CRVL 1, 0
+     CMIG
+     DSVF R10
+     CHPR R05, 1
+     DSVS R09
+R10: NADA 
+     CHPR R01, 1
+R09: NADA 
+R07: NADA 
+     CRVL 0, 1
+     CRVL 1, 0
+     MULT
+     ARMZ 0, 1
+     DMEM 2
+     RTPR 1, 0
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     CHPR R05, 0
+     CRVL 0, 1
+     IMPR
+     DMEM 2
+     PARA
diff --git a/AvaliaTrabs/Exemplo8.07/pgma.pas b/AvaliaTrabs/Exemplo8.07/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..353372f7364131151eb14b8ca6982497e8d65006
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.07/pgma.pas
@@ -0,0 +1,29 @@
+program exemplo7(input, output);
+var x, y :  integer;
+procedure p;
+var z : integer;
+begin
+   z:=x; x:=x-1;
+   if z>1
+      then p
+   else y:=1;
+   y:=y*z
+end;
+
+procedure q;
+var s, t : integer;
+begin
+   s:=x; t:=x-1; x:=t;
+   if s=0 then y:=1
+   else
+      if ( (s div 2)*2) = s
+         then q
+      else p;
+   y:=y*s
+end;
+
+begin
+   read(x);
+   q;
+   write(y)
+end.
diff --git a/AvaliaTrabs/Exemplo8.08/MEPA b/AvaliaTrabs/Exemplo8.08/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..c0b470b5adc4187179dbf64aad8cbbe50b4441b7
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.08/MEPA
@@ -0,0 +1,65 @@
+     INPP
+     AMEM 2
+     DSVS R00
+R01: ENPR 1 
+     AMEM 1
+     DSVS R02
+R03: ENPR 2 
+     AMEM 1
+     DSVS R04
+R04: NADA 
+     CRVL 1, 0
+     CRCT 1
+     SUBT
+     ARMZ 2, 0
+     CRVL 0, 0
+     CRCT 1
+     SUBT
+     ARMZ 0, 0
+     CRVL 2, 0
+     CRCT 1
+     CMIG
+     DSVF R06
+     CHPR R01, 2
+     DSVS R05
+R06: NADA 
+     CRCT 1
+     ARMZ 0, 1
+R05: NADA 
+     CRVL 0, 1
+     CRVL 2, 0
+     MULT
+     ARMZ 0, 1
+     DMEM 1
+     RTPR 2, 0
+R02: NADA 
+     CRVL 0, 0
+     ARMZ 1, 0
+     CRVL 0, 0
+     CRCT 1
+     SUBT
+     ARMZ 0, 0
+     CRVL 1, 0
+     CRCT 1
+     CMMA
+     DSVF R08
+     CHPR R01, 1
+     DSVS R07
+R08: NADA 
+     CRCT 1
+     ARMZ 0, 1
+R07: NADA 
+     CRVL 0, 1
+     CRVL 1, 0
+     MULT
+     ARMZ 0, 1
+     DMEM 1
+     RTPR 1, 0
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     CHPR R01, 0
+     CRVL 0, 1
+     IMPR
+     DMEM 2
+     PARA
diff --git a/AvaliaTrabs/Exemplo8.08/pgma.pas b/AvaliaTrabs/Exemplo8.08/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..20147b2d3da0d9d39dc688b04e58a7911143d532
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.08/pgma.pas
@@ -0,0 +1,25 @@
+program exemplo8 (input, output);
+var x, y :  integer;
+   procedure p;
+   var z :  integer;
+      procedure q;
+      var s :  integer;
+      begin
+         s:=z-1; x:=x-1;
+         if s=1
+            then  p
+            else y:=1;
+         y:=y*s
+      end;
+   begin
+      z:=x; x:=x-1;
+      if z>1
+         then p
+         else y:=1;
+      y:=y*z
+   end;
+begin
+   read(x);
+   p;
+   write(y)
+end.
diff --git a/AvaliaTrabs/Exemplo8.09/MEPA b/AvaliaTrabs/Exemplo8.09/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..f0a234378ae6aba2590057eb5f3405f2967bca92
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.09/MEPA
@@ -0,0 +1,37 @@
+     INPP
+     AMEM 2
+     DSVS R00
+R01: ENPR 1 
+     AMEM 1
+     DSVS R02
+R02: NADA 
+     CRVL 1, -4
+     CRCT 1
+     CMMA
+     DSVF R04
+     CRVL 1, -4
+     CRCT 1
+     SUBT
+     CHPR R01, 1
+     DSVS R03
+R04: NADA 
+     CRCT 1
+     ARMZ 0, 1
+R03: NADA 
+     CRVL 0, 1
+     ARMZ 1, 0
+     CRVL 1, 0
+     CRVL 1, -4
+     MULT
+     ARMZ 0, 1
+     DMEM 1
+     RTPR 1, 1
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     CRVL 0, 0
+     CHPR R01, 0
+     CRVL 0, 1
+     IMPR
+     DMEM 2
+     PARA
diff --git a/AvaliaTrabs/Exemplo8.09/pgma.pas b/AvaliaTrabs/Exemplo8.09/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..887102c5f5be27fc921a34821dfdf14192ee7897
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.09/pgma.pas
@@ -0,0 +1,16 @@
+program exemplo9 (input, output);
+var x, y :  integer;
+   procedure p(t : integer);
+   var z : integer;
+   begin
+      if t>1
+         then p(t-1)
+         else y:=1;
+      z:=y;
+      y:=z*t
+   end; 
+begin
+   read(x);
+   p(x);
+   write(y)
+end.
diff --git a/AvaliaTrabs/Exemplo8.10/MEPA b/AvaliaTrabs/Exemplo8.10/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..ebadf1276fae95d256b01a3279249a78eb3807a9
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.10/MEPA
@@ -0,0 +1,46 @@
+     INPP
+     AMEM 1
+     DSVS R00
+R01: ENPR 1 
+     AMEM 1
+     DSVS R02
+R02: NADA 
+     CRVL 1, -5
+     CRCT 2
+     CMME
+     DSVF R04
+     CRVI 1, -4
+     CRVL 1, -5
+     SOMA
+     ARMI 1, -4
+     DSVS R03
+R04: NADA 
+     CRVI 1, -4
+     ARMZ 1, 0
+     CRVL 1, -5
+     CRCT 1
+     SUBT
+     CREN 1, 0
+     CHPR R01, 1
+     CRVL 1, 0
+     ARMI 1, -4
+     CRVL 1, -5
+     CRCT 2
+     SUBT
+     CRVL 1, -4
+     CHPR R01, 1
+R03: NADA 
+     CRVL 1, -5
+     IMPR
+     CRVI 1, -4
+     IMPR
+     DMEM 1
+     RTPR 1, 2
+R00: NADA 
+     CRCT 0
+     ARMZ 0, 0
+     CRCT 3
+     CREN 0, 0
+     CHPR R01, 0
+     DMEM 1
+     PARA
diff --git a/AvaliaTrabs/Exemplo8.10/pgma.pas b/AvaliaTrabs/Exemplo8.10/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..9bf3a6355293eaf908d4a2a7d88a7c0694ba788f
--- /dev/null
+++ b/AvaliaTrabs/Exemplo8.10/pgma.pas
@@ -0,0 +1,22 @@
+program exemplo1 (input, output);
+var k : integer;
+procedure p(    n : integer; var g:integer);
+var h : integer;
+begin
+   if n<2 then
+      g:=g+n
+   else
+   begin
+      h:=g;
+      p(n-1,h);
+      g:=h;
+      p(n-2, g)
+   end;
+   write(n,g)
+end;
+begin
+   k:=0;
+   p(3,k)
+end.
+   
+      
diff --git a/AvaliaTrabs/ExemploErro1/MEPA b/AvaliaTrabs/ExemploErro1/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..8186c4d95b6cc2e0adb8299976a2fa2bab8e0c1e
--- /dev/null
+++ b/AvaliaTrabs/ExemploErro1/MEPA
@@ -0,0 +1,11 @@
+     INPP
+     AMEM 2
+     DSVS R00
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     LEIT
+     ARMZ 0, 1
+     CRVL 0, 0
+     CRVL 0, 1
+     CMMA
diff --git a/AvaliaTrabs/ExemploErro1/pgma.pas b/AvaliaTrabs/ExemploErro1/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..353874fcd0065519a704625661be41d28ec7ad5d
--- /dev/null
+++ b/AvaliaTrabs/ExemploErro1/pgma.pas
@@ -0,0 +1,8 @@
+program exemploErro1 (input, output);
+var n, k      : integer;
+begin
+   read (n);
+   read (k);
+   n := n>k;
+   write (n)
+end.
diff --git a/AvaliaTrabs/ExemploErro2/MEPA b/AvaliaTrabs/ExemploErro2/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..8186c4d95b6cc2e0adb8299976a2fa2bab8e0c1e
--- /dev/null
+++ b/AvaliaTrabs/ExemploErro2/MEPA
@@ -0,0 +1,11 @@
+     INPP
+     AMEM 2
+     DSVS R00
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     LEIT
+     ARMZ 0, 1
+     CRVL 0, 0
+     CRVL 0, 1
+     CMMA
diff --git a/AvaliaTrabs/ExemploErro2/pgma.pas b/AvaliaTrabs/ExemploErro2/pgma.pas
new file mode 100755
index 0000000000000000000000000000000000000000..3430f068994df4271ab480af358cd481cf3e6370
--- /dev/null
+++ b/AvaliaTrabs/ExemploErro2/pgma.pas
@@ -0,0 +1,8 @@
+program exemploErro2 (input, output);
+var n, k      : integer;
+begin
+   read (n);
+   read (k);
+   if (n+1) then n:=1;
+   write (n)
+end.
diff --git a/AvaliaTrabs/MEPA b/AvaliaTrabs/MEPA
new file mode 100644
index 0000000000000000000000000000000000000000..83d8e7751932b0961c023cdca5e76071b2c35f47
--- /dev/null
+++ b/AvaliaTrabs/MEPA
@@ -0,0 +1,11 @@
+     INPP
+     AMEM 3
+     DSVS R00
+R01: ENPR 1 
+     AMEM 1
+     DSVS R02
+R02: NADA 
+     CRVL 0, 2
+     CRVL 0, 2
+     MULT
+     ARMZ 1, 0
diff --git a/AvaliaTrabs/MEPA-Res b/AvaliaTrabs/MEPA-Res
new file mode 100644
index 0000000000000000000000000000000000000000..8186c4d95b6cc2e0adb8299976a2fa2bab8e0c1e
--- /dev/null
+++ b/AvaliaTrabs/MEPA-Res
@@ -0,0 +1,11 @@
+     INPP
+     AMEM 2
+     DSVS R00
+R00: NADA 
+     LEIT
+     ARMZ 0, 0
+     LEIT
+     ARMZ 0, 1
+     CRVL 0, 0
+     CRVL 0, 1
+     CMMA
diff --git a/AvaliaTrabs/avaliaTrab.sh b/AvaliaTrabs/avaliaTrab.sh
new file mode 100755
index 0000000000000000000000000000000000000000..b10bcc2849788a9532235a7f57f94be92cd8546b
--- /dev/null
+++ b/AvaliaTrabs/avaliaTrab.sh
@@ -0,0 +1,15 @@
+
+EXEMPLOS="Exemplo5 Exemplo7.01 Exemplo7.02 Exemplo7.03 Exemplo7.04 Exemplo7.05 Exemplo8.05 Exemplo8.06 Exemplo8.07 Exemplo8.08 Exemplo8.09 Exemplo8.10 ExemploErro1 ExemploErro2"
+
+
+echo "Usage: avaliaTrab.sh <arquivo executavel compilador"
+
+for exemplo in $EXEMPLOS; do
+    echo -n $exemplo "... "
+    cp $exemplo"/pgma.pas" "./"
+    cp $exemplo"/MEPA" "MEPA-Res"
+
+    $1 ./pgma.pas > res
+    diff MEPA MEPA-Res  -bBt
+done
+
diff --git a/AvaliaTrabs/compilador b/AvaliaTrabs/compilador
new file mode 100755
index 0000000000000000000000000000000000000000..9b92e31a6a75801f4dfb38b1536c6d239686e8f4
Binary files /dev/null and b/AvaliaTrabs/compilador differ
diff --git a/AvaliaTrabs/forward-2024-2.pdf b/AvaliaTrabs/forward-2024-2.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..ffcf7a8389bf9e35209092a3e1cb75ba48de6d94
Binary files /dev/null and b/AvaliaTrabs/forward-2024-2.pdf differ
diff --git a/AvaliaTrabs/forward1.pas b/AvaliaTrabs/forward1.pas
new file mode 100644
index 0000000000000000000000000000000000000000..a5b19357c40a0f3a8d54d7939e8ce9390d99a5af
--- /dev/null
+++ b/AvaliaTrabs/forward1.pas
@@ -0,0 +1,36 @@
+Program Maximum_Minimum_Number(output);
+
+var 
+    res: integer;
+
+function max(num1, num2: integer): integer; forward;
+
+function min(num1, num2: integer): integer;
+var
+   result: integer;
+
+begin
+   if (num1 > num2) then
+      result := num2
+   else
+      result := num1;
+   min := result;
+end;
+
+
+function max(num1, num2: integer): integer;
+var
+   result: integer;
+
+begin
+   if (num1 > num2) then
+      result := num1
+   else
+      result := num2;
+   max := result;
+end;
+
+begin
+  res := max(5,10);
+  writeln(res);
+end.
diff --git a/AvaliaTrabs/forward2.pas b/AvaliaTrabs/forward2.pas
new file mode 100644
index 0000000000000000000000000000000000000000..f4658690219171780b1096a245108dadf9ca0771
--- /dev/null
+++ b/AvaliaTrabs/forward2.pas
@@ -0,0 +1,18 @@
+Program OutputLines(output);
+
+procedure fun1() ; forward;
+
+procedure fun2();
+begin
+    write(0);
+    fun1();
+end;
+
+procedure fun1();
+begin
+   write(1);
+end;
+
+begin
+    fun2();
+end.
diff --git a/AvaliaTrabs/pgma.pas b/AvaliaTrabs/pgma.pas
new file mode 100644
index 0000000000000000000000000000000000000000..3430f068994df4271ab480af358cd481cf3e6370
--- /dev/null
+++ b/AvaliaTrabs/pgma.pas
@@ -0,0 +1,8 @@
+program exemploErro2 (input, output);
+var n, k      : integer;
+begin
+   read (n);
+   read (k);
+   if (n+1) then n:=1;
+   write (n)
+end.
diff --git a/AvaliaTrabs/res b/AvaliaTrabs/res
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/compilador.y b/compilador.y
index 644d0049f661eadfcba6fab5a6e0769968185203..4633f25d8a9fa1b497f112c38df17ba312246892 100644
--- a/compilador.y
+++ b/compilador.y
@@ -192,7 +192,7 @@ declaracao_procedimento: PROCEDURE IDENT {
                char buffer[50];
                desempilha(buffer,proc);
                l_elem = busca(buffer,ts);
-               sprintf(buffer,"RTPR %d,%d",l_elem->nivel,l_elem->info.pr.quant);
+               sprintf(buffer,"RTPR %d, %d",l_elem->nivel,l_elem->info.pr.quant);
                geraCodigo(NULL,buffer);
                desloc = retira_vs_pf(ts);
                mostra_ts(ts);
@@ -234,7 +234,7 @@ declaracao_funcao: FUNCTION IDENT {
                char buffer[50];
                desempilha(buffer,proc);
                l_elem = busca(buffer,ts);
-               sprintf(buffer,"RTPR %d,%d",l_elem->nivel,l_elem->info.fun.quant);
+               sprintf(buffer,"RTPR %d, %d",l_elem->nivel,l_elem->info.fun.quant);
                geraCodigo(NULL,buffer);
                desloc = retira_vs_pf(ts);
                mostra_ts(ts); 
@@ -341,9 +341,9 @@ atribuicao: {
     // Gera código ARMZ para armazenar valor
     char buffer[50];
     if (atr_indireto == REF) {
-      sprintf(buffer, "ARMI %d,%d", destino_nivel, destino_desloc);
+      sprintf(buffer, "ARMI %d, %d", destino_nivel, destino_desloc);
     } else {
-      sprintf(buffer, "ARMZ %d,%d", destino_nivel, destino_desloc);
+      sprintf(buffer, "ARMZ %d, %d", destino_nivel, destino_desloc);
     }
     geraCodigo(NULL, buffer);
 };
@@ -386,7 +386,7 @@ chamada_procedimento:
 
                   // Gera o código de chamada do procedimento
                   
-                  sprintf(buffer, "CHPR %s,%d", l_elem->info.pr.rot, nivel_lexico);
+                  sprintf(buffer, "CHPR %s, %d", l_elem->info.pr.rot, nivel_lexico);
                   geraCodigo(NULL, buffer);
                }
             }
@@ -436,7 +436,7 @@ simb_leitura: IDENT {
                geraCodigo(NULL, "LEIT");
                l_elem = busca(token,ts);
                char buffer[50];
-               sprintf(buffer,"ARMZ %d,%d",l_elem->nivel,l_elem->info.vs.desloc);
+               sprintf(buffer,"ARMZ %d, %d",l_elem->nivel,l_elem->info.vs.desloc);
                geraCodigo(NULL,buffer);
             }
 ;
@@ -512,11 +512,11 @@ fator: IDENT {
       } else {
          if (val_ou_ref == REF) {
                if (l_elem->categ == VS){
-                  sprintf(buffer, "CREN %d,%d", l_elem->nivel, l_elem->info.vs.desloc);
+                  sprintf(buffer, "CREN %d, %d", l_elem->nivel, l_elem->info.vs.desloc);
                   geraCodigo(NULL, buffer);
                }
                else if (l_elem->categ == PF){
-                  sprintf(buffer, "CREN %d,%d", l_elem->nivel, l_elem->info.pf.desloc);
+                  sprintf(buffer, "CREN %d, %d", l_elem->nivel, l_elem->info.pf.desloc);
                   geraCodigo(NULL, buffer);
                }
                else
@@ -524,16 +524,16 @@ fator: IDENT {
                
          } 
          else if (l_elem->categ == PF && l_elem->info.pf.passagem == REF) {
-               sprintf(buffer, "CRVI %d,%d", l_elem->nivel, l_elem->info.pf.desloc);
+               sprintf(buffer, "CRVI %d, %d", l_elem->nivel, l_elem->info.pf.desloc);
                geraCodigo(NULL, buffer);
          }        
          else {
                if (l_elem->categ == VS) {
-                  sprintf(buffer, "CRVL %d,%d", l_elem->nivel, l_elem->info.vs.desloc);
+                  sprintf(buffer, "CRVL %d, %d", l_elem->nivel, l_elem->info.vs.desloc);
                   geraCodigo(NULL, buffer);
                }
                else if (l_elem->categ == PF){
-                  sprintf(buffer, "CRVL %d,%d", l_elem->nivel, l_elem->info.pf.desloc);
+                  sprintf(buffer, "CRVL %d, %d", l_elem->nivel, l_elem->info.pf.desloc);
                   geraCodigo(NULL, buffer);
                }
          }
diff --git a/teste5.pas b/teste5.pas
index 358a19da28f0812fda57126787eec514c3f4c37b..940451a66aa717183213a16fc93e922da02ef704 100644
--- a/teste5.pas
+++ b/teste5.pas
@@ -12,7 +12,7 @@ begin
           if i = 0
             then write(2)
             else write(3);
-         end;
+         end
         else  write(i,1);
       i := i+1;             
    end;