MAC0211 Laboratório de Programação I
OBJETIVOS: Expor o estudante a conceitos fundamentais de programação de baixo e médio nível através de aulas teóricas e projetos práticos envolvendo o desenvolvimento de projetos de software utilizando linguagem de montagem, ferramentas para gerenciamento de compilações e construção de programas de médio porte em uma linguagem procedimental. Apresentar os fundamentos básicos, teóricos e práticos, do uso de expressões regulares e gramáticas no desenvolvimento de software através de analisadores léxicos e sintáticos.
PROGRAMA: Conceitos basicos de arquitetura de computadores. Linguagem de montagem, montadores, ligação de programas, interrupções, interface com linguagens de alto nível, interface com hardware. Gerenciamento de compilação de programas e bibliotecas com ferramentas como make. Modularização de código. Construção de um programa de médio porte em uma linguagem procedimental (por exemplo, C). Técnicas de depuração e testes de programas. Ferramentas auxiliares no desenvolvimento de programas. Expressões regulares, geradores de analisadores léxicos, noção básica de gramáticas, geradores de analisadores sintáticos. Entrada e saída padrão. concatenação de programas através de pipelines, linguagnes de processamento de texto (por exemplo, AWK e Perl).
PRÉ-REQUISITOS: MAC0122.
CARGA HORÁRIA SEMANAL E NÚMERO DE CRÉDITOS: 8 horas, 4 créditos-aula e 2 créditos-trabalho.
CRITÉRIO DE AVALIAÇÃO DA APRENDIZAGEM: Média ponderada de provas e projeto.
BIBLIOGRAFIA BÁSICA:
- B. Neveln, LINUX assembly language programming, Prentice Hall, 2000.
- Free Software Foundation, GNU Make Manual, http://www.gnu.org/software/make, 2006.
- B.W. Kernigham and R. Pike, The practice of programming, Addison-Wesley, 1999.
- A.V. Aho, B.W. Kernighan, and Peter J. Weinberger, The AWK Programming Language, Addison-Wesley, 1988.
- R. Lerner and R.M. Lerner, Core Perl, Prentice-Hall, 2002.
OBSERVAÇÃO: Disciplina obrigatória no currículo do BCC.
[Veja dados da disciplina no JúpiterWeb]