View
218
Download
0
Category
Preview:
Citation preview
CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO
CARACTERÍSTICAS
João Gabriel Ganem Barbosa
Sumário
¨ Motivação ¨ História ¨ Linha do Tempo ¨ Divisão
¤ Conceitos ¤ Paradigmas ¤ Geração
¨ Tipos de Dados ¨ Operadores ¨ Estruturada vs OO
¤ Vantagens ¤ Desvantagens
Introdução - Motivacional
¨ Por que estudar CLP?
¨ Conhecer os princípios e mecanismos por trás da linguagem
¨ Facilitar a curva de aprendizado das linguagens ¨ Melhorar o uso e diminuir o tempo de programação ¨ Escolher melhor a linguagem para resolver um
problema
História
¨ O primeiro trabalho foi da Ada Lovelace, em 1843.
¨ Uma das primeiras linguagens de programação para computadores foi Plankalkul
¨ O primeiro compilador escrito foi para a linguagem A-0, em 1952 por Grace Hopper
História
¨ A primeira linguagem de alto nível amplamente usada foi Fortran, criada em 1954
Linha do Tempo – Década de 50
1954 – FORTRAN 1958 – LISP 1959 - COBOL
Décadas de 60 e 70
¨ 1962 – Simula ¨ 1964 – Basic ¨ 1970 – Pascal ¨ 1973 – C ¨ 1972 – Smalltalk (OO) ¨ 1972 - Prolog
Década de 80
¨ 1982 – ADA (Sistemas modulares)
¨ 1983 – C++
¨ 1987 – Perl
Década de 90
¨ 1990 – Haskell ¨ 1991 – Python ¨ 1991 – Java ¨ 1993 – Ruby ¨ 1993 – Lua ¨ 1995 – JavaScript ¨ 1995 – PHP ¨ 2000 – C#
Conceitos
¤ Programação Estruturada ¤ Programação Modular ¤ Programação Linear ¤ Programação Orientada a Objetos
Programação Estruturada
¤ Três estruturas: Sequência, Decisão e Repetição
¤ Haskell
¤ Dominou a criação de software até a OO
¤ Ainda é amplamente utilizada
Programação Modular
¤ Desenvolvimento de rotinas através de módulos
¤ Modula-2 e Modula-3
Programação Linear
¤ Utilizado para resolução de problemas matemáticos
Programação Orientada a Objetos
Baseado na composição e interação entre unidades chamadas de objetos Maior facilidade em modelar o mundo real Mais utilizada atualmente para desenvolvimento
Paradigmas
¨ Imperativos ¤ Procedural
n BASIC e Fortran
¤ Estrutura de Blocos n Pascal e C
¤ Orientação a Objetos n C++, Java, Python
¤ Computação Distribuída n Ada
Paradigmas
¨ Declarativos ¤ Funcional
n LISP e Haskell
¤ Programação Lógica n Prolog
Gerações
¨ 1ª Geração ¤ Estruturas de controle orientadas a máquina ¤ Fortran
¨ 2ª Geração ¤ Estruturadas para minimizar o uso do GOTO ¤ Algol 60
¨ 3ª Geração ¤ Enfase a Simplicidade e Eficiência ¤ Pascal
Gerações
¨ 4ª Geração ¤ Linguagens com abstração de dados ¤ Encapsulamento ¤ Ada
¨ 5ª Geração ¤ Orientação a Objeto ¤ Paradigma Funcional ¤ Java, Prolog
Características das Linguagens de Programação
¨ Simplicidade ¨ Abstração de dados ¨ Ortogonalidade ¨ Expressividade ¨ Eficiência ¨ Portabilidade ¨ Leitura ¨ Confiabilidade
Abstração de Dados
¨ Abstração é o processo ou resultado de generalização por redução do conteúdo da informação de um conceito ou fenômeno observável
¨ A abstração de dados permite reduzir a informação necessária para a criação de um programa através das variáveis envolvidas em uma única entidade fechada.
Abstração de Dados
¨ Exemplo:
¨ struct Cliente { ! Nome! Idade! CPF! }!
Encapsulamento
¨ Separar um programa em partes
¨ Tornar o software Flexível
¨ Fácil Manutenção
¨ Impedir acesso a atributos
¨ Acesso se dá por métodos definidos
Polimorfismo
¨ Classes derivadas de uma Classe base conseguem tomar diferentes formas
¨ Herança
¨ Mesmo métoodo, comportamentos diferentes
Tipos de Dados
¨ int ¨ float ¨ double ¨ char ¨ byte ¨ short ¨ long ¨ boolean
Estruturas de Repetição
¨ if ¨ else ¨ switch ¨ for ¨ while ¨ do while ¨ break ¨ continue ¨ return
¨ try ¨ catch ¨ finally
Palavras Reservadas C
¨ auto ¨ break ¨ case ¨ char ¨ const ¨ continue ¨ default ¨ do double ¨ else ¨ enum
¨ extern ¨ float ¨ for ¨ goto ¨ if ¨ int ¨ long ¨ register ¨ return ¨ short
¨ signed ¨ sizeof ¨ static struct ¨ switch ¨ typedef ¨ union ¨ unsigned ¨ void ¨ volatile ¨ while
Palavras Reservadas Java
¨ package ¨ import ¨ new ¨ class ¨ interface ¨ enum ¨ abstract ¨ final ¨ implements ¨ extends ¨ instanceof ¨ public ¨ private ¨ protected
¨ super ¨ this ¨ throw ¨ throws ¨ try ¨ catch ¨ finally ¨ if ¨ else ¨ for ¨ do ¨ while ¨ switch ¨ case
¨ default ¨ break ¨ continue ¨ return ¨ boolean ¨ byte ¨ short ¨ int ¨ long ¨ double ¨ float ¨ char ¨ void ¨ strictfp
¨ transient ¨ volatile ¨ synchronized ¨ native ¨ assert ¨ static ¨ goto ¨ const ¨ true ¨ false ¨ null
Operadores Aritméticos
Operador Descrição
= Atribuição
+ Soma
- Subtração
/ Divisão
% Resto
Incremento e Decremento
Operador Descrição
++ Incremento ( x++ ou ++x)
-- Decremento (x-- ou --x)
Operadores Relacionais
Operador Descrição
> Maior que
< Menor que
>= Maior ou igual
<= Menor ou igual
== Igual a
!= Diferente de
Operadores Lógicos
Operador Descrição
&& E
|| OU
! Não (Negação)
Operadores Bit-a-Bit
Operador Descrição
& E
| OU
ˆ XOR (Ou exclusivo)
<< Shift a esquerda
>> Shift a direita
Estruturada Vs OO
¨ Portabilidade ¤ Em Java, o programa roda em cima de uma máquina
virtual, que pode ser instalada nos sistemas mais utilizados (linux, OS e Windows), permitindo uma portabilidade muito maior que o C
¤ Em C, o programa é distribuído no formato binário executável exclusivamente para a plataforma em que foi compilado, podendo dar conflito até em tipos diferentes de processador
Estruturada Vs OO
¨ Segurança ¤ Em C, é possível ao programador acessar áreas de
memória que não dizem respeito ao programa. ¤ Vírus podem ser criados em C ¤ Java é amplamente utilizado em serviços WEB por ser
mais seguro (mas nem tanto).
Estruturada Vs OO
¨ Encapsulamento ¤ Em Java, pode-se declarar os atributos e métodos
como public, protected e private
¤ Em C, através de Structs
Estruturada Vs OO
¨ Aplicações ¤ Java
n OpenOffice n Jdownloader n Netbeans
¤ C n Kernel do Linux
CLP
¨ Dúvidas?
Recommended