Fechar menu lateral

Currículo 2023

O Currículo 2023 do Curso de Sistemas de Informação da UFJF possui ao todo 3.000 horas, divididas entre disciplinas obrigatórias, disciplinas eletivas e atividades acadêmicas optativas. A grade curricular apresenta a distribuição cronológica das disciplinas e demais atividades acadêmicas do curso, estruturada em pré-requisitos, dentro do prazo recomendado para a integralização curricular de 8 períodos letivos regulares (4 anos).  Na tabela a seguir é possível selecionar o período e clicar sobre a disciplina desejada para verificar o plano de ensino (contendo ementa, conteúdo programático, bibliografia básica e bibliografia complementar). Uma das principais diferenças deste currículo para seu antecessor é a obrigatoriedade do discente em cumprir um mínimo de 300 horas (10% da carga horária total do curso) em atividades curriculares de extensão.

Currículo 2023 do Curso de Sistemas de Informação da UFJF (ingressantes a partir de 2023)

 

Plano de Ensino

Disciplina: DCC045 - TEORIA DOS COMPILADORES

Carga horária: 60

Departamento: DEPTO DE CIENCIA DA COMPUTACAO /ICE

Ementa
keyboard_arrow_down keyboard_arrow_up
-Introdução
-Análise léxica
-Análise sintática
-Análise semântica
-Ambientes de execução
-Geração de representação intermediária
-Geração de código de máquina para MIPS ou PENTIUM
1) Introdução
A estrutura dos compiladores modernos: front-end, middle-end, back-end. Compiladores de um, dois e três passos.

2) Análise léxica
Operações com expressões regulares. Reconhecimento de linguagens regulares com autômatos finitos. Construção de autômatos finitos deterministas a partir de expressões regulares. Geradores de varredores léxicos.

3) Análise sintática
Sintaxe livre de contexto. Formas de derivação de strings e a árvore de sintaxe concreta. Precedência em expressões aritméticas. Eliminação de ambigüidade e de recursão à esquerda. Gramáticas LL(1) e LR(1). Derivação top-down. Derivação preditiva: fatoração à esquerda. Derivação recursiva: descendente e por tabelas de derivação. Recuperação de erros: o conjunto SYNCH. Gramáticas LL(K). Derivação bottom-up. Formas sentencias à esquerda e definição de manipuladores. Implementação por pilha: derivadores shift-reduce. Gramáticas LR(K). Construção de tabelas LR(0), SLR(1), LR(1), LALR(1)

4) Análise semântica
Problemas sensíveis ao contexto. Ações semânticas em derivadores LL e LR. Gramáticas de atributos. Grafo de dependência de atributos. Estrutura e organização de tabelas de símbolos. Aninhamento léxico e regras de escopo. Descritores de tipos: formas de compatibilidade. Verificação e conversão de tipos em expressões. L-values e R-values. Representação intermediária para análise semântica: árvore de sintaxe abstrata.

5) Ambientes de execução
Classes de armazenamento e acesso a dados não locais. Registros de ativação. Funções de mais alta ordem . Pilha de execução: criação e manipulação de registros de ativação.

6) Geração de representação intermediária
Tipos de representação intermediária: árvores de sintaxe abstrata, grafo acíclico direcionado, grafo de controle do fluxo, código de três endereços. Regras semânticas para geração de código intermediário: atribuição e expressões, desvio de controle, declarações. Tradução em árvores de sintaxe abstrata. Reorganização do código intermediário: árvores canônicas, blocos básicos, aglomerados seqüenciais.

7) Geração de código de máquina para MIPS ou PENTIUM
Seleção de instruções. Análise de tempo de vida: grafos de fluxo do controle, grafos de interferência. Alocação de registradores: coloração de grafos, coalescência. Exemplo de otimização de laços.
- ANDREW, W. A.; PALSBERG, J. Modern Compiler Implementation in Java, Cambridge University Press, 2002
- AHO, A.; SETHI, R.; ULMAN J. Compilers: Principles Techniques and Tools. Addison-Wesley, 1995. (versão em inglês)

 

Saiba mais sobre o currículo 2023:
  1. Disciplinas obrigatórias
  2. Disciplinas eletivas
  3. Atividades acadêmicas optativas

Disciplinas obrigatórias

O discente deve cursar todas as 2.430 horas em disciplinas obrigatórias. Estas disciplinas estão organizadas em quatro áreas de formação: 1.1 – Formação básica, 1.2 – Formação Tecnológica, 1.3 – Formação Complementar e 1.4 – Formação Humanística e Suplementar.

A grade curricular sugere o período adequado para o discente cursar cada disciplina obrigatória, considerando a oferta das disciplinas e o encadeamento dos pré-requisitos para viabilizar a integralização curricular em 8 períodos letivos regulares. Entretanto, o discente tem a liberdade de cursar as disciplinas em outros momentos, desde que atenda aos pré-requisitos estabelecidos para cada uma delas.

Voltar ao sumário

Disciplinas eletivas

O discente deve cursar um mínimo de 240 horas em disciplinas eletivas. Dentro da lista com todas as disciplinas eletivas do currículo, a escolha de quais disciplinas cursar é de livre opção do discente, de forma que cada indivíduo pode construir seu próprio caminho formativo a partir de seus interesses e capacidades. Para facilitar a escolha, as disciplinas eletivas foram organizadas nas seguintes áreas de conhecimento: 2.1 – Sistemas de Computação, 2.2 – Desenvolvimento de Software, 2.3 – Sistemas Inteligentes, 2.4 – Informática na Educação, 2.5 – Gestão de TI,  2.6 – Computação Gráfica e 2.7 – Banco de Dados.

O discente também pode integralizar a carga horária de disciplinas eletivas cursando disciplinas oferecidas por programas de pós-graduação stricto-sensu em áreas correlatas ao curso, estimulando-se o estreitamento de laços entre graduação e pós-graduação. Quando estas disciplinas forem oferecidas pelos programas de pós-graduação ligados ao DCC/UFJF, o aproveitamento de sua carga horária será automático. Caso estas disciplinas sejam oferecidas por programas de pós-graduação externos ao DCC/UFJF, o aproveitamento de estudos deve ser solicitado pelo discente e analisado pela coordenação.

A grade curricular sugere que o discente curse 30 horas em disciplina(s) eletiva(s) no 3º período, 30 horas no 6º período, 60 horas no 7º período e 120 horas no 8º período.Entretanto, o discente tem a liberdade de cursar as disciplinas em outros momentos, desde que atenda aos pré-requisitos estabelecidos para cada uma delas.

Voltar ao sumário

Atividades acadêmicas optativas

O discente deve integralizar um mínimo de 330 horas em atividades acadêmicas optativas, que incluem disciplinas optativas e/ou atividades de flexibilização curricular e/ou atividades curriculares de extensão. A carga horária excedente em disciplinas eletivas também conta, automaticamente, como carga horária em atividades acadêmicas optativas.

A grade curricular deixa livre para o discente escolher o melhor momento do curso para cumprir estas horas.

Disciplinas optativas

Uma disciplina optativa é aquela destinada à formação da cultura geral, em qualquer área do conhecimento. O discente é livre para escolher as disciplinas optativas que deseja cursar, podendo ser quaisquer disciplinas da UFJF ou de outra Instituição de Ensino Superior (IES). No caso das disciplinas cursadas na UFJF, a carga horária é registrada automaticamente no histórico escolar do discente. No caso de disciplinas cursadas em outra IES, o aproveitamento de estudos deve ser solicitado pelo discente e analisado pela coordenação.

No universo de disciplinas da UFJF, sugere-se aos discentes de SI cursar, de forma optativa, as disciplinas de UNI001 – Língua Inglesa Instrumental I, UNI002 – Língua Inglesa Instrumental II, UNI003 – Língua Inglesa Instrumental III, UNI015 – LIBRAS Instrumental I e UNI016 – LIBRAS Instrumental II, todas ofertadas pelo Projeto de Universalização em Línguas Estrangeiras da UFJF. Entende-se que o conhecimento em línguas estrangeiras e em LIBRAS são diferenciais para o egresso do curso, permitindo o entendimento das questões de comunicação universal e inclusiva. Sugere-se também, como disciplina optativa, LEC090 – Práticas de Gêneros Acadêmicos, cuja ementa aborda gêneros acadêmicos escritos e orais, o que pode auxiliar o discente em seu Trabalho de Conclusão de Curso (TCC).

Além das disciplinas listadas anteriormente, é sugerido ao discente cursar as disciplinas de “Prática Extensionista” ofertadas pelo DCC, que são disciplinas optativas de caráter 100% extensionista. Essas disciplinas visam a aplicação multidisciplinar de conhecimentos teóricos e práticos já adquiridos pelos discentes em seu percurso curricular nas atividades de extensão vinculadas a programas, projetos, cursos e oficinas, eventos e/ou prestação de serviços previamente autorizados pela CAEX do curso de SI, sempre sob o acompanhamento de um orientador e que envolva a comunidade externa como beneficiária.

Voltar ao sumário