Upload
leinylson-fontinele
View
110
Download
2
Embed Size (px)
Citation preview
# Introdução à Computação #
Aula 09 – ALGORITMOS
(Linguagens de Programação)
Prof. Leinylson Fontinele Pereira
Na aula anterior...
ALGORITMOS# Lógica de Programação
# Álgebra booleana
10:08I.C.C.: 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)
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)
Vamos começar?
10:08 5I.C.C.: 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)
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.
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.
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
Níveis das Linguagens de Programação
10:08I.C.C.: 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.
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
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
14
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
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.
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
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
Linguagens Visuais
• Delphi
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.
Linguagens de programação
Linguagens de programação
Linguagens de programação
Linguagens de programação
Linguagens de programação
Linguagens de programação
10:08
Loop Infinito
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
10:08
Loop Infinito
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
10:08
Loop Infinito
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Qual é a melhor LP?
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Qual é a melhor LP?
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Olá Mundo!
10:08I.C.C.: 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)
10:08I.C.C.: 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?
O que é Ciência da Computação?
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Top 20
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Considerações
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Considerações
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Top 20
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Top 20
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Top 20
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Ranking Completo
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Considerações
10:08I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Fontes da Pesquisa
10:08I.C.C.: 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)
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)
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)
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)
O que o futuro nos reserva?
I.C.C.: 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)
Nesta aula aprendemos...
ALGORITMOS# Linguagens de Programação
10:08I.C.C.: 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)