Linguagens de programação1

Propaganda
0011 0010 1010 1101 0001 0100 1011
1
2
4
0011 0010 1010 1101 0001 0100 1011
Linguagens
de
Programação
1
2
4
0011 0010
1010 1101 0001 0100 1011
Pensamento
Humano (nãoestruturado)
Programa
Computador
1
2
4
LINGUAGENS DE
PROGRAMAÇÃO
0011 0010 1010 1101 0001 0100 1011
• Usadas para descrever algoritmos; isto é,
seqüências de passos que levam à solução
de um problema.
• Permitir que os usuários especifiquem como
estes passos devem ser seqüenciados para
resolver um problema.
• Especificar algoritmos com precisão.
1
2
4
Tipos de Linguagem
0011 0010 1010 1101 0001 0100 1011
• As linguagens de baixo nível
– Restritas a linguagem de máquina
– Forte relação entre as operações implementadas pela
linguagem e as operações implementadas pelo
hardware.
• As linguagens de alto nível
1
2
4
– Aproximam-se das linguagens utilizadas por humanos
para expressar problemas e algoritmos
– Cada declaração numa linguagem de alto nível equivale
a várias declarações numa linguagem de baixo nível.
Primeiras Linguagens
0011 0010 1010 1101 0001 0100 1011
• Programadores usavam linguagem de máquina
– Seqüências de dígitos binários (0s e 1s).
– Por exemplo, a instrução “some 1 + 1” deveria ser representada
como: 10100100
• Muitas desvantagens:
1
2
– Grande probabilidade de erro em todos os estágios do processo de
programação.
– Mesmo sendo com algoritmos simples resulta em longos
programas, o que dificulta o processo de validação e detecção de
erros.
– O cálculo de endereços de memória devem ser feitos manualmente,
com um árduo trabalho e uma grande probabilidade de erros.
4
Assembler
0011 0010 1010 1101 0001 0100 1011
• Algumas das desvantagens podem ser superadas fazendo
com que o computador seja o responsável pelo estágio de
tradução.
1
2
• O programa ainda é escrito em termos de operações
básicas de máquina, mas a tradução em código binário é
feita pelo computador.
4
• O programa que faz essa tradução é chamado de assembler
• Trata do problema de cálculo de endereço, usando nomes
em formato de texto para endereçar os dados.
Linguagens de Alto Nível Vs
Linguagens de Baixo Nível
0011 0010 1010 1101 0001 0100 1011
•
Alto nível
–
–
–
Problemas podem ser solucionados muito
mais rapidamente e com muito mais
facilidade
A solução do problema não necessita ser
obscurecida pelo nível de detalhes necessários
em um programa em linguagem de baixo
nível.
O programa em linguagem de alto nível é
normalmente fácil de seguir e entender cada
passo da execução.
1
2
4
Linguagens de Alto Nível Vs
Linguagens de Baixo Nível
0011 0010 1010 1101 0001 0100 1011
•
Baixo nível
–
–
–
Indicada para funções que precisam
implementar instruções de máquina
específicas que não são suportadas por
linguagens de alto nível
A grande eficiência e o reduzido tamanho dos
programas
Impossibilidade de uso de linguagens de alto
nível (hardware simples)
1
2
4
Histórico das Linguagens de
Programação
0011 0010 1010 1101 0001 0100 1011
•
•
Existem centenas de linguagens de programação
Agrupadas em 4 gerações:
–
–
–
–
Primeira geração: linguagem de máquina
Segunda geração: grande quantidade de bibliotecas de
software, sistemas de execução em tempo real e
desenvolvimento de gerenciadores de base de dados.
Terceira geração: capacidade procedural e estrutural
Quarta geração: sistemas especialistas,
desenvolvimento de inteligência artificial execução
dos programas em paralelo.
1
2
4
Processamento de Linguagens
0011 0010 1010 1101 0001 0100 1011
•
Embora seja teoricamente possível a construção
de computadores especiais, capazes de executar
programas escritos em uma linguagem de
programação qualquer, os computadores
existentes hoje em dia são capazes de executar
somente programas em uma linguagem de nível
baixo, a linguagem de máquina.
Linguagens de máquina: rapidez de execução de
programas, do custo de sua implementação
1
•
2
4
Processamento de Linguagens
0011 0010 1010 1101 0001 0100 1011
• Linguagens de programação: facilidade na
construção e da confiabilidade de programas
1
2
• Um problema básico:como uma linguagem de
nível mais alto pode ser implementada em um
computador cuja linguagem de máquina é bastante
diferente, e de nível bem mais baixo.
4
• Existem basicamente duas alternativas para esta
implementação: interpretação e tradução.
Interpretação
0011 0010 1010 1101 0001 0100 1011
•
Nesta solução, as ações indicadas pelos
comandos da linguagem são diretamente
executadas.
•
Mais precisamente, um interpretador é um
programa que executa repetidamente a seguinte
seqüência:
1. Obter o próximo comando do programa.
2. Determinar que ações devem ser
executadas.
3. Executar estas ações.
1
2
4
Tradução
•
Nesta solução, programas escritos em linguagem de alto nível são
0011 0010 1010 1101
0001 0100
1011 equivalentes em linguagem de máquina,
traduzidos
para versões
antes de serem executados.
•
1
2
Esta tradução é feita em vários passos. Por exemplo:
–
Inicialmente traduzidos para código Assembly (compilador)
–
Depois ser traduzido para código relocável (objeto), em
linguagem de máquina
–
O programa inteiro é carregado na memória principal, como
código executável de máquina.
4
Linguagem de Montagem
0011 0010 1010 1101 0001 0100 1011
1
2
4
Linguagem de Programação
0011 0010 1010 1101 0001 0100 1011
• Conjunto de instruções seqüenciais padrões.
• Independente de arquitetura de computador
específica.
• São criações humanas
• Seguem certas convenções
• São traduzidas (compiladas) de forma a ser
compreendida pelo computador.
1
2
4
Características
0011 0010 1010 1101 0001 0100 1011
• Linguagem Orientada a Objetos
• Simples e Robusta: Aperfeiçoamento da
linguagem C++
• Gerenciamento Automático de Memória
• Independência de Plataforma: JVM (Java
Virtual Machine)
• Multi Threading: Executa várias tarefas ao
mesmo tempo
1
2
4
A Máquina Virtual Java - JVM
0011 0010 1010 1101 0001 0100 1011
DOS
JVM
MeuPrograma.java
(código fonte)
MeuPrograma.class
(Bytecode)
1
Unix
JVM
4
Win
Compilação
javac
Execução
java
2
JVM
JVM
Linux
JVM
Esquema de compilação e execução de um programa em Java
Exemplo Aplicado
0011 0010 1010 1101 0001 0100 1011
1
2
4
Applet Java
1.import java.io.*; //diretiva de compilação,
apontamento para uma classe externa que será
utilizada no processo de compilação
2.class
Exemplo0206
0011 0010
1010
1101 0001 0100 1011
3.{
4. public static void main (String args[])
5. {
6.
String s="";
7.
float nota1=0, nota2=0, trabalho=0, media=0;
8.
DataInputStream dado; //declaração de um
objeto
a partir da classe DataInputStream
9.
10.
11.
12.
try (Bloco Tente) linhas 10 a 26
{
System.out.println("Entre com a nota 1");
dado= new DataInputStream(System.in);
digita
13.
s=dado.readLine(); //variável s recebe o
dado
14.
nota1=Float.parseFloat(s);
15.
// ou Float.valueOf(s).floatValue();
16.
17.
18.
19.
System.out.println("Entre com a nota 2");
dado= new DataInputStream(System.in);
s=dado.readLine();
nota2=Float.valueOf(s).floatValue();
20.System.out.println("Entre com a nota do
Trabalho");
21.
dado= new DataInputStream(System.in);
22.
s=dado.readLine();
23.
trabalho=Float.valueOf(s).floatValue();
24.
25.
26.
27.
28.
29.
31.
media=(nota1+nota2+trabalho)/3;
System.out.println("Media : "+ media);
}
1
2
catch (IOException e)
{
System.out.println("Houve erro na entrada
de dados");
}
32.
4
catch (NumberFormatException e)
{
System.out.println("Houve erro na conversao,
digite apenas caracteres num‚ricos");
}
}
}
DataInputStream – Classe que possibilita a entrada de dados via teclado.
Caso ocorra algum erro, a execúção do programa desvia para a linha 27 e 32 que trata de erros de
entrada de dados e conversão de tipos de dados.
0011 0010 1010 1101 0001 0100 1011
1
2
4
Introdução - JAVA - Servlets
0011 0010 1010 1101 0001 0100 1011
• Módulos de programas em Java
• Recebem pedidos, executam o serviço e
geram respostas
• Residem no servidor
1
2
4
As sevlets são para os servidores o que as
0011 0010 1010 1101 0001 0100 1011
applets são para os browsers, o seja da
mesma maneira que a Applet necessita
1
2
de um browser para ser executada a
4
Servlets necessita do servidor JAVA,
instalado . No cliente e no servidor.
Comunicação existente entre
Servlets e Applets
0011 0010 1010 1101 0001 0100 1011
Servidor HTTP
Browser
Applets
1
Servlet
2
4
BD
Servlets Vantagens
0011 0010 1010 1101 0001 0100 1011
• Extensibilidade
– Java é orientada a objetos
– Servlets foram projetados para serem simples
– Arquitetura permite que os Servlets sejam
facilmente estendidos
1
2
4
Fase de serviço
0011 0010 1010 1101 0001 0100 1011
Web Browser
Entrada
Webserver
...
Saída
Web Browser
Servlet
...
Web Browser
Thread1
1
2
Thread2
4
Thread3
0011 0010 1010 1101 0001 0100 1011
1
2
4
0011 0010 1010 1101 0001 0100 1011
1
2
4
0011 0010 1010 1101 0001 0100 1011
• O TomCat é um software também
distribuido gratuitamente que permite
que softwares escritos em Servlet
sejam executados no servidor.
1
2
4
Programação
Orientada a Objetos
0011 0010 1010 1101 0001 0100 1011
1
2
4
Programação
0011 0010 1010 1101 0001 0100 1011
record Pessoa
nome : string;
dataNasc : integer;
end
1
2
procedure idade
begin
.....
4
nome dataNasc idade
abstração
João
29/1/74
=9&%2!1 formalização
UML
0011 0010 1010 1101 0001 0100 1011
 O que é UML?
1
2
 A UML é uma linguagem-padrão para
a elaboração de projetos de software.
Usada para visualizar, especificar,
construir e documentar sistemas
Orientados a Objeto.
4
UML
0011 0010 1010 1101 0001 0100 1011
 Onde pode ser utilizada?
1
2
 Sistemas Complexos de Software.
Exemplos: Sistemas Bancários, Serviços
Distribuídos Baseados na Web, etc.
 Também pode modelar sistemas que não
sejam softwares. Exemplos: Projeto de
Hardware, Fluxo de Trabalho no Sistema
Legal.
4
UML
0011 0010 1010 1101 0001 0100 1011
 Blocos de Construção
1
 Três Tipos de Blocos de Construção
 Itens
 Relacionamentos
 Diagramas
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Diagramas na UML
1
2
 São desenhados para permitir a
visualização de um sistema sob
diferentes perspectivas; nesse
sentido, um diagrama constitui uma
projeção de um determinado sistema.
 Existem 9 Diagramas
4
UML
0011 0010 1010 1101 0001 0100 1011
 Diagramas da UML









Diagramas de Classes
Diagramas de Objetos
Diagramas de Casos de Uso
Diagramas de Seqüências
Diagramas de Colaborações
Diagramas de Gráficos de Estados
Diagramas de Atividades
Diagramas de Componentes
Diagramas de Implantação
1
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Digramas de
Classes
 Exibe o conjunto de
classes, interfaces e
colaborações bem como
seus relacionamentos.
 Abrange uma visão
estática da estrutura do
sistema.
1
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Digramas de
Objetos
 Exibe o conjunto de
objetos e seus
relacionamentos.
 Representa retratos
estáticos de instâncias
de itens encontrados
em diagramas de
classes.
1
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Digramas de
Casos de Uso
 Exibe um conjunto de
casos de uso e atores
e seus
relacionamentos.
 Abrangem a visão
estática de casos de
uso do sistema.
1
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Digramas de
Interação
 Exibe uma interação,
consistindo de um
conjunto de objetos e
seus relacionamentos,
incluindo as
mensagens que
podem ser trocadas
entre eles.
 Abrangem a visão
dinâmica do sistema.
1
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Digramas de
Seqüências
 É um diagrama de
interação, cuja ênfase
está na ordenação
temporal das
mensagens.
1
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Digramas de
Colaboração
 É um diagrama de
interação, cuja ênfase
está na organização
estrutural dos objetos
que enviam e recebem
mensagens.
1
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Digramas de
Estados
 Exibem as Máquinas
de Estados, formada
por estados,
transições, eventos e
atividades
 Abrangem uma visão
dinâmica do sistema
1
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Digramas de
Atividades
 Tipo especial de
diagrama de gráfico
de estado, exibindo o
fluxo de uma
atividade para outra
no sistema diagramas
de atividades.
 É uma visão dinâmica
1
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Digramas de
Componente
 Exibe as organizações
e as dependências
existentes em um
conjunto de
componentes
diagramas e
componentes
 É a visão estática da
implementação do
sistema.
1
2
4
UML
0011 0010 1010 1101 0001 0100 1011
 Digramas de
Implantação
 Mostra as
configurações dos nós
de processamento em
tempo de execução e
os componentes neles
existentes.
 É a visão estática de
uma arquitetura
diagramas de
implantação.
1
2
4
Download