• Nenhum resultado encontrado

II7 - Linguagens de Programação

N/A
N/A
Protected

Academic year: 2021

Share "II7 - Linguagens de Programação"

Copied!
30
0
0

Texto

(1)
(2)
(3)
(4)

Algoritmos

 Para que o algoritmo possa ser executado por uma máquina

é importante que as instruções sejam corretas e sem ambigüidades

 Além disso precisamos passar o algoritmo (conjunto de

instruções) para uma “língua” que o computador entenda.

 Estas instruções são escritas através de um conjunto de

códigos (símbolos e palavras). Este conjunto de códigos possui regras de estruturação lógica e sintática própria. Dizemos que este conjunto de símbolos e regras formam uma linguagem de programação.

(5)

Linguagens de Programação

Um programa de computador é um conjunto de

instruções que representam um algoritmo traduzidos

para uma linguagem que o computador entende.

Entretanto o computador só

entende a linguagem de

máquina.

(6)

Linguagem de Máquina

 É a linguagem de mais baixo nível de entendimento

pelo ser humano e a única, na verdade, entendida pelo processador .

 É constituída inteiramente de números, o que torna

praticamente impossível entendê-la diretamente.

 Uma instrução típica em linguagem de máquina seria

algo como: 0100 1111 1010 0110 .

 Essa linguagem é também classificada como

(7)

Linguagem Assembly

 É a linguagem de nível imediatamente acima da linguagem

de máquina.

 Ela possui a mesma estrutura e conjunto de instruções que

a linguagem de máquina, porém permite que o

programador utilize nomes (chamados mnemônicos) e símbolos em lugar dos números.

 Hoje, a linguagem assembly, é utilizada quando a

velocidade de execução ou o tamanho do programa executável gerado são essenciais.

(8)

Linguagem Assembly

A conversão da linguagem assembly para a

linguagem de máquina se chama montagem, e é

feita por um programa chamado montador (ou

assembler).

Essa linguagem é também classificada como

linguagem de segunda geração, e, assim como a

linguagem de máquina, é considerada uma

linguagem de baixo nível.

(9)

Linguagens de Alto Nível

 São as linguagens de programação que possuem uma

estrutura e palavras-chave que são mais próximas da

linguagem humana, tornando os programas mais fáceis de serem lidos e escritos.

 Esta é a sua principal vantagem sobre as linguagens de nível mais baixo.

 Os programas escritos nessas linguagens são convertidos

para a linguagem assembly e depois passam pelo montador ou são convertidos diretamente para a linguagem de

máquina através de um programa compilador e/ou de um interpretador.

(10)

Linguagens de Alto Nível

Compilador:

 É um programa que traduz todo o programa escrito em linguagem de alto nível para linguagem de

máquina gerando assim o código executável. Após essa geração o código pode ser executado.

 Pode traduzir também para a linguagem assembly e

depois passar por um processo de montagem e “linkagem”

Exemplos de linguagens compiladas:

(11)

Compilador

Tradução Arquivo.exe ... a = b+1; if(a > c){ d = a+c; }else{ d = a-c; } b = b+2; ... Código Fonte: Compilador Executável

Uma vez que o código foi traduzido, este pode ser executado quantas vezes for necessário.

(12)

Linguagens de Alto Nível

Vantagens do compilador:

 Erros na sintaxe da linguagem são identificados previamente e não durante a execução.

 O código executável pode ser executado infinitas

vezes sem que haja uma nova compilação (tradução para linguagem de máquina)

(13)

Linguagens de Alto Nível

Interpretador:

 É um programa que reside na máquina que

executará o código feito na linguagem alto nível.  A cada instrução do algoritmo o interpretador

converte o código em linguagem alto nível para linguagem de máquina e executa esse código de máquina.

Exemplos de linguagens Interpretadas:

(14)

Interpretador

... a = b+1; if(a > c){ d = a+c; }else{ d = a-c; } b = d+2; ...

Código Fonte: Interpretador

Executa Traduz a = b+1; if(a > c)d = a+c;b = d+2; a = 0 b = 2 c = 1 d = 0 a = 3 b = 2 c = 1 d = 0 a = 3 b = 2 c = 1 d = 0 a = 3 b = 2 c = 1 d = 4 a = 3 b = 6 c = 1 d = 4 a = 3 verdadeirod = 4b = 6 a = 3 b = 2 c = 1 d = 4

(15)

Linguagens de Alto Nível

Vantagens do interpretador:

 Geralmente mais flexíveis, já que podem interagir com o ambiente mais facilmente

(16)

Linguagens de Alto Nível

Compilador e Interpretador:

 O código em alto nível é compilado gerando um código intermediário.

 O código intermediário passa por um interpretador para ser executado

 A máquina que executará o código necessita ter o interpretador.

Exemplos de linguagens compiladas e

interpretadas:

(17)

Hibrido: Compilador e

Interpretador

... a = b+1; if(a > c){ d = a+c; }else{ d = a-c; } ...

Código Fonte: Interpretador

Executa Traduz para linguagem de máquina Compilador Traduz para código interme-diário

(18)

Linguagens de Alto Nível

Vantagens das linguagens compiladas e

interpretadas:

 Mais flexíveis, já que podem interagir com o ambiente mais facilmente

 Erros na sintaxe são identificados previamente e não durante a execução.

(19)

Pseudo-código

 O pseudo-código é uma forma genérica de escrever um

algoritmo, utilizando uma linguagem simples e nativa a quem escreve.

 É bastante utilizado quando queremos indicar os principais

passos de um algoritmo sem especificar uma linguagem de computador.

 O pseudo-código é bastante utilizado em livros, artigos

científicos e revistas.

 Não há um padrão único para pseudo-código. Mas normalmente

utiliza-se indicadores dos comandos básicos de algoritmos (leitura, escrita, atribuição, condicionais, loops)

(20)
(21)

Paradigmas de Programação

Um paradigma de programação fornece e

determina a visão que o programador possui sobre a

estruturação e execução do programa.

Ao principais paradigmas são:

 Paradigma Imperativo (ou Procedural)  Paradigma Declarativo

 Paradigma Funcional

(22)

Paradigma Imperativo

Segundo o paradigma procedural, programar o

computador significa "dar-lhe ordens" que são

executadas seqüencialmente.

Nesse paradigma, a solução de um problema para

ser resolvido pelo computador envolve escrever

uma série de ações (procedimentos) que, se

(23)

Paradigma Imperativo

Também conhecido como Paradigma Procedural

“Primeiro faça isso e depois faça aquilo.”

Os comandos e os procedimentos são executados

seqüencialmente.

Fortran, Algol, Basic, C e Pascal são algumas das

linguagens de programação que seguem esse

paradigma.

(24)

Paradigma Declarativo

 Segundo o paradigma declarativo, o significado de um

"programa" não é mais dado por uma sucessão de

operações elementares que o computador supostamente realiza, mas por uma base de conhecimento a respeito de certo domínio e por perguntas feitas a essa base de

conhecimento, independentemente.

 Dessa maneira, o paradigma declarativo pode ser visto

como um formalismo para representar conhecimento a respeito do problema que se quer resolver, de forma

(25)

Paradigma Declarativo

Código: pai(Arthur,Silvio). pai(Arthur,Carlos). pai(Carlos,Lucio). pai(Silvio,Ricardo).

avo(X,Z) :- pai(X,Y), pai(Y,Z).

?- avo(Arthur,Lucio),avo(Arthur,Ricardo). Retornará a saída: "YES"

Ou seja, “Arthur" é avô de “Lucio" e “Ricardo", pois “Arthur" é pai de “Silvio" e “Carlos", que por sua vez são pais de

(26)

Paradigma Declarativo

Também conhecido como Programação em Lógica

O paradigma declarativo caracteriza-se pelo

método preciso de descrever um problema, sem se

preocupar com qual algoritmo será utilizado para

resolvê-lo.

É baseado em axiomas (verdades universais) e

regras de inferência.

Prolog é uma linguagem lógica que ilustra essa

(27)

Paradigma Funcional

 No paradigma funcional, programar o computador significa

definir funções, aplicar funções e conhecer o comportamento de funções na máquina.

 Os mecanismos de controle, no programa, passam de iterativos a

recursivos.

 O Haskell é uma das linguagem que utiliza esse paradigma  Exemplo de código:

fatorial n = if n > 1 then n * fatorial (n-1) else 1 ou

(28)

Paradigma Orientado a Objetos

A idéia básica do paradigma orientado a objetos é

imaginar que programas simulam o mundo real:

um mundo povoado de objetos.

Linguagens baseadas nos conceitos de simulação

do mundo real devem incluir um modelo de

objetos que possam enviar e receber mensagens e

reagir a mensagens recebidas.

(29)

Paradigma Orientado a Objetos

Na programação orientada a objetos,

implementa-se um conjunto de clasimplementa-ses que definem os objetos

presentes no sistema. Cada classe determina o

comportamento (definido nos métodos) e estados

possíveis (atributos) de seus objetos, assim como o

relacionamento com outros objetos.

Java, C++, C# são alguns exemplos de linguagem

(30)

História das Linguagens

Links Interessantes:

 http://pt.wikipedia.org/wiki/Hist%C3%B3ria_das_Ling uagens_de_Programa%C3%A7%C3%A3o  http://www.di.ufpe.br/~phmb/proglang/aulas/aula1/his torico.html  https://www.tiobe.com/tiobe-index/

Referências

Documentos relacionados

[r]

A partir da implementação do Programa de Apoio a Planos de Reestruturação e Expansão das Universidades Federais, a universidade brasileira abre-se para o acesso de novos e

Isto completa o pensamento de Cassirer quando nos diz que “as formas simbólicas são os fundamentos progressivos do aparecimento da consciência.” O símbolo possui uma

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

FichaInscrição.PDF – ficha de inscrição devidamente preenchida e assinada pelo autor ou por todos os coautores, em caso de trabalho

Em terceiro lugar, alguns caminhos potencialmente efetivos de intervenção ainda não receberam a devida atenção; são necessárias mais pesquisas sobre essas abordagens e mais

Além de conferir os centros culturais e a Praça Mauá, visitantes vão ganhar 3,5 quilômetros da nova Orla Conde, passeio público que começa no Armazém 8 do Cais do Porto, na

Os campos medios do vento nos altos niveis para os meses posteriores (FMAM) mostraram a presenca de um VCAN sobre o Nordeste em fevereiro no composto seco, enquanto que no