Sie sind auf Seite 1von 58

Processamento da Informao

Noes de Linguagens de Programao

Setembro 2009

Hardware Versus Software


Hardware est associado
parte fsica do sistema (os circuitos e dispositivos) que suporta o processamento da informao

Software corresponde ao conjunto

de programas responsveis pelo controle do sistema para a execuo das tarefas consideradas

Classificao Geral de Software Tipo de Servio Realizado


Tipos

de software: Software de sistema, ou sistema operacional Software aplicativo Editores de texto: Word, WordPerfect, etc Planilhas eletrnicas: Excel, Lotus 123, QuatroPro, etc Apresentao: PowerPoint, etc Desenho: CorelDraw, etc

Classificao Geral de Software Sistema Operacional (SO)


Um Sistema Operacional (SO) uma camada de software colocada entre o hardware e os programas aplicativos e o usurio. Sua funo principal controlar o funcionamento do computador, como um gerente dos diversos recursos disponveis no sistema

Editor de Texto Planilha Eletrnica

Jogos

Compiladores
Sistema Operacional

Hardware

Classificao Geral de Software Sistema Operacional (SO)

Funes Bsicas de um Sistema Operacional: Comunicao usurio x computador Gerenciamento do hardware Manuteno e gerenciamento dos sistemas de arquivos Exemplos de SOs: Windows Linux MS-DOS Unix Macintosh, Solaris, OS/2

Classificao Geral de Software Aplicativo

aplicativo: programas desenvolvidos ou adquiridos pelos usurios para algum fim especfico. Podem ser de natureza: profissional, educacional ou mesmo de lazer;

Software

Software Versus Programa


E como so construdos/desenvolvidos softwares?

Software corresponde ao conjunto de programas

responsveis pelo controle do sistema para a execuo das tarefas consideradas


No dia-a-dia os termos software e programa so usados como sinnimos

Definio de Programa
Programa uma seqncia de instrues (comandos) que, a partir de dados inseridos, obtm um resultado que ser disponibilizado por algum dispositivo de sada
Entrada de Dados

Processamento dos comandos de um programa

Sada de Dados

2+5

10

Linguagens de Programao Definio


Linguagens de programao so utilizadas para a construo de programas em computadores Linguagem de Programao pode ser definida como: conjunto limitado de smbolos e comandos, utilizados para criar programas, por meio dela se estabelece uma comunicao com o computador, fazendo com que ele compreenda e execute o que o programador determinar;

Linguagens de Programao Sintaxe e Semntica

Uma linguagem (natural ou de programao) formada por:

Sintaxe Semntica

Linguagens de Programao Sintaxe


Sintaxe determina regras de como se escreve de forma correta em uma linguagem (regras de escrita)
Os seguintes pases fazem parte do Mercosul: Brasil, Argentina, Paraguai, Uruguai e Venezuela

Frase sintaticamente correta Frase sintaticamente correta

O Brasil est localizado na Amrica Central

Linguagens de Programao Sintaxe


Os serguintes pases faz parte do Mercosul: Brasil, Argentina, Paraguai, Uruguai e Venezuela

Frase sintaticamente incorreta

Se voc escrever a palavra seguintes" com a letra "r" (serguintes), este um erro sinttico Se voc no conjugar o verbo com o sujeito em uma frase, ter um outro erro sinttico
Em linguagem natural a sintaxe conhecida como Gramtica

Linguagens de Programao Sintaxe


Considere o comando para a criao e declarao de uma varivel, em Java int idade;

idade

Considere o comando para a atribuio de valor uma varivel, em Java idade = 10;

idade 10

Estes comandos esto sintaticamente corretos, na linguagem de programao Java

Linguagens de Programao Sintaxe


Considere o comando para a criao e declarao de uma varivel, em Java Int idade; Erro: Int int idade Erro: Falta ;

Considere o comando para a atribuio de valor uma varivel, em Java idade := 10; Erro: := idade = 10 Erro: Falta ;

Estes comandos esto sintaticamente incorretos, na linguagem de programao Java

Linguagens de Programao Sintaxe

Durante o incio do aprendizado de uma linguagem de programao, natural demorar muito tempo procurando erros de sintaxe, Conforme o programador ganhar experincia, entretanto, cometer menos erros e os encontrar mais rapidamente;

Linguagens de Programao Semntica


Semntica estuda o significado das palavras ou frases Semanticamente corretas Considere as frases:

- O Sol uma estrela - Na Fsica Quntica h o conceito de superposio - Tem dia que de noite
assim mesmo - P daqui, p dali

- Aquela manga
azul - Vi uma pessoa no parque com binculo Depende...

Semanticamente incorretas

Linguagens de Programao Semntica

Considere os comandos, em Java


int

idade; idade = 10;

Comandos sinttica e semanticamente corretos

Considere os comandos, em Java


int

idade; idade = 10.7;

Comando de atribuio semanticamente incorreto

Linguagens de Programao Semntica


H erros de semntica raciocnio/lgica do programa,

relacionados

ao

Para este tipo de erro, o programa vai executar com sucesso, no sentido de que o computador no ir gerar quaisquer mensagens de erro, Mas ele no far a coisa certa. Far exatamente o que o programador mandar

Linguagens de Programao Classificao A proximidade que a linguagem de programao tem com a humana determina sua classe (o nvel): Linguagem de mquina (primeira gerao) Linguagem assembly - de montagem (segunda gerao) Linguagem de alto nvel (terceira gerao) Linguagem de muito alto nvel (quarta gerao)

Linguagens de Programao Linguagem de Mquina-1 Gerao


Linguagem de mquina o cdigo que o computador executa diretamente, composta de 0s e 1s, e neste caso conhecida como linguagem binria, A linguagem de mquina escrita de acordo com as caractersticas de um determinado processador, Por isto totalmente dependente do hardware, e do fabricante do processador;

Linguagem de Mquina/Representao

Linguagens de Programao

Instrues de linguagem de mquina so representadas por cdigos na forma de palavras binrias. Por exemplo: 0100010100011101010101000010010 101...

Como exemplo: 1011000000000001 significa colocar valor 1 no registro interno AL

Linguagens de Programao Linguagem de


Mquina/Representao

Execuo direta pela mquina, sem traduo

Linguagens de Programao Linguagem de


Mquina/Hexadecimal

Linguagem Hexadecimal: seqncia de bits pode ser representada por nmeros hexadecimais Notao em hexadecimal 1011000000000001b = B001h

Programao impraticvel para escrita e leitura (mesmo com hexadecimal)... O que fazer??

Linguagens de Programao Linguagem Assembly - 2 Gerao


A linguagem assembly (linguagem de montagem) permite que o programador utilize nomes (chamados mnemnicos) e smbolos em lugar dos nmeros, Utiliza palavras abreviadas (mnemnicos) indicando operaes

MOV

R1, R2

mnemnico MOV (abreviao de MOVE)

dois registradores como parmetros: R1 e R2 processador comanda o movimento do contedo de R2 para R1 equivalente instruo Java R1 = R2;

Linguagem Assembly (de Montagem) ADD R1, R2 mnemnico ADD (abreviao de ADDITION) dois registradores como parmetros: R1 e R2 processador comanda a adio do contedo de R1 ao contedo de R2 e o resultado armazenado em R1 equivalente instruo em Java R1=R1+R2;
Simplificaes

Linguagens de Programao

da linguagem assembly: escolhe nomes descritivos para as memria, usa mnemnicos para representar operao;

posies cdigos

de de

Linguagem Assembly (de Montagem)

Linguagens de Programao

A converso da linguagem assembly para a linguagem de mquina se chama montagem E feita por um programa chamado montador (ou assembler)

Linguagem de Montagem

Programa Montador (Assembler)

Linguagem de Mquina

(Assembly)

Linguagem Assembly (de Montagem)

Linguagens de Programao

A linguagem assembly tambm nica para cada tipo de CPU (processador), Utiliza instrues de baixo nvel que operam com registros e memrias diretamente, No pode ser reutilizada em famlias de processadores diferentes, Famlias geralmente mantm um certo nvel de interoperabilidade Famlia x86 processador Pentium suporta o assembly do 80486, que suporta o do 80386...;

Linguagem Assembly (de Montagem)


Linguagens de Programao

Aplicaes para a linguagem assembly: Controle de processos com resposta em tempo real devido possibilidade de gerar programas mais eficientes Comunicao/transferncia de dados: devido possibilidade de acessar diretamente o

hardware

Otimizao de sub-tarefas da programao de alto nvel um programa no precisa somente ser escrito em linguagem assembly ou linguagem de alto nvel

Linguagens de Programao Linguagens de Alto Nvel-(3 Gerao)


Linguagens de alto nvel apresentam uma sintaxe mais prxima da linguagem natural ,

Usam palavras reservadas extradas do vocabulrio corrente (int, public, if, ...)

class HelloWorld {

public static void main (String[] args) {


System.out.println (HelloWorld); } }

Linguagens de Programao Linguagens de Alto Nvel

Permitem a manipulao dos dados nas mais diversas formas: nmeros inteiros, reais, matrizes, etc... A linguagem assembly trabalha com bits e bytes, armazenados em memria;

Linguagens de Programao Linguagens de Alto Nvel


Algumas linguagens de programao, e o ano em que foram desenvolvidas:

Linguagens de Programao Linguagens de Alto Nvel


Os programas escritos nessas linguagens so convertidos para a linguagem de mquina atravs de um programa compilador, ou de um interpretador

Linguagem de Alto Nvel

Compilador ou interpretador

Linguagem de Mquina

Linguagens de Muito Alto Nvel-(4 Gerao)

Linguagens de Programao

As linguagens de quarta gerao tm uma estrutura mais prxima da linguagem humana do que as linguagens de programao de alto nvel Definem o que deve ser feito, e no como deve ser feito Como exemplo de linguagens de quarta gerao tem-se: linguagens de consulta a banco de dados, linguagens de prototipao (ferramentas case);

Linguagens de Programao Linguagens de Muito Alto Nvel


Linguagens de Consulta

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

Apresenta os dados dos campos nome e telefone da tabela Funcionario: select nome, telefone FROM Funcionario;

Linguagens de Programao Processamento de Linguagens


Computadores atuais so capazes de executar somente programas em uma linguagem de nvel baixo, a linguagem de mquina
Linguagem de Alto Nvel (Cdigo Fonte)
class HelloWorld {

Anlise sinttica e semntica

Linguagem de Mquina (Cdigo Executvel) Execuo

public static void main {

(String[]args)

System.out.println(HelloWorld); }

Linguagens de Programao Processamento de Linguagens


Como fazer esta traduo? Do cdigo fonte para o cdigo executvel?
Linguagem de Alto Nvel (Cdigo Fonte)
class HelloWorld
{ public static void main { (String[]args)

Anlise sinttica e semntica

Linguagem de Mquina (Cdigo Executvel) Execuo

System.out.println(HelloWorld); }

Linguagens de Programao Processamento de Linguagens

Compilao e interpretao so os processos pelos quais o cdigo fonte traduzido em cdigo de mquina H ainda a possibilidade de uma mescla das duas (em um sistema hbrido), como o caso da linguagem Java;

Linguagens de Programao Interpretao


Cdigo
Cdigo Fonte Anlise sinttica e semntica Executvel Zeros e uns...

Estas anlises so feitas em cada linha por vez


1. class HelloWorld{

Execuo linha 1 Execuo linha 2

2.

public static void main(String[] args) {

Linguagens de Programao Interpretao


1. class HelloWorld{
2. public static void main(String[] args) {

Execuo linha 1
Execuo linha 2

As aes indicadas pelos comandos da linguagem so diretamente executadas Existe, para executar cada ao possvel, um subprograma (escrito na linguagem de mquina do computador hospedeiro)

Linguagens de Programao Interpretao

Um interpretador um programa que executa repetidamente a seguinte seqncia: Obter o prximo comando do programa Determinar que aes devem ser executadas Executar estas aes

Linguagens de Programao Interpretao

Caractersticas do processo de interpretao: No gera um arquivo de cdigo executvel Toda a vez que for executar o programa, ter que ler o cdigo fonte necessrio ter o interpretador na mquina onde o cdigo fonte foi desenvolvido, bem como onde o cdigo fonte ser executado independente de plataforma

Linguagens de Programao Interpretao


Cdigo Fonte Anlise sinttica e semntica
Cdigo
Executvel Zeros e uns...

Estas anlises so feitas em todo o cdigo fonte, para depois gerar o cdigo executvel
class HelloWorld {

public static void main

(String[]args) {

System.out.println(HelloWorld); } }

Linguagens de Programao Interpretao


Cdigo Fonte Anlise sinttica e semntica
Cdigo
Executvel Zeros e uns...

Programas escritos em linguagem de alto nvel so compilados para verses equivalentes em linguagem de mquina, antes de serem executados

Linguagens de Programao Compilao

Caractersticas do processo de compilao: A primeira vez que for executar um programa ser relativamente demorado, pois ser necessrio compil-lo, Mas nas prximas execues, ser mais rpido Gera cdigo executvel, Como gera o executvel, no necessrio recompilar novamente para executar o programa;

Linguagens de Programao Compilao

Caractersticas do processo de compilao (cont): preciso ter um compilador na mquina onde se desenvolve o programa, mas no onde ele executado dependente de plataforma, pois o cdigo fonte gerado preparado para rodar em uma plataforma especfica (Windows, Linux, Apple, etc)

Linguagens de Programao Compilao versus Interpretao

A linguagem HTML(HyperText Markup Language) compilada ou interpretada?

Paradigmas de Programao Definio


Paradigmas de programao so estilos utilizados pelos programadores para conceber um programa Um paradigma determina a viso que o programador tem da execuo de um programa Os paradigmas mais conhecidos so: Paradigma estruturado, ou imperativo Paradigma funcional Paradigma declarativo, ou lgico Paradigma orientado a objetos

Paradigmas de Programao Paradigma Estruturado, Imperativo


No paradigma estruturado o programador procura imitar as aes dos computadores em nvel de linguagem de mquina Baseado no tradicional ciclo de mquina

(3) Executa a ao inicialmente solicitada (2) Decodifica a instruo

(1) Busca prxima instruo

Paradigmas de Programao Paradigma Estruturado, Imperativo


O programador descreve a resoluo de um problema atravs de uma srie de tarefas elementares (comandos) que o computador pode compreender e executar
leia (num1) leia (num2)

se (num1 > num2)


ento imprima (num1)

seno
imprima (num2 igual ou maior a num1)

Paradigmas de Programao Paradigma Estruturado, Imperativo


Ao final, a seqncia de comandos define a resoluo do problema, A programao dada por uma seqncia de comandos que manipula um volume de dados;

leia (num1)
leia (num2) se (num1 > num2) ento imprima (num1) seno imprima (num2 igual ou maior a num1)

Paradigmas de Programao Paradigma Estruturado, Imperativo


Exemplos de linguagens que suportam o paradigma imperativo:

Fortran C Basic Cobol Pascal

Paradigmas de Programao Paradigma Funcional

No paradigma Funcional qualquer computao formulada em termos de funes, que transformam um estado computacional em outro
n1 + n2 (+ n1 n2)

O paradigma funcional geralmente utilizado na rea de Inteligncia Artificial (IA)

Paradigmas de Programao Paradigma Funcional

Exemplos de linguagens que suportam o paradigma funcional: LISP Haskell Miranda ML Meta Language

Paradigmas de Programao Paradigma Declarativo, ou Lgico


No paradigma declarativo so declarados os resultados desejados, e no 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 derivao de outros fatos, para fazer perguntas ao computador

Paradigmas de Programao Paradigma Declarativo, ou Lgico

Exemplos de linguagens que suportam o paradigma declarativo (linguagens lgicas): Prolog GPSS

Paradigmas de Programao Linguagens Respectivas


Linguagem de Mquina FORTRAN COBOL ALGOL APL BASIC PASCAL C ADA IMPERATIVAS

LISP

ML

Scheme

FUNCIONAIS

GPSS

Prolog

DECLARATIVAS OU LGICAS

SIMULA Smaltalk

C++

Ada 95 ORIENTADAS Java A OBJETOS

Paradigmas de Programao Orientao a Objetos


O programa organizado em funo de objetos, Objeto uma entidade independente com uma identidade e certas caractersticas prprias, Um objeto contm no s as estruturas de dados, mas tambm as funes que sobre eles agem;
nome

nome

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

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

Paradigmas de Programao Orientao a Objetos


A comunicao entre objetos feita atravs de troca de mensagens Ola Joo!! Como voc
nome=Ita

est?

idade=39
lingua=Tupi/Port.
andar() respirar() alimentar() falar()

Nome=Joao

idade=37 lingua=Port.
andar() respirar() alimentar() falar()

Das könnte Ihnen auch gefallen