43
5COP101 – Linguagens de Programação Aula 1 – Introdução a LP 5COP101 Linguagens de Programação Aula 1 Java Prof. Dr. Sylvio Barbon Junior 1 Sylvio Barbon Jr – [email protected]

Aula 1 Java Prof. Dr. Sylvio Barbon Junior · Linguagens como Ada, C++, Java e C# apresentação capacidades avançadas para o controle de exceção. Aliasing: É a característica

  • Upload
    ledang

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

5COP101

Linguagens de Programação

Aula 1Java

Prof. Dr. Sylvio Barbon Junior

1Sylvio Barbon Jr – [email protected]

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

Sumário

2Sylvio Barbon Jr – [email protected]

1) Razões para Estudar “Conceitos” de LP;

2) Domínios das Linguagens de Programação

3) Critérios para Avaliação das Linguagens- Readability- Writability- Reliability

4) Categorias das Linguagens (Paradigmas)

5) Métodos para Implementação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

4Sylvio Barbon Jr – [email protected]

1) Aumentar a capacidade de expressar ideias:- A relação entre poder de expressão, raciocínio e abstração está ligada à linguagem.- Programadores podem aumentar a capacidade de desenvolvimento de software aprendendo outras linguagens.

2) Melhora da escolha apropriada para linguagens:- Na universidade são ensinadas poucas linguagens;- As linguagens mudam constantemente;- A linguagem deve ser escolhida para solucionar o problema;- É melhor selecionar uma linguagem que tenha a característica do que simular a característica em outra (elegância, lentidão, inseguro);

Razões para Estudar

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

5Sylvio Barbon Jr – [email protected]

3) Aumenta a capacidade de aprender novas linguagens:- É sabido que uma pessoa que tem sólida formação em apenas uma linguagem tem dificuldades para aprender uma nova, quando comparado a um indivíduo com formação em 2 ou 3.

- Exemplo, pessoas que conhecem o paradigma O.O. terão mais facilidade para aprender Java do que quem não conhecem os conceitos.

- O mesmo fenômeno acontece para linguagens naturais, um indivíduo que fala português, que aprendeu inglês terá mais facilidade par aprender alemão.

Razões para Estudar

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

6Sylvio Barbon Jr – [email protected]

4) Melhor compreensão da importância da implementação:

- Uso mais inteligente da linguagem de programação selecionada;

- Aumento da velocidade de depuração de erros e gargalos;

- Por exemplo, desenvolvedores que conhecem pouco sobre outras linguagens podem escolher a invocação de rotinas legadas ao invés da implementação em uma mesma plataforma;

Razões para Estudar

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

7Sylvio Barbon Jr – [email protected]

5) Uso adequado das linguagens já conhecidas:- O uso de linguagens que não são familiares reforçam o estudo de características e aplicações, que podemampliar e abranger áreas não estudadas na ling. dominada;

6) Avanço geral em computação:- Uma visão geral dos conceitos auxiliam no aprofundamento da teoria da computação;

- Novas linguagens surgem a todo momento, algumas específicas para escopos de problemas;

Razões para Estudar

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

Domínios de Programação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

9Sylvio Barbon Jr – [email protected]

Aplicações Científicas

Aplicações Comerciais (Business)

Inteligência Artificial

Programação de Sistemas

Softwares para Web

Domínios de Programação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

10Sylvio Barbon Jr – [email protected]

1) Aplicações Científicas:- Tipicamente estruturas simples;- Muitos cálculos aritméticos;- Alta precisão numérica;- Exemplo: Fortran e ALGOL 60

2) Aplicações Comerciais (Business):- Facilidade na produção de relatórios;- Diversas maneiras de descrever dados;- Estruturas complexas para os dados (data e char.)- Exemplo: COBOL.

3) Inteligência Artificial:- Utilização simbólica e não computacional;- Deve ser mais flexível que os outros domínios;

Domínios de Programação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

11Sylvio Barbon Jr – [email protected]

- Algumas aplicações precisam de codificação de segmentos durante a execução- Exemplos: LISP

4) Programação de Sistemas- Características de baixo nível;- Recursos de interface com dispositivos de I/O;- Exemplo: Linguagem C

5) Softwares Web- Coleção eclética de linguagens;- Entre as funcionalidade, escrita em HTML;- Exemplo: PHP;

Domínios de Programação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

12Sylvio Barbon Jr – [email protected]

Outra descrição de domínio:

Domínios de Programação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

13Sylvio Barbon Jr – [email protected]

Foco da avaliação das linguagens está pautado no processo de desenvolvimento de software, principalmente manutenção.

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

14Sylvio Barbon Jr – [email protected]

1) Readability:- É uma das características mais importantes, que garantem a legibilidade e compreensão;

– Inicialmente as linguagens eram construídas “do ponto de vista” do computador e não do usuário;

– A popularização da computação se deu a melhoria deste critério.

– A “legibilidade” deve ser considerada do contexto do domínio do problema.

– A dificuldade deve estar em solucionar o problema e não em traduzir para a máquina.

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

15Sylvio Barbon Jr – [email protected]

1) Readability:

Algumas características contribuem para a legibilidade das Linguagens de Programação:

Critérios para Avaliação das Linguagens

Simplicidade Global

Ortogonalidade

Tipagem de Dados

Sintaxe

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

16Sylvio Barbon Jr – [email protected]

1) Readability:

Simplicidade Global: Problemas de legibilidade podem ocorrer quando o programador pode “ler” um trecho acreditando ser familiar, mas apresenta resultados específicos. Exemplo:

aux = aux + 1aux += 1aux++++aux

A sobrecarga de operador contribui para a redução para a legibilidade do código.

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

17Sylvio Barbon Jr – [email protected]

1) Readability:

Ortogonalidade: Define a relação entre um grupo de construções primitivas e como elas podem ser combinadas. Quanto mais ortogonal a linguagem, menos exceções serão criadas. Exemplo:

a + b

* A expressão pode significar que os valores estão sendo movidos e adicionados juntos. Porém se “a” for um ponteiro ou um tipo flutuante, serão necessários tratamentos.

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

18Sylvio Barbon Jr – [email protected]

1) Readability:

Tipagem de dados: Facilidades para a definição dos tipos de dados e estruturas contribuem na legibilidade.

valor = 1

valor = true

Sintaxe: A sintaxe ou “forma” afetam diretamente a legibilidade. O uso de palavras especiais (reservadas) influenciam fortemente a legibilidade. Exemplos: while, for, class, end, end loop.

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

19Sylvio Barbon Jr – [email protected]

2) Writability:– É a medida de facilidade para escrita de programas

em um determinado domínio.

– A maioria das características de legibilidade (readability) afetam a writability.

– Exemplo: A writability do VB (Visual Basic) para escrita de softwares com interface gráfica é drasticamente diferente da linguagem C.

– Algumas novas características serão destacadas:

Critérios para Avaliação das Linguagens

Simplicidade e Ortogonalidade Suporte a Abstração

Expressividade

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

2) Writability:

Simplicidade e Ortogonalidade: Caso a linguagem apresente uma diversidade de construções o programador pode não se familiarizar com todas. Isso pode induzir o uso incorreto de algumas construções e o desuso de outras. Por outro lado o excesso de simplicidade pode exigir uma solução complexa para um problema.

Por isso a ideia de uma linguagem adequada para o problema é sempre considerada na solução de um problema.

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

2) Writability:

Simplicidade e Ortogonalidade:

Critérios para Avaliação das Linguagens

Visual Basic

C

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

2) Writability:

Suporte a Abstração: Sendo abstração a habilidade de definir e depois utilizar estruturas ou operações para diversos fins, as linguagens devem auxiliar nesta tarefa.

O grau de abstração permite ao programador descrever solução com mais naturalidade.

Um grau de abstração adequado está sempre ao domínio do problema.

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

2) Writability:

Exepressividade: Pode referenciar diversas características, mas podemos relacionar com a capacidade de escrever programas “menores”, utilizando elementos como:

• count++ (count = count + 1)

• for ( ao uso do while com variável de controle)

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

3) Reliability:

- Descreve a capacidade de uma linguagem ser segura em várias condições. As principais características deste critério são:

Critérios para Avaliação das Linguagens

Verificação de Tipo

Controle de Exceção

Aliasing

Readability e Writability

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

3) Reliability:

Verificação de Tipo: É a tarefa de verificação de tipagem de variáveis durante a compilação ou execução de um programa.

Diversos erros podem ser evitados com a tipagem correta dos dados e requisitando os reparos adequados dos desenvolvedores.

Um exemplo da importância desta verificação é quando um tipo pode assumir alguns correspondentes como int e float, porém o resultado pode não ser o esperado.

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

3) Reliability:

Controle de Exceções: É a habilidade de interceptação de condições indesejadas em um programa e tomar medidas de correção para mantê-lo coerente.

Linguagens como Ada, C++, Java e C# apresentação capacidades avançadas para o controle de exceção.

Aliasing: É a característica de apresentar dois ou mais mecanismos para acessar o mesmo lugar da memória. Esta característica é considerada como prejudicial em uma linguagem de programação.

Exemplo: Dois ponteiros apontam para o mesmo endereço de memória.

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

3) Reliability:

Readability e Writability: A legibilidade e capacidade de escrita também influenciam na confiabilidade de uma linguagem de programação. Estes fatores ficam mais evidentes em fases do ciclo de vida do software desenvolvido. Programas que são de dificil leitura e escrita, obviamente só complexos para modificação e correção.

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

CUSTO

O custo total que envolve o uso de uma linguagem de programação é formado por diversos fatores:

1)Treinamento (Simplicidade e Ortogonalidade)2)Custo de escrever programas (writability)3)Custo de compilação (tempo)4)Custo de execução (tempo)5)Custo de implementação do sistema (financeiro)6)Custo por confiabilidade (falhas)7)Manutenção (correções e adição de novas func.)

Novos critérios: Portabilidade, Generalidade e Welldenedness (completo e preciso)

Critérios para Avaliação das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

As linguagens são categoriazadas em quatro grupos (ou paradigmas):

- Linguagens Imperativas;

- Linguagens Funcionais;

- Linguagens Lógicas;

- Linguagens Orientadas a Objetos.

Categorias das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

- Linguagens Imperativas:

Tem como principal característica comando que atualizam as variáveis armazenadas em memória;

Seu domínio são aplicações comerciais, científicas e sistemas operacionais.

Exemplo: C, Cobol, Pascal etc.

Categorias das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

- Linguagens Imperativas:

Categorias das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

- Linguagens Funcionais:

Tem como origem as funções matemáticas para realizar as computações.

Domínio: aplicações científicas e inteligência artificial.

Exemplo: Lisp, Scheme, CLOS etc.

Categorias das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

- Linguagens Funcionais:

Categorias das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

- Linguagens Lógicas:

A implementação é baseada em uma descrição lógica do problema (uma relação). Muito utiilzado em sistemas especialistas.

Domínio: Inteligência Artificial;

Exemplo: Prolog e Gödel

Categorias das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

- Linguagens Lógicas:

Categorias das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

- Linguagens Orientadas a Objetos:

Conceitos de classes, atributos e objetos.

Domínios: Praticamente todos.

Exemplos: Java, C++, C# etc;

Categorias das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

- Linguagens Orientadas a Objetos:

Categorias das Linguagens

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

Os métodos de implementação descrevem com uma linguagem interagem entre o código e o hardware de execução

Métodos de Implementação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

Os métodos podem ser divididos em:

1) Compilação

2) Interpretação Pura

3) Interpretação Híbrida

Métodos de Implementação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

1) Compilação

- É a tradução de im programa fonte em um programa em linguagem de montagem ou de máquina.

- Normalmente é caracterizado pela rápida execução

- Exemplo: C, Cobol, Fortran, Pascal.

Métodos de Implementação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

2) Interpretação Pura

- Interpreta os comandos do código fonte e os executa;

- Caracterizado por uma depuração facilitada;

- Uso de Máquinas Virtuais;

- Mais lento do que as linguagens compiladas;

- Exemplo: Javascript, Prolog, VBScript, Shell;

Métodos de Implementação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

3) Interpretação Híbrida

- É realizada uma tradução para um programa intermediário de fácil interpretação;

- Desempenho intermediário entre as anteriores;

- Exemplo: Java, Perl etc.

Métodos de Implementação

5COP101 – Linguagens de ProgramaçãoAula 1 – Introdução a LP

Referências1- Sebesta, R. Conceitos de Linguagens de Programação. 5ª

Edição. Porto Alegre. Bookman, 2003.

2 - Tucker, A. B. Noonan, R. E. Linguagens de Programação. Princípios e Paradigmas. 2ª Ed. São Paulo, McGraw-Hill, 2008.