Introdução às Linguagens de
Programação
Prof. Carlos Gonçalves
Email: [email protected]
Homepage: http://cavg.br.tripod.com
DEINF - CCET - UFMA
São Luís, MA
©2003 Carlos Gonçalves
Bibliografia e Recursos: Livros
ALCALDE, Eduardo et alii. Informática Básica. São Paulo:
Makron Books Ltda.
ARAKAKI, Reginaldo et alii. Fundamentos de programação: C técnicas e aplicações. Rio de Janeiro: LTC Editora.
KERNIGHAN, Brian e Ritchie, Dennis. C: A linguagem de
programação-Padrão ANSI. Ed. Campus: Rio de Janeiro.
GHEZZI, Carlo e Jazayeri, Mehdi. Conceitos de linguagem de
programação. Ed. Campus: Rio de Janeiro.
MARTIN, James & McClure, Clara. Técnicas estruturadas e
CASE. São Paulo: Makron, McGraw-Hill.
ORILIA, Lawrence S. Processamento de dados nas empresas.
McGraw-Hill do Brasil: São Paulo.
sams.net Publishing. Discover The World Wide Web. Indiana,
USA.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
2
Bibliografia e Recursos: Livros
©2003 Carlos Gonçalves
VELLOSO, Fernando C. Informática: Uma introdução.
Rio de Janeiro: Ed. Campus.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
3
Recursos: Internet
 Sites na Internet


©2003 Carlos Gonçalves

http://www.deinf.ufma.br/~cav — ou ainda (para acesso exterior a
UFMA) — http://cavg.br.tripod.com). Site do Prof. da disciplina,
inclui lista de exercícios, apostilas e tutoriais, links, e outras
informações atualizadas.
http://www.portalc.nip.net. Site repleto de apostilas, textos,
tutoriais, programas-fontes e até compiladores para a linguagem C
e C++. Fundamental uma visita com calma a fim de explorar bem
o material. Possui links para outros sites.
http://www.geekbrasil.com.br/apostilas/. Uma outra boa opção é o
portal Geek Brasil, que embora seja direcionada para um público
mais avançado, tem uma boa seção com apostilas grátis sobre os
mais diversos temas e assuntos. É só escolher um assunto e baixar
para seu HD, para posterior estudo e análise. Lembre-se que em
alguns casos será preciso o programa visualizador Acrobat
Reader da Adobe (que pode ser baixado lá no próprio site da
Geek).
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
4
©2003 Carlos Gonçalves
Objetivos do Curso
Conceituar as linguagens de programação.
Tipos de linguagens: alto e baixo nível,
genéricas e especificas.
Histórico das linguagens e a descrição das
características mais importantes.
Aspectos gerais dos códigos-fontes.
Prática: Elaborar programas-fontes em HTML,
com pouca complexidade e depurá-los.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
5
©2003 Carlos Gonçalves
Sobre as Linguagens de
Programação
Um programa de computador é um conjunto
de instruções que representam um algoritmo
para a resolução de algum problema. 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. Diz-se
que este conjunto de símbolos e regras
formam uma linguagem de programação.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
6
©2003 Carlos Gonçalves
L.P.: Considerações Iniciais
Um computador tem muitos níveis de
detalhes. Os termos baixo e alto nível são
usados para descrever as camadas de
complexidades nos computadores.
O baixo-nível real está imbricado nos
microchips e microcircuitos. É o nível mais
primitivo e mecânico, enquanto o alto-nível
descreve o computador com menos detalhes,
tornando-o mais fácil de se usar.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
7
©2003 Carlos Gonçalves
L.P.: Considerações Iniciais
Numa abordagem sistêmica, pode-se ver um
computador como um conjunto de caixaspretas determinísticas de baixo-nível
grupadas conceitualmente para formar uma
máquina de alto-nível, transparente ao
usuário comum, poupando-lhe dos
conhecimentos eletrônicos e técnicos
inerentes. O mesmo se sucede com as
linguagens de programação de alto-nível.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
8
Tipos de Linguagens: Baixo
Nível
©2003 Carlos Gonçalves
Baixo-Nível: São linguagens voltadas para a
máquina, isto é, são escritas usando-se as
instruções do microprocessador do computador. São
genericamente chamadas de linguagens Assembly
ou de montagem.
Vantagens: Os programas são executados com maior
velocidade de processamento e ocupam menor espaço na
memória.
Desvantagens: Em geral, programas em Assembly têm pouca
portabilidade, isto é, um código gerado para um tipo de
processador não serve para outro. Códigos Assembly não são
estruturados, tornando a programação bem mais difícil.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
9
Tipos de Linguagens: Alto
Nível
©2003 Carlos Gonçalves
Alto-Nível: São linguagens voltadas para o ser
humano. Em geral utilizam sintaxe estruturada
tornando seu código mais legível. Necessitam de
compiladores ou interpretadores para gerar as
instruções do microprocessador.
Vantagens: Por serem compiladas ou interpretadas, têm maior
portabilidade podendo ser executados em várias plataformas
com pouquíssimas modificações. Em geral, a programação
torna-se facilitada por causa do maior grau de estruturação de
suas linguagens.
Desvantagens: Em geral, as rotinas geradas (em linguagem de
máquina) são mais genéricas e portanto mais complexas e por
isso são mais lentas e ocupam mais memória.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
10
©2003 Carlos Gonçalves
Linguagens de A. N. Quanto a
Aplicação
As linguagens de alto nível podem se
distinguir ainda quanto a sua aplicação:
Genéricas: como C, Pascal e Basic;
Específicas: como Fortran (cálculo
matemático), GPSS (simulação), LISP
(inteligência artificial) ou CLIPPER
(banco de dados).
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
11
©2003 Carlos Gonçalves
Linguagens de Programação:
Resumindo
A linguagem nativa dos computadores são cadeias de
números binários chamada de linguagem de
máquina. A ação resultante de uma simples instrução
em linguagem de máquina é muito primitiva e
milhares delas são necessárias para se fazer algo
substancial.
Em contrapartida, uma L.A.-nível provê um conjunto
substancial de instruções em inglês coloquial, as
quais podem ser recombinadas criativamente e
passadas para as imaginárias caixas-pretas do
computador (neste contexto considerada como uma
máquina virtual, dada a abstração inerente).
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
12
Hierarquia das linguagens
Orientadas ao problema
RPG
WPL
Linguagem
Natural
Futuro
Ling. Procedimentais Nível?
COBOL
Fortran
APL
LISP
Científicas
Negócios
BASIC
Pascal
Ada
PL/1
AltoNível
Propósitos gerais
©2003 Carlos Gonçalves
C
05/11/2015
Forth
Nível
Intermédio
Assembly
BaixoNível
Máquina
Nível
Inferior
Prof. Carlos Gonçalves
Linguagens de Programação
13
©2003 Carlos Gonçalves
A Linguagem C:
Considerações
É uma linguagem de alto nível, genérica. Foi
desenvolvida por programadores para
programadores, tendo como meta características de
flexibilidade e portabilidade. O C é uma linguagem
que nasceu juntamente com o advento da teoria de
linguagem estruturada e do computador pessoal.
Assim, tornou-se rapidamente uma linguagem
“popular” entre os programadores. O C foi usado
para desenvolver o sistema operacional UNIX, e hoje
está sendo usada para desenvolver novas
linguagens, entre elas a linguagem C++ e Java.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
14
©2003 Carlos Gonçalves
L.P.: Exemplos de Códigos:
BASIC
Pseudocódigo
leia(num)
para n de 1
até 10 passo 1
faça
tabnum*n
imprima(tab)
fim-para;
05/11/2015
BASIC
10 input num
20 for n=1 to 10
step 1
30 let tab=num*n
40 print
chr$(tab)
50 next n
Prof. Carlos Gonçalves
Linguagens de Programação
15
©2003 Carlos Gonçalves
L.P.: Exemplos de Códigos:
FORTRAN
Pseudocódigo
leia(num)
para n de 1
até 10 passo 1
faça
tabnum*n
imprima(tab)
fim-para;
05/11/2015
FORTRAN
read (num)
do 10 n=1:10
tab=num*n
write(tab)
10 continue
Prof. Carlos Gonçalves
Linguagens de Programação
16
©2003 Carlos Gonçalves
L.P.: Exemplos de Códigos:
Assembly
Pseudocódigo
leia(num)
para n de 1
até 10 passo 1
faça
tabnum*n
imprima(tab)
fim-para;
05/11/2015
Assembly (Intel 8088)
MOV CX,0
IN AX,PORTA
MOV DX,AX
LABEL:
INC CX
MOV AX,DX
MUL CX
OUT AX, PORTA
CMP CX,10
JNE LABEL
Prof. Carlos Gonçalves
Linguagens de Programação
17
©2003 Carlos Gonçalves
L.P.: Exemplos de Códigos: C
Pseudocódigo
leia(num)
para n de 1
até 10 passo 1
faça
tabnum*n
imprima(tab)
fim-para;
05/11/2015
C
scanf(&num);
for(n=1;n<=10;n++
){
tab=num*n;
printf(”\n %d”,
tab);
};
Prof. Carlos Gonçalves
Linguagens de Programação
18
O Processo de Compilação
Carregar editor
de textos
©2003 Carlos Gonçalves
Editar ou
modificar
programa-fonte
Gravar
programa-fonte
em disco
05/11/2015
Carregar
compilador
Há
erros?
Sim
Listar erros
Não
Carregar
programa-fonte
Executar
compilação
Prof. Carlos Gonçalves
Linguagens de Programação
Compilação
completa!
Fim
19
©2003 Carlos Gonçalves
HTML: Breve visão
HTML é o acrônimo de HyperText Markup
Language. Um documento em HTML contém
gráficos, links, ícones, e formatação de como
o documento deve ser mostrado pelo
browser.
De fato, o browser é um interpretador dos
tags (marcadores) que constituem o HTML.
Este padrão, hoje amplamente difundido, é
um formato que descreve como uma página
Web deve ser exibida e não oferece nenhuma
descrição dos dados em si.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
20
Documentos HTML: Estrutura
©2003 Carlos Gonçalves
tags
<HTML>
<HEAD>
<meta name="Author" content=“Carlos Goncalves">
</HEAD>
Saída na tela
<BODY>
do browser
<H1> Título 1 </H1>
<H2> Título 2 </H2>
<H3> Título 3 </H3>
<P>Texto Normal</P>
<LI>item 1 </LI>
<LI>item 2 </LI>
<LI>item 3 </LI>
Exemplo de
</BODY>
codificação
</HTML>
HTML
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
21
©2003 Carlos Gonçalves
Razões da Popularidade do
Padrão HTML
Extremamente simples
Estilo próprio para formatação de
documentos
Ligações de hipertexto criadas
facilmente
Suporte a formulários
Interação homem x máquina
Programação simples
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
22
Limitações do Padrão HTML
Estrutura limitada e simples

©2003 Carlos Gonçalves

número fixo de tags
projetado para formatação de documentos
entregues através da Web
Difícil reutilização da informação
Padrão limitado para intercâmbio de
informações
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
23
Limitações do Padrão HTML
©2003 Carlos Gonçalves
(cont.)
Inadequado para organização das
informações. Busca por documentos
gera grande número de resultados
irrelevantes
Automação limitada
Padrão modificado constantemente
Adequação aos novos padrões requer
um grande esforço
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
24
©2003 Carlos Gonçalves
Glossário
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
25
©2003 Carlos Gonçalves
Glossário: Código ASCII
Acrônimo de American Standard Code for
Information Interchange. Um esquema de
codificação que atribui valores numéricos às
letras, números sinais de pontuação e alguns
símbolos especiais.
O ASCII tem 256 códigos divididos em dois
conjuntos: básico e estendido com 128
códigos cada.
O ASCII permite que computadores e
programas troquem informações entre si.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
Voltar
26
©2003 Carlos Gonçalves
Glossário: Dados, Instruções,
Informação
Dados: Elementos conhecidos de um
problema. Podem servir de base para a
solução de outros problemas.
Instrução: Comando que define uma
operação (ou ação) a ser executada pelo
processador.
Informação: Um conjunto estruturado e
racional de dados. Contudo, prefiro a def. de
Claude Shannon: Informação é a redução da
incerteza.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
Voltar
27
Glossário: Meta-Programas
Programas-tradutores:

©2003 Carlos Gonçalves

Interpretadores fazem a interpretação de cada
instrução do programa fonte executando-a dentro
de um ambiente de programação: Basic e
AutoLISP são exemplos.
Compiladores fazem a tradução de todas as
instruções do programa fonte gerando um
programa executável. Estes programas
executáveis (*.exe, *.bin) podem ser
executados fora dos ambientes de programação:
C e Pascal são exemplos.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
Voltar
28
©2003 Carlos Gonçalves
Glossário: Sintaxe Estruturada
e P. Estruturada
Pode-se considerar como precursores da Programação
Estruturada (PE) dois pesquisadores, C. Bohm e G. Jacopini, que
publicaram um paper, primeiro na Itália e depois na
Communications of the ACM, USA, demonstrando que qualquer
programa poderia ser construído usando-se apenas 3 estruturas
básicas: seqüência, seleção e iteração.
A expressão “programação estruturada” foi usada pela 1ª vez
em 1969 por Edsger Dijkstra no paper “Structured
programming”, in Software Engineering 1969, Bruxelas: NATO
Scientific Affairs Division. O comando GOTO favorecia a
desorganização dos programas, além de obscurecer sua
estrutura, já que aumentava a “distância entre a representação
estática do programa e seu processo dinâmico”, gerando um
baixo nível de semântica.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
Voltar
29
©2003 Carlos Gonçalves
Glossário: Objetivos da PE
Resolver a crise de software, proporcionando uma disciplina de
programação, pois:
Os programas até então eram feitos ad hoc, dificultando seu
uso em vários sistemas de computadores.
Produção de software era onerosa.
Os testes de programas ocupavam cerca de 50% do projeto de
software.
Os erros são mais críticos nos sistemas atuais, pois o usuário a
partir da década de 70, tornou-se menos tolerante a software
com falhas, o que não ocorria no início da era da computação.
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
Voltar
30
Glossário: Objetivos da PE
Número de
erros
descobertos
por unidade de
tempo
Curva de
detecção de
erros
©2003 Carlos Gonçalves
tempo
05/11/2015
Os erros duravam para
sempre em grandes
sistemas, e.g., numa
estatística da IBM, um de
seus engenheiros informou
que “cada nova versão do
OS/360 da IBM possuía mil
erros”.
A manutenção tornou-se
muito cara, pois cerca de
50%, ou mais, do orçamento
das organizações iam para
manutenção dos sistemas
existentes.
Prof. Carlos Gonçalves
Linguagens de Programação
Voltar
31
©2003 Carlos Gonçalves
Glossário: Objetivos da PE
Melhorar a confiabilidade dos programas
Aumentar a legibilidade dos programas
Minimizar a complexidade
Simplificar a manutenção
Aumentar a produtividade do programador
Estabelecer uma metodologia de
programação
Reduzir o custo de programação
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
Voltar
32
Sobre o autor
Esta apresentação foi
elaborada e desenvolvida
pelo Prof. Carlos
Gonçalves (DEINF da
UFMA), a quem pertence
todos os direitos autorais.
©2003 Carlos Gonçalves
Webpages:
www.deinf.ufma.br/~cav;
http://cavg.vila.bol.com.br;
(espelho/mirror)
emails:
[email protected];
[email protected];
05/11/2015
Prof. Carlos Gonçalves
Linguagens de Programação
33
Download

Introdução à Linguagem de Programação