<?xml version="1.0" ?>

<documento html="default" latex="article">

<titulo> Métodos de Programação III
</titulo>

<autor>
João Saraiva <br/>
<link href="mailto:jas@di.uminho.pt"> jas@di.uminho.pt </link>
</autor>

<instituicao>
<it> <large> Matemática e Ciências da Computação </large> </it> <par/>
<it> <large> Engenharia de Sistemas e Informática </large> </it> <par/>
<bold> <it> 2004/2005 </it> </bold>
</instituicao>

<par/>


Esta página contém informação relativa à cadeira de <it>Métodos
de Programação III</it> a decorrer no <it>ano lectivo
2004-2005</it>. Métodos de Programação III é uma cadeira do 1º
Semestre do 3º Ano das licenciaturas em Engenharia de Sistemas e
Informática e em Matemática e Ciências da Computação.

Referências para páginas de instâncias anteriores podem ser
encontradas nos seguintes endereços:

<par/>

<tabela htmlview="html" bgcolor="white">

<linha>
<elem> Ano Lectivo 2003-2004:</elem> 
<elem> <link href="http://www.di.uminho.pt/~prh/curmp303.html">Página
</link>
</elem> 
</linha>

<linha>
<elem> Ano Lectivo 2002-2003:</elem> 
<elem> <link href="http://www.di.uminho.pt/~prh/curmp302.html">Página
</link>
</elem> 
</linha>

<linha>
<elem> Ano Lectivo 2000-2001:</elem> 
<elem> <link href="http://www.di.uminho.pt/~jas/mp3/00-01/mp3.html">Página
</link>
</elem> 
</linha>

<linha>
<elem> Ano Lectivo 1999-2000:</elem> 
<elem> <link href="http://www.di.uminho.pt/~jas/mp3/index.html">Página
</link>
</elem> 
</linha>

</tabela>

<par/>

<small>
<it> Esta página está a ser gerada a partir de um documento XML, por
uma ferramenta que utiliza os métodos de programação leccionados neste
curso (eg, expressões regulares, autómatos finitos e gramáticas
independentes do contexto). A partir da especificação XML é produzida
esta página, bem como a sua representação em LaTeX. O formato LaTeX dá
origem aos seguintes documentos em postscript e pdf:

 <link
href="http://www.di.uminho.pt/~jas/mp3/01-02/pagina_mpiii.ps">[ps]
</link>,<link
href="http://www.di.uminho.pt/~jas/mp3/01-02/pagina_mpiii.pdf">[pdf]
</link>
</it>
</small>

<par/>


<imagem ficheiro="newflash.gif">
<huge> <bold> <cor cor="green"> Novidades e Avisos </cor> </bold> </huge>
</imagem>

<par/>

<centrar>
<tabela border="1">

<linha>
<elem> (04-03-05) </elem> 
<elem> As notas finais estão disponíveis em:
<link
href="http://www.di.uminho.pt/~jas/mp3/04-05/Pauta_MCC_LivroTermos.html">
[LMCC] </link> e <link
href="http://www.di.uminho.pt/~jas/mp3/04-05/Pauta_LESI_LivroTermos.html">
[LESI] </link>

</elem>
</linha>



<linha>
<elem> (24-02-05) </elem>
<elem>
  <itemize>
  <item> As notas da época de recurso e dos trabalhos práticos estão
  disponíveis em: <link
  href="http://www.di.uminho.pt/~jas/mp3/04-05/Pauta_MCC_Final.html"> [LMCC]
  </link> e <link
  href="http://www.di.uminho.pt/~jas/mp3/04-05/Pauta_LESI_Final.html">
  [LESI] </link>
 </item>

  <item> <bold>Algumas resoluções dos trabalhos práticos estão disponíveis
  na secção <it>Contribuições dos Alunos </it> </bold>
  </item>

  </itemize>
</elem>
</linha>



<linha>
<elem>(11-02-05)</elem>
<elem>
 <itemize>
 <item> As notas da 1ª e 2ª Chamadas estão disponíveis em 
 <link href="http://www.di.uminho.pt/~jas/mp3/04-05/Pauta_MCC.html"> [LMCC] </link> e  <link href="http://www.di.uminho.pt/~jas/mp3/04-05/Pauta_LESI.html"> [LESI] </link> 
 </item>

  <item> Os alunos que tem nota inferior a 8 valores terão de efectuar
  o exame da época de recurso.
  </item>

 <item> <bold> Amanhã é possível ver o exame e tirar duvidas para o
 exame de recurso</bold>. Para isso deverão contactar o docente João
 Saraiva por telefone (ver número do telemovel na página pessoal) para
 marcar um encontro á porta do DI (que estará fechado da parte de
 tarde).
 </item>

 <item> As notas práticas e as notas finais estarão disponíveis na
 próxima 2a feira </item>

</itemize>
</elem>

</linha>


<linha>
<elem>(10-02-05)</elem>
<elem>
 <itemize>
 <item> <bold>Devido à data tardia da 2ª Chamada, as notas finais (exames 1ª e 2ª Chamada e Trabalhos Práticos) serão disponbilizadas <cor cor="red">aqui</cor> amanhã </bold> <it>(embora tardio achamos justo que ambas as chamadas sejam afixadas ao mesmo tempo)</it>.
 </item>

 <item> Exames da 1ª Chamada  <link href="http://www.di.uminho.pt/~jas/mp3/04-05/exame1.ps"> [ps] </link> e 2ª Chamada  <link href="http://www.di.uminho.pt/~jas/mp3/04-05/exame2.ps"> [ps] </link>.
 </item>

 </itemize>

</elem>
</linha>

<linha>
<elem>(17-12-04)</elem>
<elem>

<itemize>
<item> <bold>Trabalho Prático nº2: Existe um erro no en únciado</bold>
     <itemize>
     <item> A Referência Sar02 é o texto <it>Especificação e Processamento de Linguagens</it>,
     </item>
     <item> disponível na secção da bibliografia abaixo </item>
     <item> obviamente, os grupos devem corrigir esse erro no relatório...</item>
     </itemize>
</item>

<item> <bold>As fichas Teórico-Práticas nº10 e nº11 estão disponíveis 
(também na versão resolvida)</bold>
  <itemize>
  <item> <cor cor="red">Esta matéria não será avaliada, nem sumariada </cor></item>
  </itemize>

</item>

</itemize>
</elem>

</linha>


<linha>
<elem>(10-12-04)</elem>
<elem>
<bold>O Trabalho Prático nº2 já está disponível </bold>
</elem>
</linha>




<linha>
<elem>(04-12-04)</elem>
<elem>
<bold>Ficha-Teórico-Prática nº7 (Autómatos Reactivos em Haskell)
<cor cor="red">Resolução (pdf produzido usando o lhs2TeX)</cor>
 <link href="http://www.di.uminho.pt/~jas/mp3/04-05/Ficha7.pdf">Ficha7.pdf.</link>
</bold>
</elem>
</linha>



<linha>
<elem>(03-12-04)</elem>
<elem>
<itemize>
<item> <bold>A Ficha-Teórico-Prática nº9 já está disponível</bold> </item>
<item> <bold>A Ferramenta <cor cor="red">Gram2C</cor> que permite definir gramáticas abstractas e catamorfismos em C está disponível na secção Software </bold> </item>
</itemize>
</elem>
</linha>




<linha>
<elem>(28-11-04)</elem>
<elem>

<bold>Trabalho Prático nº1: <cor cor="red">Trabalhos Recebidos</cor></bold>

<itemize>
<item>Os trabalhos recebidos até 28-11-04 são os que constam das seguintes listas de emails:  <link href="http://www.di.uminho.pt/~jas/mp3/04-05/MPIII_TP1_a.gif"> lista1 </link> , <link href="http://www.di.uminho.pt/~jas/mp3/04-05/MPIII_TP1_b.gif">lista2</link> 
</item>
<item><bold><cor cor="red">Os grupos cujo email não conste desta lista deverão contactar os docentes até à aula teórica do dia 2-11-04. Caso contrário será considerado que o trabalho não foi entregue.</cor></bold></item>
<item> Parabéns aos grupo da Mónica Santos pois foi o último grupo a submeter o trabalho dentro do prazo. Mais precisamente às 23:59!!</item>

</itemize>

</elem>
</linha>



<linha>
<elem>(26-11-04)</elem>
<elem>
<bold>A Ficha-Teórico-Prática nº8 já está disponível</bold>
</elem>
</linha>


<linha>
<elem>(22-11-04)</elem>
<elem>

<cor cor="red">Trabalho Prático nº1:</cor>

<itemize>
<item><bold>Os extras referidos no enúnciado podem ser entregues com o 2º trabalho prático</bold></item>
<item><bold>Os grupos são obrigatoriamente de 3 alunos. Caso contrário a nota final terá uma penalização: a diferença entre o número de elementos do grupo e 3</bold></item>
</itemize>

</elem>
</linha>


<linha>
<elem>(19-11-04)</elem>
<elem>
<itemize>
<item><bold>A Ficha-Teórico-Prática nº7 já está disponível (ver secção respectiva)</bold></item>
<item>Regras de Conversão de Expressões Regulares em Autómatos Finitos Não Deterministas:  <link href="http://www.di.uminho.pt/~jas/mp3/04-05/RegExp2Ndfa_rules.ps">RegExp2Ndfa_rules.ps</link> </item>
<item>Existe vária documentação na internet sobre conversão de Autómatos Finitos Deterministas em Expressões Regulares: basta fazer google...</item>
</itemize>

</elem>
</linha>


<linha>
<elem>(09-11-04)</elem>
<elem>
<bold>A Ficha-Teórico-Prática nº6 já está disponível (ver secção respectiva)</bold>
</elem>
</linha>


<linha>
<elem>(09-11-04)</elem>
<elem>
<bold>O Trabalho Prático nº1 já está disponível </bold>
</elem>
</linha>

<linha>
<elem>(04-11-04)</elem>
<elem>
<bold>Ficha Teórico-Prática nº 5:</bold>
<it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha5.lhs">ficha5.lhs.
</link>
</elem>
</linha>

<linha>
<elem>(28-10-04)</elem>
<elem>
<bold>Ficha Teórico-Prática nº 4:</bold>
<it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha4.lhs">ficha4.lhs.
</link> e <it>ps</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha4.ps">ficha4.ps
</link> (esta ficha usa uma figura que está disponível em <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ndfa.ps">ndfa.ps
</link>)
</elem>
</linha>


<linha>
<elem>(22-10-04)</elem>
<elem>
<itemize>
<item>
<bold>Ficha Teórico-Prática nº 3:</bold>
<it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha3.lhs">ficha3.lhs.
</link> e <it>pdf</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha3.pdf">ficha3.pdf.
</link>
</item>
<item>
<bold>Expressões Regulares em C: </bold><link href="http://www.di.uminho.pt/~jas/mp3/04-05/RegExp.c">RegExp.c
</link>
</item>
</itemize>

</elem>
</linha>

<linha>
<elem>(18-10-04)</elem>
<elem><bold>Ficha Teórico-Prática nº 2:</bold>
<it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha2.lhs">ficha2.lhs.
</link> e <it>pdf</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha2.pdf">ficha2.pdf.
</link></elem>
</linha>

<linha>
<elem>(11-10-04)</elem>
<elem><bold>Ficha Teórico-Prática nº 1:</bold>
<it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha1.lhs">ficha1.lhs.
</link> e <it>pdf</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha1.pdf">ficha1.pdf.
</link></elem>
</linha>


<linha>
<elem>(24-09-04)</elem>
<elem>

<itemize>
<item><bold>Na 2a. feira dia 27 de Setembro <cor cor="red">não há</cor> aula teórica </bold></item>
<item><bold>As aulas teórico-práticas começam na 1ª semana de Outubro</bold></item>
<item><bold>Na 5a. feira dia 30 de Setembro <cor cor="red">há</cor> aula teórica </bold></item>
</itemize>

</elem>
</linha>


<linha>
<elem>(24-09-04)</elem>
<elem><bold>A página da disciplina está no "ar".</bold>
</elem>
</linha>

</tabela>
</centrar>


<par/>

<par/>


<capitulo nome="Equipa Docente e Horário">

<itemize>

<item> <link pagina="http://www.di.uminho.pt/~jas">João Saraiva</link> 


<par/>

<tabela htmlview="html" bgcolor="white">
<linha>
<elem> Teóricas: </elem> 
<elem> LESI/MCC </elem>
<elem> T1 </elem> 
<elem> 2ª Feira - 11:00-12:00 </elem> <elem> sala CP2-103 </elem>
</linha>
<linha>
<elem> </elem> <elem> </elem> <elem> T2 </elem> 
<elem> 5ª Feira - 10:00-11:00 </elem> <elem> sala CP2-103 </elem>
</linha>


<linha>
<elem> Teórica-Prática: </elem> 
<elem> MCC </elem>
<elem> TP1 </elem> 
<elem> 4ª Feira - 11:00-13:00 </elem> 
<elem> sala DI 0.02  </elem>
</linha>

<linha>
<elem> </elem> 
<elem> MCC </elem>
<elem> TP2 </elem> 
<elem> 5ª Feira - 11:00-13:00 </elem> 
<elem> sala DI 0.02 </elem>
</linha>


<linha>
<elem> Dúvidas </elem> 
<elem> LESI/MCC  </elem>
<elem> </elem> 
<elem> 2ª Feira - 14:00-18:00 </elem> 
<elem> </elem>
</linha>

</tabela>

</item>

<item> <link pagina="http://www.di.uminho.pt/~jgr">Jorge Gustavo Rocha</link>

<par/>

<tabela htmlview="html" bgcolor="white">

<linha>
<elem> Teórica-Prática: </elem> 
<elem> LESI </elem>
<elem> TP1 </elem> 
<elem> 2ª Feira - 14:00-16:00 </elem> 
<elem> sala DI-A2 </elem>
</linha>

<linha>
<elem> Teórica-Prática: </elem> 
<elem> LESI </elem>
<elem> TP2 </elem> 
<elem> 2ª Feira - 16:00-18:00 </elem> 
<elem> sala DI-A2 </elem>
</linha>


<linha>
<elem> </elem> 
<elem> LESI </elem>
<elem> TP3 </elem> 
<elem> 3ª Feira - 09:00-11:00 </elem> 
<elem> sala DI-A1 </elem>
</linha>

<linha>
<elem> </elem> 
<elem> LESI </elem>
<elem> TP4 </elem> 
<elem> 6ª Feira - 14:00-16:00 </elem> 
<elem> sala CP3-205 </elem>
</linha>

<linha>
<elem> Dúvidas </elem> 
<elem> LESI/MCC  </elem>
<elem>  </elem> 
<elem> 3ª Feira - 11:00-13:00  </elem> 
<elem> </elem>
</linha>

</tabela>

</item>

</itemize>

</capitulo>


<capitulo nome="Estrutura e Funcionamento">

Exposição da matéria fundamental -- motivação, conceitos, definições,
métodos e justificações -- a nível das aulas teóricas. Resolução de
exercícios de consolidação, a nível das aulas teórico-práticas, no
quadro e no computador. Realização, no computador, extra aulas de
trabalhos concretos de aplicação, recorrendo à linguagem Haskell.

</capitulo>

<capitulo nome="Objectivos ">

É objectivo deste curso levar os alunos a:

<itemize>
<item> Aprofundar e interiorizar os conceitos fundamentais e os
métodos de programação em larga escala e a reutilização de programas,
dando especial relevo ao <it>paradigma funcional.</it> </item>

<item> Aprender o conceito de <it>Autómato Finito </it> e a teoria
associada, bem como a sua aplicação à simulação de <it>Sistemas de
Controlo</it> e à especificação e reconhecimento de <it>Linguagens
Regulares.</it> </item>

<item> Compreender os conceitos de <it>cálculo parcial ou
especialização de programas</it></item>

<item> Aprender o conceito de gramática e como descrever estruturas de
linguagens através de gramáticas.</item>

<item> Compreender o conceito: embeber linguagens de dominio
especifico (eg, gramáticas) numa linguagem de dominio geral (eg,
Haskell).</item>

<item> Reforçar a aptidão dos alunos para desenvolver programas
correctos e eficientes (quer no paradigma funcional quer em qualquer
outro paradigma de programação).</item>

</itemize>

</capitulo>

<capitulo nome="Avaliação">

A Avaliação tem uma componente teórica e uma componente
prática, ambas obrigatórias.  

<par/>

De acordo com o regulamento actualmente em vigor na UM, a <bold>nota
teórica</bold> será obtida através da realização de <bold>1 prova individual
escrita</bold>. Essa prova tem as instâncias a seguir indicadas (um aluno
só poderá fazer melhoria na época de recurso):

<itemize>

<item> Exame, realizado na 1ª chamada da época normal, no fim do 1º
semestre</item>

<item> Exame, realizado na 2ª chamada da época normal, no fim do 1º
semestre </item>

<item> Exame, realizado na época de recurso</item>
</itemize>


A <bold>componente prática</bold> seré formada por 2 trabalhos para
realização em grupo, sendo entregues acompanhados de um
relatório sucinto e discutidos em frente ao computador:

A nota prática será a média aritmética das classificações obtidas nos
2 trabalhos avaliados.  A nota final será determinada de acordo com a
seguinte fórmula:

<par/>

<centrar>
<bold> 
NotaFinal = NotaTeorica * 0.50 + (NotaPratica - Delta / 2) * 0.50
</bold>
</centrar>

<par/>

sendo <bold><i>Delta = | NT - NP |</i></bold>

<par/>

Exige-se <bold>8 valores</bold> como nota mínima em cada parte.

</capitulo>



<capitulo nome="Programa">

<itemize>
<item> Programação baseada em Transições de Estado:  
  <itemize> 
    <item> Noções básicas </item>
    <item> Autómatos Finitos 
      <itemize>
        <item> Autómatos não-deterministas </item>
        <item> Autómatos deterministas </item>
        <item> Cálculo Parcial aplicado a Autómatos Deterministas </item>
        <item> Conversão de ANDs em ADs </item>
        <item> Conversão de AFND am AFD através de cálculo parcial </item>
        <item> Minimização de Estados de AFD </item>
        <item> Autómatos reactivos </item>
          <itemize>
            <item> Aplicação dos autómatos à simulação de Sistemas de Controlo </item>
            <item> Aplicação dos autómatos ao reconhecimento de Linguagens Regulares </item>
            <item> Definições; expressões regulares; gramáticas regulares </item>
          </itemize>
      </itemize>
    </item>
  </itemize>
</item>
<item> Programação baseada em Gramáticas:
 <itemize>
   <item> Conceito e exemplos </item>
   <item> Estrutura concreta e abstracta das linguagens formais </item>
   <item> Desenvolvimento de <it> Parsers baseados em Combinadores</it> 
          para Linguagens Formais. </item>
 </itemize>
</item>

</itemize>

</capitulo>



<capitulo nome="Fichas Teórico-Práticas">

<itemize>

<item>
<bold>Ficha Teórico-Prática nº 1: 
<cor cor="black"> Expressões Regulares </cor>
</bold>
  <itemize>
  <item><it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha1.lhs">ficha1.lhs.
</link> e <it>pdf</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha1.pdf">ficha1.pdf.
</link>
  </item>
  </itemize>
</item>

<item>  
<bold>Ficha Teórico-Prática nº 2:
<cor cor="black"> Expressões Regulares (continuação) </cor>
</bold>
  <itemize>
  <item>
  <it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha2.lhs">ficha2.lhs.
</link> e <it>pdf</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha2.pdf">ficha2.pdf. </link>
  </item>
  </itemize>
</item>

<item> 
<bold>Ficha Teórico-Prática nº 3:
<cor cor="black"> Autómatos Finitos Deterministas </cor>
</bold>
  <itemize>
  <item>
  <it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha3.lhs">ficha3.lhs.
</link> e <it>pdf</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha3.pdf">ficha3.pdf.</link>
  </item>
  </itemize>
</item>

<item> 
<bold>Ficha Teórico-Prática nº 4:
<cor cor="black"> Autómatos Finitos Não Deterministas </cor>
</bold>
  <itemize>
  <item>
  <it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha4.lhs">ficha4.lhs.
</link> e <it>ps</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha4.ps">ficha4.ps
</link> (esta ficha usa uma figura que está disponível em <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ndfa.ps">ndfa.ps </link>)
  </item>
  </itemize>
</item>

<item> 
<bold>Ficha Teórico-Prática nº 5:
<cor cor="black"> Conversão de Autómatos Finitos Não Deterministas em Deterministas </cor>
</bold>
  <itemize>
  <item> <it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha5.lhs">ficha5.lhs.</link> 
  </item>
  </itemize>
</item>


<item>
<bold>Ficha Teórico-Prática nº 6:
<cor cor="black"> Conversão de Expressões Regulares em Autómatos Finitos Não Deterministas </cor>
</bold>
  <itemize>
  <item>  <it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha6.tgz">ficha6.tgz.</link> (esta ficha usa várias figuras, daí o tgz) 
  </item>
  </itemize>
</item>



<item> 
<bold>Ficha Teórico-Prática nº 7:
<cor cor="black"> Autómatos Finitos Reactivos </cor>
</bold>
  <itemize>
  <item>  <it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha7.tgz">ficha7.tgz.</link> (esta ficha usa várias figuras, daí o tgz) 
  </item>
  <item> <it>Resolução:</it>
<link href="http://www.di.uminho.pt/~jas/mp3/04-05/Ficha7.pdf">Ficha7.pdf.</link>
  </item>
  </itemize>
</item>

<item>
<bold>Ficha Teórico-Prática nº 8:
<cor cor="black"> Cálculo Parcial de Autómatos Finitos </cor>
</bold>
  <itemize>
  <item><it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha8.lhs">ficha8.lhs.</link> </item>
  </itemize>
</item>


<item>
<bold>Ficha Teórico-Prática nº 9:
<cor cor="black"> Gramáticas Independentes do Contexto </cor>
</bold>
  <itemize>
  <item><it>LaTeX</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/ficha9.tex">ficha9.tex.</link> 
  </item>
  </itemize>
</item>

<item>
<bold>Ficha Teórico-Prática nº 10:
<cor cor="black"> Combinadores de Parsing </cor>
</bold>
  <itemize>
  <item>  <it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/Ficha10.lhs">Ficha10.lhs.</link> 
  </item>
  <item> <it>Resolução:</it>
<link href="http://www.di.uminho.pt/~jas/mp3/04-05/Ficha10.pdf">Ficha10.pdf. (pdf produzido pelo lhs2TeX)</link>
  </item>
  </itemize>
</item>


<item>
<bold>Ficha Teórico-Prática nº 11:
<cor cor="black"> Combinadores de Parsing (continuação) </cor>
</bold>
  <itemize>
  <item>  <it>literate haskell</it> <link href="http://www.di.uminho.pt/~jas/mp3/04-05/Ficha11.lhs">Ficha11.lhs.</link> 
  </item>
  <item> <it>Resolução:</it>
<link href="http://www.di.uminho.pt/~jas/mp3/04-05/Ficha11.pdf">Ficha11.pdf. (pdf produzido pelo lhs2TeX)</link>
  </item>
  </itemize>
</item>

</itemize>

</capitulo>



<capitulo nome="Software">

<itemize>

<item> <bold>Gramáticas em C: </bold> <link
href="http://www.di.uminho.pt/~jas/mp3/04-05/software/Gram2C.tgz">Gram2C.tgz</link>

<itemize>
<item>
Este software usa o <it>Bohem's Garbage Collector</it> que é
distribuído com o Gram2C. A versão do garbage collector que <bold><cor
cor="black">estava</cor></bold> a ser distribuída (4.13) dava
problemas em alguns sistemas operativos (segmentation fault durante a
execução do programa). Nesse caso, recomenda-se a instalação de uma
versão mais recente desse GC.
</item>

<item>
<bold><cor cor="black">A versão que está disponível agora já é
distribuída com uma versão mais recente do GC e deverá compilar e
executar sem problemas.</cor></bold>
</item>

</itemize>

</item>

<item>
 <bold>A garbage collector for C and C++:</bold>
 <link href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/">Bohem's Garbage Collector</link>
</item>


<item> <bold>Sistema HaLeX: </bold> <link
href="http://www.di.uminho.pt/~jas/mp3/04-05/software/HaLeX.tgz">HaLeX.tgz</link>
</item>


</itemize>

</capitulo>




<capitulo nome="Contribuições dos Alunos">

<itemize>



<item> Resolução dos trabalhos práticos propostos nesta disciplina por
alguns grupos de trabalho:

  <itemize>
  <item> Grupo constituído por:  Bárbara Vieira (n. 38588), Hélder Teixeira (n. 39846) e Marco Coelho (n. 38618). Resolução: 

         <link href="http://www.di.uminho.pt/~jas/mp3/04-05/alunos/MP3_Barbara_Helder_Marco.rar"> solução.
         </link>
  </item>

  <item> Grupo constituído por: Marcio (n. 24848), Miguel (n. 33195) e Luís (n. 22678). Resolução:  <link href="http://www.di.uminho.pt/~jas/mp3/04-05/alunos/MP3_Miguel_Marcio_Luis_TP1.tgz"> solução TP1.
         </link> e <link href="http://www.di.uminho.pt/~jas/mp3/04-05/alunos/MP3_Miguel_Marcio_Luis_TP2.tgz"> solução TP2.</link>
  </item>

  <item> Grupo constituído por: Daniela Cruz (n. 38612), Elisabete Ferreira (n. 38582) e Patrícia Oliveira (n. 38577). Resolução: 

         <link href="http://www.di.uminho.pt/~jas/mp3/04-05/alunos/MP3_Daniela_Elisabete_Patricia.zip"> solução.
         </link>
  </item>
  
  <item> Grupo constituído por: Hugo Pacheco (n. 38204), Rui Abreu (n. 38119) e João Falcão (n. 33171). Resolução: 

         <link href="http://www.di.uminho.pt/~jas/mp3/04-05/alunos/MP3_Hugo_Rui_João.rar"> solução.
         </link>
  </item>
  
  <item> Grupo constituído por: Hugo Macedo (n. 39442) e Jose Correia (n. 38142). Resolução: 

         <link href="http://www.di.uminho.pt/~jas/mp3/04-05/alunos/MP3_38142_39442.rar"> solução.
         </link>
  </item>
  

  <item> Grupo constituído por: Ruben Fonseca (n. 38141) e Miguel Alves (n. 38221). Resolução: 

         <link href="http://www.di.uminho.pt/~jas/mp3/04-05/alunos/MP3_Rubem_Miguel.tar.bz2"> solução.
         </link>
  </item>
  

  </itemize>


</item>



<item> Função show de expressões regulares:

   <itemize>
     <item> Solução do Rui Moutinho: 
         <link href="http://www.di.uminho.pt/~jas/mp3/04-05/alunos/showRegExp_Rui_Moutinho.hs"> solução.
         </link>

     </item>
     <item> Solução do Renato Ribeiro:
         <link href="http://www.di.uminho.pt/~jas/mp3/04-05/alunos/showRegExp_Renato_Ribeiro.hs"> solução.
         </link>

     </item>


   </itemize>

</item>

</itemize>

</capitulo>


<capitulo nome="Trabalhos Práticos">


<bold> Algumas resoluções destes trabalhos estão disponíveis na secção
<it>Contribuições dos Alunos</it></bold>

<itemize>
<item> <bold>Trabalho Prático nº1: </bold>
<link href="http://www.di.uminho.pt/~jas/mp3/04-05/tp1.tgz">tp1.tgz</link>
</item>

<item> <bold>Trabalho Prático nº2: </bold>
<link href="http://www.di.uminho.pt/~jas/mp3/04-05/tp2.tgz">tp2.tgz</link>
</item>

</itemize>




</capitulo>




<capitulo nome="Sumários">

<itemize>
<item> <link pagina="http://www.di.uminho.pt/~jas/mp3/04-05/sumarios.html"> 
       Engenharia de Sistemas e Informática </link> </item>
<item> <link pagina="http://www.di.uminho.pt/~jas/mp3/04-05/sumarios.html"> 
       Matemática e Ciências da Computação </link>  </item>
</itemize>

</capitulo>



<biblio erros="sim" ordenado="default">

<livro key="jas00">
  <tit>      Language Processing (with a Functional Flavour)       </tit>
  <aut>      João Saraiva                                          </aut>
  <ano>      2000                                                  </ano>
  <editora>  DI/UM                                             </editora>
  <edicao>   1ª                                                 </edicao>
</livro>
  
<livro key="lsb96">
  <tit>      Elementos da Teoria dos Autómatos                     </tit>
  <aut>      L.S. Barbosa                                         </aut>
  <ano>      1996                                                  </ano>
  <editora>  DI/UM                                             </editora>
  <urlps>    http://www.di.uminho.pt/~jas/mp3/nlp.ps.gz          </urlps>
</livro>


<livro key="jas95">
  <tit>      Especificação e Processamento de Linguagens           </tit>
  <aut>      João Saraiva                                          </aut>
  <ano>      1995                                                  </ano>
  <editora>  DI/UM                                             </editora>
  <edicao>   1ª                                                 </edicao>
  <urlps>    http://www.di.uminho.pt/~jas/mp3/esp_proc_ling.ps.gz  </urlps>
  <urlhtml>  http://www.di.uminho.pt/~jas/TextosPedag/espProcLing/espprocling.html </urlhtml>
</livro>
  
<livro key="FB94">
  <tit> The Language of Machines: An Introduction to Computability and Formal Languages </tit>
  <aut> R. Floid and R. Beigel </aut>
  <editora> Computer Science Press </editora>
  <ano> 1994 </ano>
</livro>

<artigo key="haskellRep">
  <tit>     Report on the Programming Language Haskell 98              </tit>
  <aut>     S.P.Jones, et al                                           </aut>
  <ano>     1999                                                       </ano>
  <urlhtml> http://www.haskell.org/onlinereport                    </urlhtml>
  <urlps>   http://www.haskell.org/definition/haskell98-report.ps.gz </urlps>
  <urlpdf>  http://www.haskell.org/definition/haskell98-report.pdf  </urlpdf>
</artigo>


<livro key="Bird98">
  <tit> Introduction to Functional Programming using Haskell </tit>
  <aut> R. Bird </aut>
  <editora> Prentice Hall </editora>
  <ano> 1998 </ano>
</livro>

<livro key="SimonThompson99">
  <tit> Haskell - The Craft of Functional Programming </tit>
  <aut> S. Thompson </aut>
  <editora> Addison-Wesley </editora>
  <ano> 1999 </ano>
  <edicao> 2ª </edicao>
</livro>


<livro key="NeilJones93">
  <tit> Partial Evaluation and Automatic Program Generation </tit>
  <aut> N. Jones, C. Gomard and P. Sestoff </aut>
  <editora> Prentice Hall </editora>
  <ano> 1993 </ano>
</livro>


<livro key="Horowitz84">
  <tit> Fundamentos de Estruturas de Dados </tit>
  <aut> E. Horowitz and S. Sahni </aut>
  <editora> Editora Campus </editora>
  <ano> 1984 </ano>
</livro>


<livro key="Carrol89">
  <tit> Theory of Finite Automata  </tit>
  <aut> J. Carroll and D. Long  </aut>
  <editora> Prentice Hall  </editora>
  <ano> 1989 </ano>
</livro>


</biblio>


</documento>



