Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

54
# Introdução à Computação # Aula 09 – ALGORITMOS (Linguagens de Programação) Prof. Leinylson Fontinele Pereira

Transcript of Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Page 1: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

# Introdução à Computação #

Aula 09 – ALGORITMOS

(Linguagens de Programação)

Prof. Leinylson Fontinele Pereira

Page 2: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Na aula anterior...

ALGORITMOS# Lógica de Programação

# Álgebra booleana

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 3: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

O que vamos aprender? Será abordado, através da presente apresentação,

uma visão abrangente da sub-área da Ciência da

Computação denominada Linguagens de

Programação.

Além disso, será apresentado o conjunto de

conhecimentos necessários para o desenvolvimento

dessas linguagens, um breve histórico das linguagens,

a relação com as disciplinas do curso e por fim, as

oportunidades no mercado de trabalho.

Linguagens de Programação

Histórico das linguagens

Conhecimentos necessários

O relacionamento com o curso

Mercado de trabalho

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 4: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Motivação!

Num mundo com computadores cada vez maisvelozes, o que ainda afeta a produtividade?

Porque existem tantas linguagens deprogramação?

Daqui a 10, 20, ou 100 anos, em que linguagemvocê estará programando?

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 5: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Vamos começar?

10:08 5I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 6: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de Programação

10:08

Surgiram para descrever mecanismos abstratos

Com o passar dos anos as linguagens de programação vêmsendo criadas a partir dos defeitos de outras linguagens ou porsimples melhoria de desempenho e algumas designadasapenas para alguma tarefa específica.

Umas mais complexas que outras, mas todas com o mesmofim, solucionar algum problema.

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 7: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de Programação

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Linguagens de programação (LP) são métodos

padronizados para expressar instruções para um

computador. São um conjunto de regras

sintáticas e semânticas usadas para definir um

programa de computador.

Uma linguagem permite que um programador

especifique sobre quais dados um computador vai

atuar, como estes dados serão transmitidos ou

armazenados e quais ações devem ser tomadas

sob várias circunstâncias.

O principal objetivo das linguagens é permitir que

programadores tenham uma maior produtividade,

podendo expressar suas intenções mais facilmente do

que quando comparado com a linguagem que um

computador entende nativamente (código de máquina).

Portanto, linguagens de programação são projetadas

para adotar uma sintaxe de nível mais elevado, que

pode ser mais facilmente entendida por programadores

humanos. Enfim, elas são ferramentas importantes

para que programadores possam escrever programas

mais organizados e com maior rapidez.

Page 8: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Sintaxe e Semântica da LP

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Sintaxe: conjunto de regras formaispara a composição de um texto nalinguagem (programa) a partir doagrupamento de letras, dígitos e/oucaracteres (alfabeto da linguagem).

A sintaxe é um conjunto de regrasformais para a escrita do programa.

Semântica: diz respeito à significação.Diz respeito ao significado doprograma sintaticamente válido.

É parte do domínio da semânticaverificar esta coerência em termos designificado linguístico e não em termosde lógica de programa.

Page 9: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Propriedades desejáveis de

uma LP

Legibilidade

Está relacionada com a facilidade

de leitura dos códigos

Redigibilidade

Relaciona-se com a

facilidade em escrever

programas

Facilidade de aprendizado

O programador deve ser capaz de aprender a

linguagem com facilidade. LPs com muitas

características e múltiplas maneiras de realizar a mesma funcionalidade

tendem a ser mais difíceis de aprender

Eficiência

De acordo com as demandas por

recursos de um tipo de aplicação, certas

LPs são mais recomendadas, e

outras não devem ser usadas

Confiabilidade

Está relacionada com os mecanismos fornecidos pela LP para incentivar a

construção de programas confiáveis

Ortogonalidade

Diz respeito a capacidade da LP permitir ao programador

combinar seus conceitos básicos sem que se produzam

efeitos irregulares nessa combinação. Assim uma LP é

tão mais ortogonal quanto menor for o número de

exceções aos seus padrões regulares

Reusabilidade

Possibilita a reutilização do mesmo código para diversas

aplicações. Quanto mais reusável for um código, maior

será a produtividade de programação, uma vez que, na

construção de novos programas, bastará adaptar

códigos escritos anteriormente sem a necessidade de

reconstruí-los

Modificabilidade

Refere-se às facilidades oferecidas pela LP para

possibilitar ao programador alterar o programa em

função de novos requisitos, sem que tais modificações impliquem mudanças em

outras partes do programa

Portabilidade

É altamente desejável que programas escritos em uma LP se comportem da mesma maneira independentes da ferramenta utilizada para

traduzi-los para a linguagem de máquina ou da

arquitetura computacional (hardware ou sistema

operacional) sobre a qual estão sendo executados.

Conclusão

Dessa forma, não existe a melhor ou a pior LP, isso não depende somente da linguagem e sim

para que tipo de projeto será

aplicado

Page 10: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Níveis das Linguagens de Programação

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 11: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Tipos de Programação

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Programação estruturada

• Programação estruturada é uma forma de programação de computadores que preconiza que todos osprogramas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e interação.

Programação orientada à objetos

• A análise e projeto orientados a objetos têm como meta identificar o melhor conjunto de objetos paradescrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento etroca de mensagens entre estes objetos.

Programação natural

• É usado para distinguir as línguas faladas por seres humanos e usadas como instrumento decomunicação daquelas que são linguagens formais construídas.

Programação lógica• Programação lógica é a programação que faz uso da lógica matemática.

Page 12: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Interpretação X Compilação

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Nas linguagens interpretadas um programa éexecutado instrução a instrução, ou seja, cadacomando é, primeiro traduzido para alinguagem de máquina, para somente emseguida, ser executado.

Na interpretação as ações resultantes decomandos da linguagem de alto nível sãoexecutadas diretamente, seguindo os passos:

Nas linguagens compiladas um programa éexecutado somente quando toda a tradução foicompletada. A compilação de um programa fonteprevê que o mesmo seja traduzido para alinguagem da máquina correspondente antes daexecução.

Etapas Cria o Extensão

[1ª etapa] depuração sintática

Programa fonte .C ou .CPP

[2ª etapa] geração de código de máquina relocável

Programa objeto .OBJ

[3ª etapa] linkage -liga códigos e funções de biblioteca

Programa executável .EXE

Page 13: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

13

• Sistema de código ENIAC, Assembly, C-10 e Plankalkül.

Década de 1940

• FORTRAN, LISP, Basic, COBOL, etc.

1950 - 1960

• Pascal, C, Prolog, SQL, etc.

1967 - 1978

• C++, Perl, Ada, etc.

Década de 1980

• Haskell, Python, Java, Ruby, Common Lisp, JavaScript, PHP, C#, Delphi, Ruby, etc.

Década de 1990

• C#, VB.net, etc.

Década de 2000

His

tóri

co

Page 14: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

14

Page 15: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

O programador mediano sabe uma coisa porque ele precisa saber. O bom programador sabe alguma coisa porque ele tem vontade de saber.

No English? No job.

15

Page 16: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de Programação

A verdadeira (e única) linguagem de computador é a linguagem demáquina (binária), mas para a maioria das pessoas essa linguagem éininteligível.

Os programadores precisam de um intermediário entre eles e amáquina.

Uma linguagem que facilite o processo de programar computadoresmas que no final seja traduzida para a linguagem de máquina.

Page 17: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de ProgramaçãoASSEMBLY

DOSSEG

.MODEL SMALL

EXTRN

_IntDivide:PROC

.CODE

PUBLIC _Average

_Average PROC

push bp

mov bp, sp

Les bx, [bp+4]

Mov cx, [bp+8]

mov ax, 0

AverageLoop:

add ax, es: [bx]

add bx, 2

Loop AverageLoop

push WORD PRG

[bp+8]

push ax

call _IntDivide

add sp, 4

pop bp

ret

_Average ENDP

END

Este programa calcula a média

de uma lista de números

Linguagem de

Baixo Nível

Page 18: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de Programação

Pascal

Este programa calcula a divisão

de dois números quaisquer

program divisao;

var num, den: real;

begin

write(‘digite o numerador:’);

readln(num);

write(‘digite o denominador:’);

readln(den);

if den = 0 then

begin

write(‘numerador não pode ser

zero’);

exit;

end;

write(‘resultado da divisão’,

num/den);

end.

Linguagem de

Alto nível

Page 19: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens Visuais

• Delphi

Page 20: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de programação

program divisao;

var num, den: real;

begin

write(‘digite o numerador:’);

readln(num);

write(‘digite o denominador:’);

readln(den);

if den = 0 then

begin

write(‘numerador não pode ser zero’);

exit;

end;

write(‘resultado da divisão’, num / den);

end.

Page 21: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de programação

Page 22: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de programação

Page 23: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de programação

Page 24: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de programação

Page 25: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de programação

Page 26: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Linguagens de programação

Page 27: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

10:08

Loop Infinito

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 28: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

10:08

Loop Infinito

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 29: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

10:08

Loop Infinito

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 30: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Qual é a melhor LP?

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 31: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Qual é a melhor LP?

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 32: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Olá Mundo!

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 33: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

O que é Ciência da Computação?

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 34: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 35: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Que Linguagens de Programação você utiliza?

Page 36: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

O que é Ciência da Computação?

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 37: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Top 20

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 38: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Considerações

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 39: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Considerações

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 40: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Top 20

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 41: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Top 20

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 42: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Top 20

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 43: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Ranking Completo

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 44: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Considerações

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 45: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Fontes da Pesquisa

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 46: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Material: https://sites.google.com/site/leinylsonuespi

10:08

Aula baseada no material de:

Linguagens de programação, Prof. Gerson Cavalheiro

Introdução à Informática, Prof. Edberto Ferneda

Evolução e Futuro das Linguagens de Programação,Alessandro Vasconcelos e Gladstone Ferreira

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 47: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Então...

Num mundo com computadores cada vez maisvelozes, o que ainda afeta a produtividade?

Porque existem tantas linguagens deprogramação?

Daqui a 10, 20, ou 100 anos, em que linguagemvocê estará programando?

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 48: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

A questão da Produtividade

O hardware já é suficientemente poderoso por si só!

A produtividade se centra no Programador:

# Escrever programas corretamente

# Escrever programas rapidamente

# Escrever programas facilmente

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 49: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Por que tantas Linguagens de Programação?

Por que algumas pessoas falam inglês e outras português?

Linguagens de programação são desenvolvidas com diferentes objetivos, para diferentes tipos de programas, por diferentes pessoas.

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 50: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

O que o futuro nos reserva?

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 51: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Mas…

Nós ainda escreveremos

programas daqui a cem anos?

Não apenas diremos aos

computadores o que nós

estamos queremos fazer?

I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 52: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Nesta aula aprendemos...

ALGORITMOS# Linguagens de Programação

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 53: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Na próxima aula veremos...

Aula Prática de ALGORITMOS# Simulando Operações com Portas Lógicas

10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)

Page 54: Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)

Alguma Dúvida?

10:08

Até a próxima aula...

[email protected]