CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO

Propaganda
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
¤  Ainda
a criação de software até a OO
é amplamente utilizada
Programação Modular
¤  Desenvolvimento
¤  Modula-2
de rotinas através de módulos
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
n  Pascal
de Blocos
eC
¤  Orientação
n  C++,
a Objetos
Java, Python
¤  Computação
n  Ada
Distribuída
Paradigmas
¨ 
Declarativos
¤  Funcional
n  LISP
e Haskell
¤  Programação
n  Prolog
Lógica
Gerações
¨ 
1ª Geração
¤  Estruturas
de controle orientadas a máquina
¤  Fortran
¨ 
2ª Geração
¤  Estruturadas
¤  Algol
¨ 
para minimizar o uso do GOTO
60
3ª Geração
¤  Enfase
¤  Pascal
a Simplicidade e Eficiência
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?
Download