Codigo | Carga Horária | |||
---|---|---|---|---|
T | E | L/P | CHT | |
ECM253 | 2 | 0 | 2 | 160 |
ELEMENTOS DE MATEMÁTICA DISCRETA: Conjuntos e Relações, Funções, Relações de Equivalência, Indução Matemática, Lógica Proposicional e de Predicados, Aplicações da Lógica de Primeira Ordem, Revisão de Grafos, Dígrafos e Árvores. ELEMENTOS DE ANÁLISE DE ALGORITMOS: aplicações de conceitos de Matemática Discreta à Análise de Algoritmos. INTRODUÇÃO AOS MODELOS TEÓRICOS DE COMPUTAÇÃO: Autômatos Finitos, Máquinas de Turing, Computabilidade, Problemas de Decisão, Problema da Parada, Complexidade Computacional, Problemas Intratáveis e Completude NP. GRAMÁTICAS E LINGUAGENS, Relação entre linguagens, Autômatos e Máquinas de Turing, Classificação das Gramáticas: a hierarquia de Chomsky, Gramáticas Regulares, Gramáticas Livres de Contexto. ELEMENTOS DA TEORIA DOS COMPILADORES: Varredura de Código, Análise Sintática, Metalinguagem EBNF, Análise Semântica, Gramáticas de Atributos, Tabela de Símbolos, Tipos e Verificação de Tipos, Ambientes de Execução, Organização da Memória, Mecanismos de Passagem de Parâmetros, Técnicas de Geração de Código, Otimizações de Código.
A disciplina Linguagens Formais, Autômatos e Compiladores abrange a teoria, técnicas e ferramentas que permitirão ao Engenheiro de Computação resolver problemas computacionais específicos associados à tradução, interpretação e compilação de linguagens de programação. Essas linguagens podem variar de simples expressões até uma linguagem completa, com comandos tipicamente encontrados nas linguagens de programação tradicionais (C, C++, Python, SQL para citar algumas). A sua aplicabilidade também é ampla: elementos das teorias a serem estudadas nesta disciplina podem ser encontrados diariamente em aplicações tais como editores de texto (por exemplo, em corretores ortográficos, pesquisa e substituição de palavras), na WEB e em aplicações móveis (por exemplo, em sistemas que facilitam a busca, correção e preenchimento de palavras e comandos, interpretação de URLs de páginas e de email, interpretação de XML, interpretação de comandos de voz) e em programação, com linguagens específicas de domínio, embutidas ou não em outras aplicações (o conceito de macro das planilhas é um exemplo). Além disso, esta disciplina possui relacionamentos com outras disciplinas do currículo da Engenharia de Computação, tais como Arquitetura de Computadores e Sistemas Operacionais, oferecendo assim uma oportunidade de integrar seus conhecimentos com os conhecimentos aprendidos nessas disciplinas.
Marco Antonio Furlan de Souza Mais Informações |
Básica
Complementar