scc-0205 teoria da computação e linguagens...

24
Teoria da Computação e Linguagens Formais SCC-0205 Teoria da Computação e Linguagens Formais João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis/ [email protected] 2012 João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Upload: ngocong

Post on 08-Dec-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Teoria da Computação e Linguagens Formais

SCC-0205Teoria da Computação e Linguagens Formais

João Luís Garcia Rosa1

1Departamento de Ciências de ComputaçãoInstituto de Ciências Matemáticas e de Computação

Universidade de São Paulo - São Carloshttp://www.icmc.usp.br/~joaoluis/

[email protected]

2012João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens Formais

Sumário

1 Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Sumário

1 Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

A disciplina SCC-0205

A disciplina é composta de três partes centrais da Teoriada Computação que têm o objetivo de tentar responderquais são as capacidades e as limitações doscomputadores:

1 Teoria das Linguagens Formais e dos Autômatos,2 Teoria da Computabilidade e3 Teoria da Complexidade.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

A disciplina

A primeira parte (Teoria das Linguagens Formais e dosAutômatos) trata das definições e propriedades demodelos matemáticos de computação que têm um papelfundamental em várias áreas da Computação como oprocessamento de textos, compiladores, definição delinguagens de programação, dentre outras.Além desse lado prático, do ponto de vista teórico, para sedefinir o que é ou não computável é necessário utilizar ummodelo matemático que represente o que se entende porcomputação.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

A disciplina

A segunda parte do curso (Teoria da Computabilidade) écentralizada na Tese de Church-Turing e nas evidênciasdela.Church usou um sistema chamado cálculo-λ para definiralgoritmo e Turing fez o mesmo com o uso da Máquina deTuring (MT).As duas definições foram mostradas serem equivalentes ea conexão entre a noção informal de algoritmo (solúvelefetivamente) e a definição precisa por uma MT foichamada Tese de Church-Turing: se um problemaalgorítmico não pode ser resolvido por uma máquina deTuring, então não existe nenhuma solução computávelpara ele.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

A disciplina

Vários outros modelos de computação (por exemplo, asfunções recursivas de Kleene, linguagens formais, RAMs,algoritmos de Markov, linguagens de programação, amáquina de Post) foram propostos e provados terem poderequivalente à máquina de Turing.Assim, estudando qualquer um destes modelos, porexemplo um modelo simples como a máquina de Turing, épossível aprender sobre as limitações teóricas de todos oscomputadores.A meta da teoria da computabilidade é a classificação deproblemas em solúveis, parcialmente solúveis e insolúveise se forem problemas de decisão, em problemasdecidíveis, parcialmente decidíveis e indecidíveis.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

A disciplina

Nem todos os problemas algorítmicos, que podem serresolvidos em princípio, podem ser resolvidos na prática:os recursos computacionais requeridos (tempo ou espaço)podem ser proibitivos.Esta observação motiva o estudo da complexidadecomputacional que será tratada na terceira parte do curso(Teoria da Complexidade).A meta principal da teoria da complexidade é aclassificação de problemas de acordo com a dificuldadecomputacional.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Sumário

1 Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Objetivos e Justificativa

Objetivos:

Apresentar ao aluno conceitos fundamentais dasdisciplinas de teoria da computação, linguagens formais elógica.Capacitar o aluno a compreender e utilizar estes conceitos.

Justificativa:O estudo destes aspectos fundamentais da ciência dacomputação deve auxiliar na formação da base teóricanecessária às demais disciplinas do curso.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Programa

1 Linguagens Regulares e Autômatos Finitos1 Gramáticas e Linguagens

A Primeira LinguagemGramáticas e LinguagensLinguagens Regulares e de Estados Finitos

2 Autômatos de Estados FinitosAutômatos FinitosArcos-λAutômato Mínimo

3 Autômatos Finitos com SaídaMáquinas de MealyMáquinas de MooreExemplos

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Programa

2 Linguagens Livres de Contexto e Autômatos de Pilha1 Linguagens Livres de Contexto

Linguagens Livres de ContextoLema do Bombeamento para Linguagens Livres de ContextoFormas Normais para Gramáticas Livres de Contexto

2 Autômatos de PilhaA Pilha como Processador de LinguagemO Autômato de PilhaO Teorema da Equivalência

3 Programas, Linguagens e ParsingLinguagens de ProgramaçãoParsingGramáticas Livres de Contexto e a Língua Natural

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Programa

3 Linguagens Sensíveis ao Contexto e Autômatos LimitadosLinearmente

1 Gramáticas e Linguagens Sensíveis ao ContextoGramáticas e Linguagens Sensíveis ao ContextoO Lema da Cadeia VaziaProva do Lema da Cadeia Vazia

2 Máquinas de TuringMáquinas de Turing e a ComputabilidadeConjunto de Aceitação de uma Máquina de Turing

3 Autômatos Limitados LinearmenteAutômatos Limitados LinearmenteO Lema do Alfabeto

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Programa

4 Linguagens Recursivamente Enumeráveis e Máquinas deTuring

1 Gramáticas IrrestritasGramáticas IrrestritasDas Gramáticas para as Máquinas de TuringDas Máquinas de Turing para as Gramáticas

2 A Máquina de Turing UniversalA Máquina de Turing e Funções NuméricasA Tese de Church-TuringA Máquina Universal

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Programa

5 Computabilidade e Complexidade1 Indecidibilidade

Máquinas de Turing Não DeterminísticasUma Linguagem que não é Recursivamente EnumerávelO Problema da Parada e a Indecidibilidade

2 Teoria de ComplexidadeComplexidade de TempoComplexidade de Espaço

3 Tratabilidade e Problemas NP-CompletosTratabilidadeA Classe NPOutras Classes de Problemas

Aulas:Terças: 8h10-9h50Quintas: 10h10-11h50Sala 5-004

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Sumário

1 Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Avaliação

3 provas:P1 = 30/8P2 = 16/10P3 = 29/11

2 trabalhos em grupo, com implementação:Submissão do Trabalho T1: 27/9.Submissão do Trabalho T2: 22/11.

Trabalho Extra (Alan Turing) - opcional T3: 29/11acréscimo de 0,5 na média.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Avaliação

MP = Média Ponderada das Provas:MP = P1 ∗ 0,4 + P2 ∗ 0,3 + P3 ∗ 0,3

MT = Média Aritmética dos TrabalhosMF = Média Final:

Se MP ≥ 5,0 e MT ≥ 5,0 então MF = (7*MP + 3*MT)/10Senão MF = menor valor entre MP e MT

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Avaliação: Recuperação

Norma de Recuperação1 prova de recuperação PRRealização: Até a primeira semana de aulas do semestreposterior.Critério de Aprovação:

Média = MF + (PR/2, 5), se PR ≥ 7, 5; ouMédia = Max{MF ,PR}, se PR < 5, 0; ouMédia = 5, 0, se 5, 0 ≤ PR < 7, 5.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Integridade Acadêmica

A “cola” ou plágio em provas, exercícios ou atividadespráticas implicará na atribuição de nota zero para todos osenvolvidos. Dependendo da gravidade do incidente, ocaso será levado ao conhecimento da Coordenação e doConselho do Departamento, para as providências cabíveis.Na dúvida do que é considerado cópia ou plágio, o alunodeve consultar o professor antes de entregar um trabalho.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Teoria da Computação e Linguagens FormaisA disciplina SCC-0205Objetivos e ProgramaAvaliação

Ano Alan Turing: ?1912 † 1954

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Apêndice Bibliografia

Bibliografia Básica I

[1] Rosa, J. L. G.Linguagens Formais e Autômatos.Editora LTC, 2010.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Apêndice Bibliografia

Bibliografia Complementar I

[1] Hopcroft, J. E., Ullman, J. D.Formal Languages and Their Relation to Automata.Addison-Wesley Publishing Company, 1969.

[2] Hopcroft, J. E., Ullman, J. D. e Motwani, R.Introdução à Teoria de Autômatos, Linguagens eComputação.Tradução da segunda edição americana. Editora Campus,2003.

[3] JFLAP Version 6.0.Ferramenta para Diagrama de Estados.www.jflap.org.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais

Apêndice Bibliografia

Bibliografia Complementar II

[4] Moll, R. N., Arbib, M. A., and Kfoury, A. J.An Introduction to Formal Language Theory.Springer-Verlag, 1988.

[5] Sipser, M.Introduction to the Theory of Computation.Second Edition, Thomson, 2006.

João Luís Garcia Rosa, 2012 SCC-0205 - Teoria da Computação e Linguagens Formais