SlideShare une entreprise Scribd logo
1  sur  20
Télécharger pour lire hors ligne
Prof. Adriano Teixeira de Souza
   Nome
   Cidade
   Em que área trabalha
   Que tecnologias utiliza no dia-a-dia
   Expectativas para a disciplina




                         Prof. Adriano Teixeira de Souza
   Conteúdo programático

    ◦ Motivação para o estudo de Linguagens de Programação
    ◦ Critérios para Avaliação de Linguagens
    ◦ Métodos de Implementação de Linguagens
    ◦ Paradigmas de Linguagens de Programação
    ◦ Evolução Histórica das Linguagens de Programação
    ◦ Ambientes de Programação
    ◦ Estilos de Codificação e Padronização
    ◦ Expressões e Atribuição
    ◦ Estruturas de Controle
    ◦ Gerenciamento de Memória
    ◦ Tratamento de Exceções
    ◦ Modularização, componentização e reutilização de
      código
    ◦ Escalabilidade


                             Prof. Adriano Teixeira de Souza
   Aulas teórico - praticas
   Discussões sobe o assunto
   Listas de exercícios
   Trabalhos
   Avaliação bimestral
   Nota 1º bimestre
    ◦ Avaliação bimestral (peso de 50%)
    ◦ Trabalhos e listas de exercícios (peso de 35% )
    ◦ Participação e envolvimento em sala (peso 15%)
   Nota 2º bimestre
    ◦   Avaliação bimestral (peso de 50%)
    ◦   Artigo científico (20% peso)
    ◦   Trabalhos e listas de exercícios (peso de 15% )
    ◦   Participação e envolvimento em sala (peso 15%)



                                 Prof. Adriano Teixeira de Souza
   Linguagem de Programação:
    ◦ Linguagem usada por uma pessoa para expressar
      um processo através do qual um computador pode
      resolver um problema.

   Porque tantas?
    ◦ Propósitos diferentes
    ◦ Avanços tecnológicos
    ◦ Interesses comerciais




                              Prof. Adriano Teixeira de Souza
   Maior habilidade em resolver problemas:
    ◦ Melhor domínio;
   Melhor uso de uma LP
    ◦ Extrair o máximo de sua funcionalidade e eficiência;
   Maior embasamento para escolha de
    linguagens
    ◦ Não escolher apenas a linguagem que estiver mais
      familiarizado
   Melhor escolha de uma LP
    ◦ Adequação ao problema
   Maior facilidade em aprender novas LPs;


                            Prof. Adriano Teixeira de Souza
   Legibilidade
    ◦ Quão facilmente um programa pode ser lido e entendido
   Capacidade de Escrita
    ◦ Quão facilmente uma linguagem pode ser usada para
      criar programas
   Confiabilidade
    ◦ Conformidade com as especificações sob todas as
      condições
   Custo
    ◦ O custo final de uma linguagem é uma função de suas
      características
   Portabilidade
    ◦ Possibilidade de ser executada sob diversos sistemas
      operacionais e plataformas de harware


                              Prof. Adriano Teixeira de Souza
   Simplicidade global: uma linguagem com um
    grande número de componentes básicos é mais
    difícil de aprender do que com poucos desses
    componentes → programadores tendem a
    aprender subconjunto dela.

   Multiplicidade de recursos complica a
    legibilidade:

    cont = cont + 1
    cont += 1
    cont++
    ++cont


                          Prof. Adriano Teixeira de Souza
   Facilidade de ler e escrever programas
    ◦ Legibilidade influi:
         desenvolvimento e depuração de programas
         manutenção de programas
         desempenho de equipes de programação

   Fatores que melhoram a legibilidade:
    ◦   Abstração de dados
    ◦   Comandos de controle
    ◦   Modularização de programas
    ◦   Documentação
    ◦   Convenções léxicas, sintaxe e semântica
         Exemplo em Java: nomes de classes iniciam por letra
          maiúscula, nomes de campos usam letras minúsculas



                                  Prof. Adriano Teixeira de Souza
   Medida de quão facilmente uma linguagem pode ser
    usada para criar programas para um domínio de
    problema escolhido.

   Suporte para abstração: capacidade de definir e,
    depois, usar estruturas ou operações complicadas de
    uma maneira que permita ignorar muitos dos
    detalhes.

   Um conjunto relativamente conveniente de maneiras
    de especificar operadores

   Exemplos:
    ◦ count++ é mais conveniente do que count = count + 1
    ◦ a inclusão do for em muitas linguagens modernas




                                  Prof. Adriano Teixeira de Souza
   Um programa é confiável se ele se comportar
    seguindo suas especificações sob todas as
    condições.
   Verificação de tipos
    ◦ Testar se existem erros de tipos, pelo compilador
      ou durante a execução.
   Manipulação de Exceções
    ◦ Capacidade de interceptar erros em tempo de
      execução e por em prática medidas corretivas
    ◦ Ex: C++ e Java incluem essas facilidades. C e
      Fortran não



                            Prof. Adriano Teixeira de Souza
   Treinamento dos programadores para usar a
    linguagem
   Escrita de programas na linguagem
   Compilação programas na linguagem
   Execução dos programas
    ◦ Muitas verificações na execução deixando a
      execução lenta (Ex: Linguagem interpretada)
   Sistema de implementação da linguagem:
    ◦ Existência de compiladores free
   Confiabilidade
    ◦ Confiabilidade baixa leva a altos custos
   Manutenção dos programas

                             Prof. Adriano Teixeira de Souza
   Portabilidade
    ◦ Quão facilmente um programa pode ser movido de
      uma implementação para outra
      Ex: executar em vários sistemas operacionais, e
       plataformas de hardware
   Generalidade
    ◦ Seu uso em uma gama de aplicações
   Boa definição
    ◦ A precisão e a completeza da definição oficial da
      linguagem
   Existência de boas ferramentas
    ◦ Compiladores
    ◦ Debuggers


                              Prof. Adriano Teixeira de Souza
   Compilação
    ◦ Programas são traduzidos para a linguagem de
      máquina
   Interpretação pura
    ◦ Programas são interpretados por outro programa
      conhecido como interpretador
   Sistemas de implementação híbridos
    ◦ Um meio-termo entre compiladores e
      interpretadores puros




                           Prof. Adriano Teixeira de Souza
   Traduz programas em alto-nível (linguagem fonte)
    em código de máquina (linguagem de máquina)

   Tradução lenta, execução rápida

   O processo de compilação possui várias fases:
    ◦ Análise léxica
       Converte caracteres de um programa fonte em unidades léxicas
    ◦ Análise sintática
       Transforma unidades léxicas em parse trees, as quais
        representam a estrutura sintática do programa
    ◦ Análise semântica
       Gera código intermediário
    ◦ Geração de código
       Código de máquina é gerado




                                    Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   Sem tradução
   Fácil implementação de programas (erros de
    execução podem ser facilmente e
    rapidamente mostrados)
   Execução lenta (de 10 a 100 vezes mais lenta
    do que programas compilados)
   Geralmente requer mais espaço
   Cada vez mais raro em linguagens de alto-
    nível
   Embora não seja uma linguagem simples,
    JavaScript é puramente interpretado


                        Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza
   Um meio-termo entre compilador e interpretador
    puro
   Um programa em uma linguagem de alto-nível é
    traduzido para uma linguagem intermediária que
    permite fácil interpretação
    Mais rápido do que interpretação pura
    Exemplos
    ◦ Programas em Perl são parcialmente compilados para
      detectar erros antes da interpretação
    ◦ Implementações iniciais de Java eram híbridas
       A forma intermediária, byte code, provinha portabilidade
        para qualquer máquina que tivesse o interpretador de byte
        code e um sistema de run-time (juntos, esses são chamados
        de Java Virtual Machine)



                                Prof. Adriano Teixeira de Souza
Prof. Adriano Teixeira de Souza

Contenu connexe

Tendances

Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoSidney Roberto
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programaçãoAlbertoVach
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de ProgramaçãoBeDMK
 
Introdução a Linguagem de Programação
Introdução a Linguagem de ProgramaçãoIntrodução a Linguagem de Programação
Introdução a Linguagem de ProgramaçãoJessica Ribeiro
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Valmon Gaudencio
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programaçãoessa
 
Programação 1
Programação 1Programação 1
Programação 1essa
 
Linguagen..
Linguagen..Linguagen..
Linguagen..essa
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadoresLCCIMETRO
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 

Tendances (19)

Conceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de ProgramaçãoConceitos Iniciais de Linguagens de Programação
Conceitos Iniciais de Linguagens de Programação
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Linguágens de programação
Linguágens de programaçãoLinguágens de programação
Linguágens de programação
 
Linguagens de Programação
Linguagens de ProgramaçãoLinguagens de Programação
Linguagens de Programação
 
Introdução a Linguagem de Programação
Introdução a Linguagem de ProgramaçãoIntrodução a Linguagem de Programação
Introdução a Linguagem de Programação
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.Paradigmas De Linguagem De Programação.
Paradigmas De Linguagem De Programação.
 
Linguagens de programação
Linguagens de programaçãoLinguagens de programação
Linguagens de programação
 
Programação 1
Programação 1Programação 1
Programação 1
 
Software
SoftwareSoftware
Software
 
1.1.paradigmas
1.1.paradigmas1.1.paradigmas
1.1.paradigmas
 
Linguagen..
Linguagen..Linguagen..
Linguagen..
 
Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Paradigmas de programação
Paradigmas de programaçãoParadigmas de programação
Paradigmas de programação
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Aula 3 compiladores e interpretadores
Aula 3   compiladores e interpretadoresAula 3   compiladores e interpretadores
Aula 3 compiladores e interpretadores
 
Programação C - Aula 1
Programação C - Aula 1Programação C - Aula 1
Programação C - Aula 1
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 

En vedette

4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcionalPéricles Miranda
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacaopablogranola
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programaçãoPaulo Muniz
 
Linguagem de programação implementação de classes
Linguagem de programação   implementação de classesLinguagem de programação   implementação de classes
Linguagem de programação implementação de classesCarlos Melo
 
Atps paradigmas da linguagem
Atps paradigmas da linguagemAtps paradigmas da linguagem
Atps paradigmas da linguagemRafael Cianci
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoAdriano Teixeira de Souza
 
Linguagens Especificas de Dominio
Linguagens Especificas de DominioLinguagens Especificas de Dominio
Linguagens Especificas de DominioLuiz Araujo
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...tdc-globalcode
 
Respostas mankiw - capítulo 1 (superior)
Respostas mankiw  - capítulo 1 (superior)Respostas mankiw  - capítulo 1 (superior)
Respostas mankiw - capítulo 1 (superior)Luciano Pires
 
Contabilidade custos gasto, investimento, custo, despesa, perda, desembolso
Contabilidade custos gasto, investimento, custo, despesa, perda, desembolsoContabilidade custos gasto, investimento, custo, despesa, perda, desembolso
Contabilidade custos gasto, investimento, custo, despesa, perda, desembolsocustos contabil
 
Modelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNTModelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNTRosineia Oliveira dos Santos
 

En vedette (16)

4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 
Modelo de von neumann
Modelo de von neumannModelo de von neumann
Modelo de von neumann
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacao
 
Linguagem de programação
Linguagem de programaçãoLinguagem de programação
Linguagem de programação
 
Resumo de aulas lp1
Resumo de aulas lp1Resumo de aulas lp1
Resumo de aulas lp1
 
Linguagem de programação implementação de classes
Linguagem de programação   implementação de classesLinguagem de programação   implementação de classes
Linguagem de programação implementação de classes
 
Atps paradigmas da linguagem
Atps paradigmas da linguagemAtps paradigmas da linguagem
Atps paradigmas da linguagem
 
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de AtribuiçãoParadigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
Paradigmas de Linguagens de Programação - Expressões e Instruções de Atribuição
 
Linguagens Especificas de Dominio
Linguagens Especificas de DominioLinguagens Especificas de Dominio
Linguagens Especificas de Dominio
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Paradigmas do Ruby
Paradigmas do RubyParadigmas do Ruby
Paradigmas do Ruby
 
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
TDC2016POA | Trilha Programacao Funcional - Por que sua próxima aplicação web...
 
Respostas mankiw - capítulo 1 (superior)
Respostas mankiw  - capítulo 1 (superior)Respostas mankiw  - capítulo 1 (superior)
Respostas mankiw - capítulo 1 (superior)
 
Modelo de Artigo Científico
Modelo de Artigo CientíficoModelo de Artigo Científico
Modelo de Artigo Científico
 
Contabilidade custos gasto, investimento, custo, despesa, perda, desembolso
Contabilidade custos gasto, investimento, custo, despesa, perda, desembolsoContabilidade custos gasto, investimento, custo, despesa, perda, desembolso
Contabilidade custos gasto, investimento, custo, despesa, perda, desembolso
 
Modelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNTModelo de artigo científico básico - com normas ABNT
Modelo de artigo científico básico - com normas ABNT
 

Similaire à Paradigmas de Linguagens de Programação - Introdução

Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09essa
 
linguagens_de_programacao.ppt
linguagens_de_programacao.pptlinguagens_de_programacao.ppt
linguagens_de_programacao.pptJadna Almeida
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Gabriel Rubens
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iiiRay Fran Pires
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Gabriel Rubens
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleAdriano Teixeira de Souza
 
Python django7semestre
Python django7semestre Python django7semestre
Python django7semestre Denis Vieira
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem pythonBruno Maspoli
 
Introdução a linguagem java
Introdução a linguagem javaIntrodução a linguagem java
Introdução a linguagem javaRosicleia Frasson
 
Apresentação final
Apresentação finalApresentação final
Apresentação finalvalmon
 
Programacao_Concorrente slide.pdf
Programacao_Concorrente slide.pdfProgramacao_Concorrente slide.pdf
Programacao_Concorrente slide.pdfMuseiwaLopes
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Leinylson Fontinele
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisHenry Raúl González Brito
 

Similaire à Paradigmas de Linguagens de Programação - Introdução (20)

Linguagens de programação 03-12-09
Linguagens de programação   03-12-09Linguagens de programação   03-12-09
Linguagens de programação 03-12-09
 
Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...Comparativo do uso de linguagens de programação e geradores de código no dese...
Comparativo do uso de linguagens de programação e geradores de código no dese...
 
linguagens_de_programacao.ppt
linguagens_de_programacao.pptlinguagens_de_programacao.ppt
linguagens_de_programacao.ppt
 
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
Profissao-programador-praticas-para-melhoria-continua-unimonte-outubro-2013
 
Int. sistemas de informação iii
Int. sistemas de informação iiiInt. sistemas de informação iii
Int. sistemas de informação iii
 
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
Profissoa programador-praticas-para-melhoria-continua-fatec-santos-outubro-2013
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de Controle
 
Mini Curso de C
Mini Curso de CMini Curso de C
Mini Curso de C
 
Python django7semestre
Python django7semestre Python django7semestre
Python django7semestre
 
Trabalho linguagem python
Trabalho linguagem  pythonTrabalho linguagem  python
Trabalho linguagem python
 
Introdução a linguagem java
Introdução a linguagem javaIntrodução a linguagem java
Introdução a linguagem java
 
Apresentação final
Apresentação finalApresentação final
Apresentação final
 
Linguagem da programação
Linguagem da programaçãoLinguagem da programação
Linguagem da programação
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Programacao_Concorrente slide.pdf
Programacao_Concorrente slide.pdfProgramacao_Concorrente slide.pdf
Programacao_Concorrente slide.pdf
 
Apostila c
Apostila cApostila c
Apostila c
 
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
 
C 04 linguagem_de_programacao
C 04 linguagem_de_programacaoC 04 linguagem_de_programacao
C 04 linguagem_de_programacao
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores Digitais
 

Plus de Adriano Teixeira de Souza

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Adriano Teixeira de Souza
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasAdriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Adriano Teixeira de Souza
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Adriano Teixeira de Souza
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Adriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSAdriano Teixeira de Souza
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Adriano Teixeira de Souza
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)Adriano Teixeira de Souza
 

Plus de Adriano Teixeira de Souza (20)

Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
Estrutura de Dados em Java (Introdução à Programação Orientada a Objetos)
 
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
Estrutura de Dados em Java (Variáveis Compostas - Vetores e Matrizes)
 
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)Estrutura de Dados em Java (Revisão de Algoritimos em Java)
Estrutura de Dados em Java (Revisão de Algoritimos em Java)
 
Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)Estrutura de Dados em Java (Introdução)
Estrutura de Dados em Java (Introdução)
 
Responsive web design
Responsive web designResponsive web design
Responsive web design
 
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMSSistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
Sistemas Distribuídos - Comunicacao Distribuida - Middleware - JMS
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
Ferramentas para desenvolvimento web com produtividade - Artigo Final - Pos-G...
 
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)Ferramentas para desenvolvimento web com produtividade -  Slide Artigo (2009)
Ferramentas para desenvolvimento web com produtividade - Slide Artigo (2009)
 

Paradigmas de Linguagens de Programação - Introdução

  • 2. Nome  Cidade  Em que área trabalha  Que tecnologias utiliza no dia-a-dia  Expectativas para a disciplina Prof. Adriano Teixeira de Souza
  • 3. Conteúdo programático ◦ Motivação para o estudo de Linguagens de Programação ◦ Critérios para Avaliação de Linguagens ◦ Métodos de Implementação de Linguagens ◦ Paradigmas de Linguagens de Programação ◦ Evolução Histórica das Linguagens de Programação ◦ Ambientes de Programação ◦ Estilos de Codificação e Padronização ◦ Expressões e Atribuição ◦ Estruturas de Controle ◦ Gerenciamento de Memória ◦ Tratamento de Exceções ◦ Modularização, componentização e reutilização de código ◦ Escalabilidade Prof. Adriano Teixeira de Souza
  • 4. Aulas teórico - praticas  Discussões sobe o assunto  Listas de exercícios  Trabalhos  Avaliação bimestral  Nota 1º bimestre ◦ Avaliação bimestral (peso de 50%) ◦ Trabalhos e listas de exercícios (peso de 35% ) ◦ Participação e envolvimento em sala (peso 15%)  Nota 2º bimestre ◦ Avaliação bimestral (peso de 50%) ◦ Artigo científico (20% peso) ◦ Trabalhos e listas de exercícios (peso de 15% ) ◦ Participação e envolvimento em sala (peso 15%) Prof. Adriano Teixeira de Souza
  • 5. Linguagem de Programação: ◦ Linguagem usada por uma pessoa para expressar um processo através do qual um computador pode resolver um problema.  Porque tantas? ◦ Propósitos diferentes ◦ Avanços tecnológicos ◦ Interesses comerciais Prof. Adriano Teixeira de Souza
  • 6. Maior habilidade em resolver problemas: ◦ Melhor domínio;  Melhor uso de uma LP ◦ Extrair o máximo de sua funcionalidade e eficiência;  Maior embasamento para escolha de linguagens ◦ Não escolher apenas a linguagem que estiver mais familiarizado  Melhor escolha de uma LP ◦ Adequação ao problema  Maior facilidade em aprender novas LPs; Prof. Adriano Teixeira de Souza
  • 7. Legibilidade ◦ Quão facilmente um programa pode ser lido e entendido  Capacidade de Escrita ◦ Quão facilmente uma linguagem pode ser usada para criar programas  Confiabilidade ◦ Conformidade com as especificações sob todas as condições  Custo ◦ O custo final de uma linguagem é uma função de suas características  Portabilidade ◦ Possibilidade de ser executada sob diversos sistemas operacionais e plataformas de harware Prof. Adriano Teixeira de Souza
  • 8. Simplicidade global: uma linguagem com um grande número de componentes básicos é mais difícil de aprender do que com poucos desses componentes → programadores tendem a aprender subconjunto dela.  Multiplicidade de recursos complica a legibilidade: cont = cont + 1 cont += 1 cont++ ++cont Prof. Adriano Teixeira de Souza
  • 9. Facilidade de ler e escrever programas ◦ Legibilidade influi:  desenvolvimento e depuração de programas  manutenção de programas  desempenho de equipes de programação  Fatores que melhoram a legibilidade: ◦ Abstração de dados ◦ Comandos de controle ◦ Modularização de programas ◦ Documentação ◦ Convenções léxicas, sintaxe e semântica  Exemplo em Java: nomes de classes iniciam por letra maiúscula, nomes de campos usam letras minúsculas Prof. Adriano Teixeira de Souza
  • 10. Medida de quão facilmente uma linguagem pode ser usada para criar programas para um domínio de problema escolhido.  Suporte para abstração: capacidade de definir e, depois, usar estruturas ou operações complicadas de uma maneira que permita ignorar muitos dos detalhes.  Um conjunto relativamente conveniente de maneiras de especificar operadores  Exemplos: ◦ count++ é mais conveniente do que count = count + 1 ◦ a inclusão do for em muitas linguagens modernas Prof. Adriano Teixeira de Souza
  • 11. Um programa é confiável se ele se comportar seguindo suas especificações sob todas as condições.  Verificação de tipos ◦ Testar se existem erros de tipos, pelo compilador ou durante a execução.  Manipulação de Exceções ◦ Capacidade de interceptar erros em tempo de execução e por em prática medidas corretivas ◦ Ex: C++ e Java incluem essas facilidades. C e Fortran não Prof. Adriano Teixeira de Souza
  • 12. Treinamento dos programadores para usar a linguagem  Escrita de programas na linguagem  Compilação programas na linguagem  Execução dos programas ◦ Muitas verificações na execução deixando a execução lenta (Ex: Linguagem interpretada)  Sistema de implementação da linguagem: ◦ Existência de compiladores free  Confiabilidade ◦ Confiabilidade baixa leva a altos custos  Manutenção dos programas Prof. Adriano Teixeira de Souza
  • 13. Portabilidade ◦ Quão facilmente um programa pode ser movido de uma implementação para outra  Ex: executar em vários sistemas operacionais, e plataformas de hardware  Generalidade ◦ Seu uso em uma gama de aplicações  Boa definição ◦ A precisão e a completeza da definição oficial da linguagem  Existência de boas ferramentas ◦ Compiladores ◦ Debuggers Prof. Adriano Teixeira de Souza
  • 14. Compilação ◦ Programas são traduzidos para a linguagem de máquina  Interpretação pura ◦ Programas são interpretados por outro programa conhecido como interpretador  Sistemas de implementação híbridos ◦ Um meio-termo entre compiladores e interpretadores puros Prof. Adriano Teixeira de Souza
  • 15. Traduz programas em alto-nível (linguagem fonte) em código de máquina (linguagem de máquina)  Tradução lenta, execução rápida  O processo de compilação possui várias fases: ◦ Análise léxica  Converte caracteres de um programa fonte em unidades léxicas ◦ Análise sintática  Transforma unidades léxicas em parse trees, as quais representam a estrutura sintática do programa ◦ Análise semântica  Gera código intermediário ◦ Geração de código  Código de máquina é gerado Prof. Adriano Teixeira de Souza
  • 17. Sem tradução  Fácil implementação de programas (erros de execução podem ser facilmente e rapidamente mostrados)  Execução lenta (de 10 a 100 vezes mais lenta do que programas compilados)  Geralmente requer mais espaço  Cada vez mais raro em linguagens de alto- nível  Embora não seja uma linguagem simples, JavaScript é puramente interpretado Prof. Adriano Teixeira de Souza
  • 19. Um meio-termo entre compilador e interpretador puro  Um programa em uma linguagem de alto-nível é traduzido para uma linguagem intermediária que permite fácil interpretação  Mais rápido do que interpretação pura  Exemplos ◦ Programas em Perl são parcialmente compilados para detectar erros antes da interpretação ◦ Implementações iniciais de Java eram híbridas  A forma intermediária, byte code, provinha portabilidade para qualquer máquina que tivesse o interpretador de byte code e um sistema de run-time (juntos, esses são chamados de Java Virtual Machine) Prof. Adriano Teixeira de Souza