SCC-0205 Teoria da Computação e Linguagens...
Transcript of SCC-0205 Teoria da Computação e Linguagens...
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/
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