• Nenhum resultado encontrado

aula1-NoçõesdeLinguagem280909

N/A
N/A
Protected

Academic year: 2021

Share "aula1-NoçõesdeLinguagem280909"

Copied!
58
0
0

Texto

(1)

Processamento da Informação

Processamento da Informação

Noções de Linguagens Noções de Linguagens de Programação de Programação Setembro 2009

(2)

Hardware Versus Software

Hardware Versus Software

Hardware está associado à parte física do sistema (os circuitos e dispositivos) que suporta o processamento da informação

Software corresponde ao conjunto

de programas responsáveis pelo controle do sistema para a

execução das tarefas

(3)

Classificação Geral de

Classificação Geral de

Software

Software

Tipo de Serviço Realizado

Tipo de Serviço Realizado

•Tipos de software:

Software de sistema, ou sistema operacionalSoftware aplicativo

•Editores de texto: Word, WordPerfect, etc

•Planilhas eletrônicas: Excel, Lotus 123,

QuatroPro, etc

•Apresentação: PowerPoint, etc •Desenho: CorelDraw, etc

(4)

Classificação Geral de

Classificação Geral de

Software

Software

Sistema Operacional (SO)

Sistema Operacional (SO)

Um Sistema

Operacional (SO) é uma camada de software

colocada entre o

hardware e os

programas aplicativos e o usuário. Sua função principal é controlar o funcionamento do

computador, como um gerente dos diversos

recursos disponíveis no sistema

Sistema Operacional

Hardware

Editor de Texto

Planilha Eletrônica Jogos Compiladores

(5)

Classificação Geral de

Classificação Geral de

Software

Software

Sistema Operacional (SO)

Sistema Operacional (SO)

• Funções Básicas de um Sistema Operacional:

• Comunicação usuário x computador • Gerenciamento do hardware

• Manutenção e gerenciamento dos sistemas de

arquivos • Exemplos de SOs: • Windows • Linux • MS-DOS • Unix

(6)

Classificação Geral de

Classificação Geral de

Software

Software

Aplicativo

Aplicativo

Software

aplicativo: programas

desenvolvidos ou adquiridos pelos

usuários para algum fim específico.

Podem ser de natureza:

profissional,

educacional ou

mesmo de lazer;

(7)

Software

Software

Versus

Versus

Programa

Programa

E como são construídos/desenvolvidos

softwares?

Software corresponde ao conjunto de programas responsáveis pelo controle do sistema para a execução das tarefas consideradas

No dia-a-dia os termos software e

programa são usados como

(8)

Definição de Programa

Definição de Programa

Programa é uma seqüência de instruções (comandos) que, a partir de dados inseridos,

obtêm um resultado que será disponibilizado por

algum dispositivo de saída

Entrada de Dados Processamento dos comandos de um programa Saída de Dados 2+5 10

(9)

Linguagens de Programação

Linguagens de Programação

Definição

Definição

• Linguagem de Programação pode ser definida

como:

• conjunto limitado de símbolos e comandos,

utilizados para criar programas,

• por meio dela se estabelece uma

comunicação com o computador, fazendo com que ele compreenda e execute o que o programador determinar;

Linguagens de programação são utilizadas para a construção de

(10)

Linguagens de Programação

Linguagens de Programação

Sintaxe e Semântica

Sintaxe e Semântica

Uma linguagem (natural ou de

programação) é formada por:

Sintaxe

(11)

Linguagens de Programação

Linguagens de Programação

Sintaxe

Sintaxe

Sintaxe determina regras de como se escreve de forma correta em uma linguagem (regras de escrita)

Os seguintes países fazem parte do Mercosul: Brasil, Argentina, Paraguai, Uruguai e Venezuela

Frase

sintaticamente

correta

O Brasil está localizado na América Central

Frase

sintaticamente

(12)

Linguagens de Programação

Linguagens de Programação

Sintaxe

Sintaxe

Os serguintes países faz parte do Mercosul: Brasil, Argentina, Paraguai, Uruguai e Venezuela

 Se você escrever a palavra “seguintes" com a letra

"r" (serguintes), este é um erro sintático

 Se você não conjugar o verbo com o sujeito em

uma frase, terá um outro erro sintático

Frase

sintaticamente

incorreta

Em linguagem natural a sintaxe é conhecida como Gramática

(13)

Linguagens de Programação

Linguagens de Programação

Sintaxe

Sintaxe

• Considere o comando para a criação e

declaração de uma variável, em Java int idade;

idade

• Considere o comando para a atribuição

de valor à uma variável, em Java

idade = 10;

10 idade

Estes comandos estão

sintaticamente corretos, na linguagem de programação Java

(14)

Linguagens de Programação

Linguagens de Programação

Sintaxe

Sintaxe

 Considere o comando para a criação e declaração

de uma variável, em Java

Int idade; Erro: Int

int idade Erro: Falta ;

• Considere o comando para a atribuição de valor à

uma variável, em Java

idade := 10; Erro: :=

idade = 10 Erro: Falta ;

Estes comandos estão sintaticamente

incorretos, na linguagem de programação

(15)

Linguagens de Programação

Linguagens de Programação

Sintaxe

Sintaxe

Durante o início do aprendizado de

uma linguagem de programação, é

natural

demorar

muito

tempo

procurando erros de sintaxe,

Conforme o programador ganhar

experiência,

entretanto,

cometerá

menos erros e os encontrará mais

rapidamente;

(16)

Linguagens de Programação

Linguagens de Programação

Semântica

Semântica

 Semântica estuda o significado das palavras ou

frases

 Considere as frases:

- Tem dia que de noite é assim mesmo

- Pá daqui, pá dali

- O Sol é uma estrela

- Na Física Quântica há o conceito de superposição - Aquela manga é azul - Vi uma pessoa no parque com binóculo Semanticamente corretas Depende... Semanticamente incorretas

(17)

Linguagens de Programação

Linguagens de Programação

Semântica

Semântica

• Considere os comandos, em Java

int idade;idade = 10;

Comandos sintática e semanticamente

corretos

• Considere os comandos, em Java

int idade;

idade = 10.7;

Comando de atribuição semanticamente

(18)

Linguagens de Programação

Linguagens de Programação

Semântica

Semântica

• Há erros de semântica relacionados ao

raciocínio/lógica do programa,

• Para este tipo de erro, o programa vai executar

com sucesso, no sentido de que o computador não irá gerar quaisquer mensagens de erro,

• Mas ele não fará a coisa certa. Fará exatamente o

(19)

Linguagens de Programação

Linguagens de Programação

Classificação

Classificação

A proximidade que a linguagem de

programação tem com a humana determina

sua classe (o nível):

Linguagem de máquina (primeira geração)

Linguagem

assembly

- de montagem

(segunda geração)

Linguagem de alto nível (terceira geração)

Linguagem de muito alto nível (quarta

(20)

Linguagens de Programação Linguagem

Linguagens de Programação Linguagem

de Máquina-1ª Geração

de Máquina-1ª Geração

• Linguagem de máquina é o código que o

computador executa diretamente,

• É composta de 0´s e 1´s, e neste caso é

conhecida como linguagem binária,

• A linguagem de máquina é escrita de acordo com

as características de um determinado processador,

• Por isto é totalmente dependente do hardware, e

(21)

Linguagens de Programação

Linguagens de Programação

Linguagem de Máquina/Representação

Linguagem de Máquina/Representação

Instruções de linguagem de máquina são

representadas por códigos na forma de

palavras binárias. Por exemplo:

01000101000111010101010000100101

01...

Como exemplo:

1011000000000001 significa colocar

(22)

Linguagens de Programação

Linguagens de Programação

Linguagem de Linguagem de Máquina/Representação

Máquina/Representação

Execução direta pela máquina, sem

(23)

Linguagens de Programação

Linguagens de Programação

Linguagem de Linguagem de Máquina/Hexadecimal

Máquina/Hexadecimal

Linguagem Hexadecimal: seqüência de bits

pode ser representada por números

hexadecimais

Notação em hexadecimal

1011000000000001

b

= B001

h

Programação impraticável para escrita e leitura (mesmo com hexadecimal)...

(24)

Linguagens de Programação

Linguagens de Programação

Linguagem Assembly - 2ª Geração

Linguagem Assembly - 2ª Geração

A linguagem assembly (linguagem de montagem)

permite que o programador utilize nomes (chamados mnemônicos) e símbolos em lugar dos números,

• Utiliza palavras abreviadas (mnemônicos) indicando

operações

MOV R1, R2

mnemônico MOV (abreviação de MOVE)

• dois registradores como parâmetros: R1 e R2

• processador comanda o movimento do conteúdo de R2

para R1

(25)

Linguagens de Programação

Linguagens de Programação

Linguagem Assembly (de Montagem)

Linguagem Assembly (de Montagem) ADD R1, R2

• mnemônico ADD (abreviação de ADDITION) • dois registradores como parâmetros: R1 e R2

• processador comanda a adição do conteúdo de R1 ao

conteúdo de R2 e o resultado é armazenado em R1

equivalente à instrução em Java R1=R1+R2; •Simplificações da linguagem assembly:

• escolhe nomes descritivos para as posições de

memória,

• usa mnemônicos para representar códigos de

(26)

Linguagens de Programação

Linguagens de Programação

Linguagem Assembly (de Montagem)

Linguagem Assembly (de Montagem)

• A conversão da linguagem assembly para a

linguagem de máquina se chama montagem

• E é feita por um programa chamado montador

(ou assembler) Linguagem de Montagem (Assembly) Linguagem de Máquina Programa Montador (Assembler)

(27)

Linguagens de Programação

Linguagens de Programação

Linguagem Assembly (de Montagem)

Linguagem Assembly (de Montagem)

• A linguagem assembly é também única para

cada tipo de CPU (processador),

• Utiliza instruções de baixo nível que operam com

registros e memórias diretamente,

• Não pode ser reutilizada em famílias de

processadores diferentes,

• Famílias geralmente mantém um certo nível de

interoperabilidade

•Família x86 processador Pentium suporta o

assembly do 80486, que suporta o do 80386...;

(28)

Linguagens de Programação

Linguagens de Programação

Linguagem Assembly (de Montagem)

Linguagem Assembly (de Montagem)

• Aplicações para a linguagem assembly:

• Controle de processos com resposta em tempo real • devido à possibilidade de gerar programas mais

eficientes

• Comunicação/transferência de dados:

• devido à possibilidade de acessar diretamente o

hardware

• Otimização de sub-tarefas da programação de alto

nível

• um programa não precisa somente ser escrito em

(29)

Linguagens de Programação

Linguagens de Programação

Linguagens de Alto

Nível-Linguagens de Alto Nível-

(3ª Geração)(3ª Geração) • Linguagens de alto nível apresentam uma

sintaxe mais próxima da linguagem natural ,

• Usam palavras reservadas extraídas do vocabulário

corrente (int, public, if, ...) class HelloWorld

{

public static void main (String[] args) { System.out.println (“HelloWorld”);

} }

(30)

Linguagens de Programação

Linguagens de Programação

Linguagens de Alto Nível

Linguagens de Alto Nível

Permitem a manipulação dos dados nas

mais diversas formas:

números inteiros,

reais,

matrizes, etc...

A linguagem assembly trabalha com bits

(31)

Linguagens de Programação

Linguagens de Programação

Linguagens de Alto Nível

Linguagens de Alto Nível

• Algumas linguagens de programação, e o ano em

(32)

Linguagens de Programação

Linguagens de Programação

Linguagens de Alto Nível

Linguagens de Alto Nível

• Os programas escritos nessas linguagens são

convertidos para a linguagem de máquina através de um programa compilador, ou de um interpretador Linguagem de Alto Nível Linguagem de Máquina Compilador ou interpretador

(33)

Linguagens de Programação

Linguagens de Programação

Linguagens de Muito Alto Nível-(4ª Geração)

Linguagens de Muito Alto Nível-(4ª Geração)

• As linguagens de quarta geração têm uma

estrutura mais próxima da linguagem humana do que as linguagens de programação de alto nível

• Definem “o que” deve ser feito, e não “como”

deve ser feito

• Como exemplo de linguagens de quarta geração

tem-se:

• linguagens de consulta a banco de dados,

• linguagens de prototipação (ferramentas

(34)

Linguagens de Programação

Linguagens de Programação

Linguagens de Muito Alto Nível

Linguagens de Muito Alto Nível

As linguagens de consulta foram desenvolvidas para manipular bases de dados. Exemplo: linguagem SQL

Linguagens de Consulta

Apresenta os dados dos campos nome e telefone da tabela Funcionario:

(35)

Linguagens de Programação

Linguagens de Programação

Processamento de Linguagens

Processamento de Linguagens

Computadores atuais são capazes de executar somente programas em uma linguagem de nível baixo, a linguagem de máquina

Linguagem de Alto Nível (Código Fonte) Análise sintática e semântica Linguagem de Máquina (Código Executável) Execução class HelloWorld {

public static void main (String[]args) { System.out.println(“HelloWorld”);

} }

(36)

Linguagens de Programação

Linguagens de Programação

Processamento de Linguagens

Processamento de Linguagens

Como fazer esta tradução? Do código fonte para o código executável?

Linguagem de Alto Nível (Código Fonte)

class HelloWorld {

public static void main (String[]args) { System.out.println(“HelloWorld”); } } Análise sintática e semântica Linguagem de Máquina (Código Executável) Execução

(37)

Linguagens de Programação

Linguagens de Programação

Processamento de Linguagens

Processamento de Linguagens

Há ainda a possibilidade de uma

mescla das duas (em um sistema

híbrido), como é o caso da

linguagem Java;

Compilação e interpretação são

os processos pelos quais o código

fonte é traduzido em código de

(38)

Linguagens de Programação

Linguagens de Programação

Interpretação

Interpretação

Código Fonte Análise sintática e semântica

Código Executável Zeros e uns...

Estas análises são feitas em cada linha por vez

1. class HelloWorld{ Execução linha 1

2. public static void

(39)

Linguagens de Programação

Linguagens de Programação

Interpretação

Interpretação

1. class HelloWorld{ Execução linha 1 2. public static void

main(String[] args) { Execução linha 2

• As ações indicadas pelos comandos da linguagem

são diretamente executadas

• Existe, para executar cada ação possível, um

subprograma (escrito na linguagem de máquina do computador hospedeiro)

(40)

Um interpretador é um programa que

executa

repetidamente

a

seguinte

seqüência:

Obter o próximo comando do programa

Determinar que ações devem ser

executadas

Executar estas ações

Linguagens de Programação

Linguagens de Programação

Interpretação

(41)

• Características do processo de interpretação: • Não gera um arquivo de código executável

• Toda a vez que for executar o programa, terá

que ler o código fonte

• É necessário ter o interpretador na máquina

onde o código fonte foi desenvolvido, bem como onde o código fonte será executado

É independente de plataforma

Linguagens de Programação

Linguagens de Programação

Interpretação

(42)

Estas análises são feitas em todo o código fonte, para depois gerar o código executável

class HelloWorld {

public static void main (String[]args) { System.out.println(“HelloWorld”); } }

Linguagens de Programação

Linguagens de Programação

Interpretação

Interpretação

(43)

Código Fonte Análise sintática e semântica

Código Executável Zeros e uns...

Programas escritos em linguagem de alto nível são compilados para versões equivalentes em linguagem de máquina, antes de serem executados

Linguagens de Programação

Linguagens de Programação

Interpretação

(44)

Linguagens de Programação

Linguagens de Programação

Compilação

Compilação

Características do processo de compilação:

A primeira vez que for executar um

programa será relativamente demorado,

pois será necessário compilá-lo,

Mas nas próximas execuções, será mais

rápido

Gera código executável,

Como gera o executável, não é

necessário recompilar novamente para

executar o programa;

(45)

Linguagens de Programação

Linguagens de Programação

Compilação

Compilação

Características do processo de compilação

(cont):

É preciso ter um compilador na máquina

onde se desenvolve o programa, mas

não onde ele é executado

É dependente de plataforma, pois o

código fonte gerado é preparado para

rodar em uma plataforma específica

(Windows, Linux, Apple, etc)

(46)

A linguagem HTML(HyperText Markup

Language)

é compilada ou interpretada?

Linguagens de Programação

Linguagens de Programação

Compilação

(47)

Paradigmas de Programação

Paradigmas de Programação

Definição

Definição

Paradigmas de programação são estilos

utilizados pelos programadores para conceber um programa

• Um paradigma determina a visão que o

programador tem da execução de um programa

• Os paradigmas mais conhecidos são:

• Paradigma estruturado, ou imperativo • Paradigma funcional

• Paradigma declarativo, ou lógico • Paradigma orientado a objetos

(48)

Paradigmas de Programação

Paradigmas de Programação

Paradigma Estruturado, Imperativo

Paradigma Estruturado, Imperativo

No paradigma estruturado o programador

procura imitar as ações dos computadores em nível de linguagem de máquina

• Baseado no tradicional ciclo de máquina

(1) Busca próxima instrução (2) Decodifica a instrução (3) Executa a ação inicialmente solicitada

(49)

Paradigmas de Programação

Paradigmas de Programação

Paradigma Estruturado, Imperativo

Paradigma Estruturado, Imperativo

O programador descreve a resolução de um problema através de uma série de tarefas elementares (comandos) que o computador pode compreender e executar leia (num1) leia (num2) se (num1 > num2) então imprima (num1) senão

(50)

Paradigmas de Programação

Paradigmas de Programação

Paradigma Estruturado, Imperativo

Paradigma Estruturado, Imperativo

• Ao final, a seqüência de comandos define a

resolução do problema,

• A programação é dada por uma seqüência de

comandos que manipula um volume de dados;

leia (num1) leia (num2) se (num1 > num2) então imprima (num1) senão

(51)

Paradigmas de Programação

Paradigmas de Programação

Paradigma Estruturado, Imperativo

Paradigma Estruturado, Imperativo

Exemplos de linguagens que suportam o paradigma imperativo: •

Fortran

C

Basic

Cobol

Pascal

(52)

Paradigmas de Programação

Paradigmas de Programação

Paradigma Funcional

Paradigma Funcional

No paradigma Funcional qualquer computação é

formulada em termos de funções, que transformam um estado computacional em outro

n1 + n2 (+ n1 n2)

O paradigma funcional é geralmente utilizado

(53)

Paradigmas de Programação

Paradigmas de Programação

Paradigma Funcional

Paradigma Funcional

Exemplos de linguagens que suportam o

paradigma funcional:

LISP

Haskell

Miranda

(54)

Paradigmas de Programação

Paradigmas de Programação

Paradigma Declarativo, ou Lógico

Paradigma Declarativo, ou Lógico

No paradigma declarativo são declarados os

resultados desejados, e não os procedimentos para se chegar ao resultado,

• A partir disto o sistema deve encontrar o caminho

para chegar até o resultado esperado,

• Programar é fornecer dados da seguinte

natureza:

• axiomas (fatos incondicionais)

• regras para derivação de outros fatos, para

(55)

Paradigmas de Programação

Paradigmas de Programação

Paradigma Declarativo, ou Lógico

Paradigma Declarativo, ou Lógico

Exemplos de linguagens que suportam

o paradigma declarativo (linguagens

lógicas):

Prolog

(56)

Paradigmas de Programação

Paradigmas de Programação

Linguagens Respectivas

Linguagens Respectivas

LISP ML Scheme FUNCIONAIS

Linguagem FORTRAN BASIC C ADA de Máquina COBOL ALGOL APL PASCAL

IMPERATIVAS GPSS Prolog DECLARATIVAS OU LÓGICAS SIMULA C++ Ada 95 Smaltalk Java ORIENTADAS A OBJETOS

(57)

Paradigmas de Programação

Paradigmas de Programação

Orientação a Objetos

Orientação a Objetos

O programa é organizado em função de objetos,

Objeto é uma entidade independente com uma

identidade e certas características próprias,

• Um objeto contém não só as estruturas de dados,

mas também as funções que sobre eles agem;

nome idade lingua andar() respirar() alimentar() falar() nome idade lingua andar() respirar() alimentar() falar()

(58)

Paradigmas de Programação

Paradigmas de Programação

Orientação a Objetos

Orientação a Objetos

A comunicação entre objetos é feita através de

troca de mensagens nome=Ita idade=39 lingua=Tupi/Port. andar() respirar() alimentar() falar() Nome=Joao idade=37 lingua=Port. andar() respirar() alimentar() falar()

Ola João!! Como você está?

Referências

Documentos relacionados

Posteriormente, o mesmo autor, Viveiros de Castro, pro- pôs o termo perspectiva, para estabelecer que, muito resumidamente, tudo depende da posição singular de onde o

Para isso, foram avaliados os usos das previsões de precipitação do modelo de circulação geral atmosférico (AGCM), do modelo regional estatístico para o Rio

Na hipótese de os preços registrados tornarem-se superiores aos valores praticados no mercado, caberá ao TRT da 4ª Região convocar o(s) detentor(es) do(s)

Em seguida, ainda fazendo uso da palavra e condicionada à celebração do Aditamento a ser oportunamente aprovado pela Assembléia Geral de Debenturistas, o Diretor

destinadas aos motores das posições 84.07 ou 84.08 Resolução SF nº 31/2008 ,aprovou a relação de produtos da indústria de processamento eletrônico de dados a que se refere

Introduction: We assessed the effects of therapeutic ultrasound (TUS), either added to cast immobilization (CI) as a treatment alternative to muscular injuries

Também foi realizada uma pesquisa de campo na Escola Municipal de Ensino Fundamental Luiz Vaz de Camões, no município de João Pessoa, no Bairro de Mangabeira, utilizando

Você está sendo convidado(a) como voluntário(a) a participar da pesquisa (Avaliação do uso de drogas em adolescentes atendidos em UBSs e a percepção de uso de