Este documento apresenta uma aula sobre linguagens de programação. Aborda os seguintes tópicos: 1) O que será aprendido na aula, incluindo linguagens de programação, histórico, conhecimentos necessários e oportunidades de carreira; 2) As propriedades desejáveis de uma linguagem de programação; 3) Os diferentes níveis de linguagens de programação; 4) Os tipos de programação como estruturada, orientada a objetos e lógica. A aula também discute interpretação versus compilação, o histó
Introdução à Computação Aula 09 - Algoritmos (Linguagens de Programação)
1. # Introdução à Computação #
Aula 09 – ALGORITMOS
(Linguagens de Programação)
Prof. Leinylson Fontinele Pereira
2. Na aula anterior...
ALGORITMOS
# Lógica de Programação
# Álgebra booleana
10:08
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
3. 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)
4. Motivação!
Num mundo com computadores cada vez mais
velozes, o que ainda afeta a produtividade?
Porque existem tantas linguagens de
programação?
Daqui a 10, 20, ou 100 anos, em que linguagem
você estará programando?
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
6. Linguagens de Programação
10:08
Surgiram para descrever mecanismos abstratos
Com o passar dos anos as linguagens de programação vêm
sendo criadas a partir dos defeitos de outras linguagens ou por
simples melhoria de desempenho e algumas designadas
apenas para alguma tarefa específica.
Umas mais complexas que outras, mas todas com o mesmo
fim, solucionar algum problema.
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
7. Linguagens de Programação
10:08
I.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.
8. Sintaxe e Semântica da LP
10:08
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Sintaxe: conjunto de regras formais
para a composição de um texto na
linguagem (programa) a partir do
agrupamento de letras, dígitos e/ou
caracteres (alfabeto da linguagem).
A sintaxe é um conjunto de regras
formais para a escrita do programa.
Semântica: diz respeito à significação.
Diz respeito ao significado do
programa sintaticamente válido.
É parte do domínio da semântica
verificar esta coerência em termos de
significado linguístico e não em termos
de lógica de programa.
9. 10:08
I.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
10. Níveis das Linguagens de Programação
10:08
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
11. Tipos de Programação
10:08
I.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 os
programas 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 para
descrever um sistema de software. O funcionamento deste sistema se dá através do relacionamento e
troca de mensagens entre estes objetos.
Programação natural
• É usado para distinguir as línguas faladas por seres humanos e usadas como instrumento de
comunicaçã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.
12. Interpretação X Compilação
10:08
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
Nas linguagens interpretadas um programa é
executado instrução a instrução, ou seja, cada
comando é, primeiro traduzido para a
linguagem de máquina, para somente em
seguida, ser executado.
Na interpretação as ações resultantes de
comandos da linguagem de alto nível são
executadas diretamente, seguindo os passos:
Nas linguagens compiladas um programa é
executado somente quando toda a tradução foi
completada. A compilação de um programa fonte
prevê que o mesmo seja traduzido para a
linguagem da máquina correspondente antes da
execuçã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. 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
Histórico
15. 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
16. Linguagens de Programação
A verdadeira (e única) linguagem de computador é a linguagem de
máquina (binária), mas para a maioria das pessoas essa linguagem é
ininteligível.
Os programadores precisam de um intermediário entre eles e a
máquina.
Uma linguagem que facilite o processo de programar computadores
mas que no final seja traduzida para a linguagem de máquina.
17. Linguagens de Programação
ASSEMBLY
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
18. 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
20. 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.
46. 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)
47. Então...
Num mundo com computadores cada vez mais
velozes, o que ainda afeta a produtividade?
Porque existem tantas linguagens de
programação?
Daqui a 10, 20, ou 100 anos, em que linguagem
você estará programando?
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
48. 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)
49. 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)
50. O que o futuro nos reserva?
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
51. 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)
52. Nesta aula aprendemos...
ALGORITMOS
# Linguagens de Programação
10:08
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)
53. Na próxima aula veremos...
Aula Prática de ALGORITMOS
# Simulando Operações com Portas Lógicas
10:08
I.C.C.: Aula 09 – ALGORITMOS (Linguagens de Programação)