1. Prof. José Augusto Meirelles (Guto)
Paradigmas de Linguagem de Programação - Aula 1 Apresentação
Material desenvolvido pelo Prof. Fernando Bryan Frizzarin
2. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Formação Acadêmica
•Técnico em Processamento de Dados
–Einstein 1994
• Tecnologia em Processamento de Dados
–Fatec 2003
•Pós-Graduação em Administração
–Fundação Getúlio Vargas - 2008
3. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Atuação Profissional
•Atuação na área de TI desde 1990
–Analista / Programador e Gerente de TI
•Escola Einstein
•TRW
•Invicta
•CTM Citrus
•Galle Folheados
–Professor
•COTIL/UNICAMP
4. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Ementa
•Fundamentos das linguagens de programação
•Meios de avaliação e das implementações das linguagens
•Estudo de linguagens em espécie e de sua evolução
•Estudo dos tipos de dados, estruturas de construção de um programa e introdução aos subprogramas.
5. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Bibliografia Básica Padrão
•SEBESTA, Robert W.. Conceitos de Linguagem de Programação. 9ª ed. São Paulo: Bookman, 2011.
6. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Bibliografia Complementar
•MIZRAHI, Victorine Viviane. Treinamento em linguagem C++: módulo 1. 2ª ed. São Paulo: Pearson - Prentice Hall, 2008, v.1.
•SANTOS, Rafael. Introdução à Programação Orientada a Objetos usando Java. 1ª ed. Rio de Janeiro: Campus - Elsevier, 2008.
•HARBISON III, Samuel P.. C: Manual de Referência. 1ª ed. Rio de Janeiro: Ciência Moderna, 2002.
•ASCENCIO, Ana F. G.. Fundamentos da programação de computadores : algoritmos, pascal e C/C++ e java. 2ª ed. São Paulo: Pearson - Prentice Hall, 2009.
•ZIVIANI, Nivio. Projeto de Algoritmos: com Implementações em Pascal e C. 2ª ed. São Paulo: Pioneira - Thomson Learning, 2005.
8. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Metodologia e Critérios de Avaliação
•Entrega de trabalhos será feita através do Google Drive
•Enviar email para o professor para que seja dado o acesso
•Haverão duas pastas ao qual o aluno terá acesso:
–Public (somente leitura)
•Onde será deixado o material didático, slides das aulas, etc
–Nome-Ra (leitura e gravação)
•Onde o aluno fará o upload dos trabalhos
•A lista de chamada será passada no início da aula
•Eventualmente será feita também uma chamada no final da aula (a critério do professor)
9. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Cronograma de Aulas
1.Apresentação da Disciplina e da metodologia de trabalho. Apresentação do Plano de Ensino e Aprendizagem. Introdução à Linguagens de Programação.
2.Introdução aos principais critérios de avaliação das linguagens de programação: legibilidade.
3.Critérios de avaliação das linguagens de programação: capacidade de escrita.
4.Critérios de avaliação das linguagens de programação: confiabilidade.
5.Abordagem das principais influências sobre o projeto de uma linguagem de programação: arquitetura do computador e metodologias de programação.
6.Métodos de implementação: compilação, interpretação pura, implementação hibrida.
7.Evolução das principais linguagens de programação: visão geral de Fortran e Lisp.
8.Evolução das principais linguagens de programação: visão geral de COBOL, Smalltalk.
9.Atividades de Avaliação.
10. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Cronograma de Aulas
10.Introdução a tipos de dados. Tipos primitivos: inteiro, float, decimal, booleano, caracter, string. Exemplos e exercícios de definição de tipos.
11.Tipos de dados definidos pelo usuário e tipo matriz. Abordagem de índices de matrizes. Exemplos e exercícios.
12.Tipos de dados: registro de dados. Definições dos registros. Referência a campos e operações com registros. Exemplos e exercícios
13.Introdução a expressões e instruções de atribuição. Expressões aritméticas (+,-,*, /). Contador e acumulador. Expressões lógicas (e, ou, não) e booleanas (V ou F). Exemplos.
14.Estruturas de uma linguagem: introdução a instruções de seleção. Exemplos e exercícios.
15.Introdução a instruções iterativas ou de repetição. Exemplos e exercícios.
16.Introdução a Subprogramas: conceito, tipos, utilização, parâmetros. Exemplos.
17.Atividades de revisão de conteúdo para a avaliação do segundo bimestre.
18.Prova Escrita Oficial
19.Exercícios de Revisão
20.Prova Substitutiva
11. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Inicialmente, nos primórdios da computação, escrevia-se programas em códigos binários, com resultados igualmente binários
12. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Tal processo, além de desgastante, era rudimentar e demasiadamente suscetível a erros;
•Para facilitar o trabalho dos programadores surgiram, ao longo dos anos, as linguagem de programação;
13. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Podemos dividir as linguagens em dois níveis
–Baixo
–Alto
14. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Podemos dividir as linguagens em dois níveis
–Baixo
•Linguagens que compreendem as características da arquitetura do computador
•Instruções de processadores, registradores e outras
•São as linguagens de primeira e segunda geração
•Assembly
15. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Podemos dividir as linguagens em dois níveis
–Baixo
–Alto
•Próximo à linguagem natural;
•Distantes da arquitetura do computador
•C, Pascal, Java e outras;
16. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Baixo Nível (Assembly)
variable:
.message db "Olá, Mundo!$"
code:
mov ah, 9
mov dx, offset .message
int 0x21
ret
•Alto Nível (Pascal) program OlaMundo(output); begin WriteLn('Olá, Mundo!'); end.
17. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Os programas escritos precisam ser transformados em linguagem de máquina para que possam ser executados
•Para linguagens de baixo nível (assembly) esse processo se chama montagem, pois é a simples tradução para seus valores numéricos equivalentes
•Exemplo: MOV AL, 61h é montado diretamente para o seu equivalente numérico binário 10110000 01100001
18. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Para linguagens de alto nível essa “tradução” em linguagem de máquina se dá através de 3 métodos:
–Compilação
–Interpretação
–Misto
19. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Compilação
–Um programa que chamamos de compilador lê o programa em linguagem de alto nível gera uma cópia em linguagem de máquina
–A cópia gerada é independente do código fonte que a originou e é diretamente inteligível pelo sistema operacional
–Sendo assim nem o compilador e nem o código fonte são mais necessários para a execução do programa
20. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
–Compilação
•Vantagens principais
–Rapidez
–Independência
•Desvantagens principais
–Programa gerado não é portável, se precisarmos rodar o programa num sistema operacional diferente será necessário compilarmos o mesmo para o novo SO
21. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Interpretação
–Um programa que chamamos de interpretador lê o código fonte e o vai traduzindo linha a linha para linguagem de máquina
–Toda vez que o programa precisar ser executado é necessário tanto o código fonte como o interpretador
22. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Interpretação
–Vantagens principais
•Portabilidade
–Desvantagens principais
•Lento
•Dependente do código fonte
•Dependente do interpretador
23. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Misto
–Aqui temos um conjunto de compilação e interpretação
–Um programa compilador gera um pseudo-código de máquina
–Este código não é inteligível diretamente pelo Sistema Operacional e sim por uma máquina virtual (programa que interpreta o pseudo-código)
–A máquina virtual interpreta o pseudo-código toda vez que ele é executado para o Sistema Operacional
24. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•Misto
–Vantagem
•Portabilidade
•Independência do código fonte
•Mais rápido que a interpretação pura
–Desvantagem
•Dependência da máquina virtual
•Mais lento que o código compilado
25. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Introdução
•No site http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm encontramos uma lista de algo em torno de 2500 linguagens de programação conhecidas
26. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
•As 20 mais utilizadas
•Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
27. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
•As 20 mais utilizadas
•Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
28. Paradigmas de linguagem de programação – Aula 1 – Apresentação
Guto – gutojm+fac@gmail.com
Exercícios
•Visite a lista de linguagens de programação na Wikipédia em http://pt.wikipedia.org/wiki/Anexo:Lista_de_linguagens_de_programação
•Escolha 3 linguagens e descreva suas características;
•Encontre e anexe ao descritivo um programa do tipo “Hello World” (“Olá Mundo”) para as linguagens escolhidas;
•Verifique se há possibilidade de encontrar para download as linguagens escolhidas e forneça indicativo de como fazê- lo;
•Entrega via Google Drive, individualmente! gutojm+fac@gmail.com