histórico de linguagens de programação - joinville.udesc.br · • É um sub-paradigma do...

21
Paradigmas de Programação PARADIGMAS DE PROGRAMAÇÃO Prof. Claudinei Dias email: [email protected] Histórico de Linguagens de Programação Bacharelado em Ciência da Computação

Upload: nguyennhi

Post on 12-Jul-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Paradigmas de Programação

PARADIGMAS DE PROGRAMAÇÃO

Prof. Claudinei Dias

email: [email protected]

Histórico de Linguagens de Programação

Bacharelado em Ciência da Computação

Paradigmas de Programação

Objetivos

• Geral: – Estudar as características dos principais modelos de programação

quanto a estruturação, interação e a relação entre as linguagens de programação. Estudar os tipos de técnicas de implementação utilizados para o desenvolvimento de programas e solução de problemas.

• Específicos: – Estudar os custos de implementação;

– Comparar técnicas entre linguagens de programação;

– Estudar as estruturas conceituais para resolver problemas;

– Entender alguns dos principias conflitos entre os recursos de linguagens.

2

Paradigmas de Programação

Plano de Ensino

• 1. Histórico de linguagens de programação

– 1.1. Motivação

– 1.2. Histórico

– 1.3. Paradigmas de programação

3

Paradigmas de Programação

Motivação

• Adquirir habilidades de expressar ideias;

• A profundidade da soluções está relacionada pelos recursos da linguagem com o qual está trabalhando;

• Avanço do poder computacional e das tecnologias;

• Aperfeiçoa-se a compreensão do significado da implementação;

• Aprimora-se a habilidade de aprender novas linguagens.

4

Paradigmas de Programação

Histórico

1950.................................................................................................

1960.................................................................................................

1970.................................................................................................

1980.................................................................................................

1990.................................................................................................

5

OO Imperativo Funcional Lógico

FORTRAN

PROLOG

Godel

LISP

ML

Haskel

Miranda

ALGOL-60 COBOL

PL BASIC

C

ALGOL-60

Pascal

Ada Modula2

DBASE II

SIMULA

Smalltalk

C++

Java Delphi

Paradigmas de Programação

Paradigmas de Programação

• Programação Imperativa – Fortran, Pascal, PL, C

• Programação Orientada a Objetos – Java, C++, Smalltalk

• Programação Funcional – Lisp, Haskel

• Programação Lógica – Prolog

6

Paradigmas de Programação

Paradigma Imperativo

• Primeiro paradigma que surgiu

• Programas desenvolvidos por variáveis e comandos

• Também denominado de paradigma procedural

• Vantagens: – Eficiência (modelo de Von Neumann)

– Modelagem “natural” de aplicações do mundo real

– Paradigma dominante

• Problemas: – Relacionamento indireto E/S ocasionando difícil legibilidade, erros

durante manutenção

7

Paradigmas de Programação

Paradigma Orientado a Objetos

• É um sub-paradigma do imperativo

• O diferencial é a metodologia quanto a modelagem do sistema

• É estruturada em módulos (classes) que agrupam operações (métodos)

• Vantagens: – Todas as do paradigma imperativo

– Classes: modularidade, reusabilidade e extensibilidade

• Problemas: – Semelhantes ao do imperativo

8

Paradigmas de Programação

Paradigma Funcional

• Modelagem por funções que descrevem relações explicitas e precisa

• Estilo declarativo sem comandos como atribuição

• Vantagens: – Manipulação de programas mais simples

– Prova de propriedade

– Transformações de otimização

• Problemas: – Mecanismos primitivos de E/S

9

Paradigmas de Programação

Paradigma Lógico

• Modelagem com relações entre E/S

• Estilo declarativo mas na prática assume características imperativas

• Vantagens: – Todas do funcional

– Alto nível de abstração

• Problemas: – Todos do paradigma funcional

– Não possuem tipos de dados

10

Paradigmas de Programação

Características importantes em LP

Legibilidade

É o quanto o código é de fácil leitura e compreensão, quanto maior a legibilidade, mais fácil será de entender o código e achar erros de programação.

Por exemplo o uso do goto (como o switch, case em C), dificulta o acompanhamento lógico da leitura do código, ou também o operador ‘*’ em C, que é usado tanto para operação de multiplicação quanto para uso de ponteiros.

(Mattos, Renato. Linguagem de Programação).

11

Paradigmas de Programação

Características importantes em LP

Confiabilidade

É o quanto pode-se confiar em um código de uma linguagem, ou seja, uma linguagem com uma boa confiabilidade, não propicia erros de programação, assim sendo a confiabilidade está relacionada a legibilidade.

Quando uma linguagem possui recurso de tratamento de exceções, também aumenta a confiabilidade, pois é mais difícil o programador esquecer de tratar a exceção ou de tratar de forma errada.

(Canalle, Gabrielle K. ; de Araújo C. Everton.

C/C++ e Java: Principais Características).

12

Paradigmas de Programação

Características importantes em LP

Eficiência

É o quanto os códigos são mais eficientes, atingem seus objetivos de maneira rápida, segura.

Essa característica pode variar de código para código, um site de um banco, por exemplo, é preciso ser seguro, rápido, de fácil acesso, de fácil uso, etc. Essas características são critérios de eficiência.

13

Paradigmas de Programação

Características importantes em LP

Facilidade de aprendizado

Está diretamente relacionado à legibilidade, pois se um código não tem boa legibilidade, não tem uma fácil compreensão do código, e não terá um aprendizado fácil.

Facilidade de Aprendizado é o quanto é simples para algum programador que não conheça a linguagem, aprende-la. Uma linguagem com uma boa facilidade de aprendizado, tem uma boa legibilidade e é simples de entende-la.

14

Paradigmas de Programação

Características importantes em LP

Ortogonalidade

É a capacidade da linguagem de programação de deixar o programador usar seus conceitos básicos sem que se tenha efeitos não desejados ou aleatórios, ou seja, quanto menos exceções de código a linguagem permite.

Por exemplo a não necessidade de declaração do tipo da variável, é ruim tanto para a legibilidade quanto para a ortogonalidade.

(Mattos, Renato. Linguagem de Programação).

15

Paradigmas de Programação

Características importantes em LP

Modificabilidade

São as facilidade oferecidas pela linguagem para que se mude uma parte do código tendo que mudar o mínimo possível as outras partes.

Por exemplo uma linguagem Orientada a Objetos possui essa característica, pois é uma característica forte do próprio paradigma, outro exemplo são as constantes que algumas linguagem permitem ser declaradas, assim se for necessário mudar a constate, muda-se uma vez na sua declaração e não no seu uso.

(Mattos,Renato. Linguagem de Programação).

16

Paradigmas de Programação

Características importantes em LP

Portabilidade

É a capacidade do código de fazer a mesma coisa em diferentes plataformas ou sistemas operacionais independentemente da ferramenta utilizada para traduzi-lo.

Assim um mesmo programa pode ser utilizado em diversos ambientes e situações sem que seja necessário fazer uma reescrita de código para adaptá-lo em um novo ambiente ou situação

(Mattos,Renato. Linguagem de Programação).

17

Paradigmas de Programação

Características importantes em LP

Reusabilidade

É a capacidade de se utilizar o mesmo código, ou trecho do código em outra situação, outra característica forte do paradigma orientado a objetos, assim as linguagem que seguem a esse paradigma são de alta reusabilidade.

Essa é uma característica muito boa que se faz ganhar bastante tempo e consequentemente, dinheiro quando se trata de se desenvolver vários softwares.

18

Paradigmas de Programação

Características importantes em LP

19

x

Paradigmas de Programação

Bibliografia da Disciplina

20

BIBLIOGRAFIA :

PRATT, T. W., ZELKOVITZ, M. Programming Languages: Design and Implementation. 4ªed. Prentice Hall, 2001. ISBN 0130276782. MICHELL, JOHH C. Concepts in Programming Languages. Cambridge University Press, 2003. SEBESTA, R.W. Conceitos de Linguagens de Programação. 5a ed. Editora Bookman. 2003. ISBN 8536301716. VAREJÃO, F.M. Linguagens de Programação. Editora Campus. 2005. ISBN 8535213171.

Paradigmas de Programação

PARADIGMAS DE PROGRAMAÇÃO

Prof. Claudinei Dias

email: [email protected]

Histórico de Linguagens de Programação

Bacharelado em Ciência da Computação