Você está na página 1de 33

Introdução às Linguagens de

Programação
Prof. Carlos Gonçalves
Email: cavg@oi.com.br
Homepage: http://cavg.br.tripod.com
DEINF - CCET - UFMA
São Luís, MA
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.
©2003 Carlos Gonçalves

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.
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 2
Bibliografia e Recursos: Livros
VELLOSO, Fernando C. Informática: Uma introdução.
Rio de Janeiro: Ed. Campus.
©2003 Carlos Gonçalves

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 3
Recursos: Internet
 Sites na Internet
 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
©2003 Carlos Gonçalves

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).
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 4
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,
©2003 Carlos Gonçalves

com pouca complexidade e depurá-los.

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 5
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
©2003 Carlos Gonçalves

que este conjunto de símbolos e regras


formam uma linguagem de programação.
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 6
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
©2003 Carlos Gonçalves

descreve o computador com menos detalhes,


tornando-o mais fácil de se usar.
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 7
L.P.: Considerações Iniciais
Numa abordagem sistêmica, pode-se ver um
computador como um conjunto de caixas-
pretas 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
©2003 Carlos Gonçalves

inerentes. O mesmo se sucede com as


linguagens de programação de alto-nível.
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 8
Tipos de Linguagens: Baixo
Nível
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
©2003 Carlos Gonçalves

processador não serve para outro. Códigos Assembly não são


estruturados, tornando a programação bem mais difícil.

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 9
Tipos de Linguagens: Alto
Nível
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.
©2003 Carlos Gonçalves

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.

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 10
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
©2003 Carlos Gonçalves

(banco de dados).

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 11
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
©2003 Carlos Gonçalves

passadas para as imaginárias caixas-pretas do


computador (neste contexto considerada como uma
máquina virtual, dada a abstração inerente).
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 12
Hierarquia das linguagens
Linguagem Futuro
Natural
Orientadas ao problema Ling. Procedimentais Nível?

RPG WPL COBOL Fortran APL LISP

Negócios Científicas

BASIC Pascal Ada PL/1 Alto-


Nível
Propósitos gerais

C Forth Nível
Intermédio
©2003 Carlos Gonçalves

Baixo-
Assembly
Nível

Nível
Máquina
Inferior

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 13
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
©2003 Carlos Gonçalves

para desenvolver o sistema operacional UNIX, e hoje


está sendo usada para desenvolver novas
linguagens, entre elas a linguagem C++ e Java.
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 14
L.P.: Exemplos de Códigos:
BASIC
Pseudocódigo BASIC
leia(num) 10 input num
para n de 1 20 for n=1 to 10
até 10 passo 1 step 1
faça 30 let tab=num*n
tabnum*n 40 print
©2003 Carlos Gonçalves

imprima(tab) chr$(tab)
fim-para; 50 next n
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 15
L.P.: Exemplos de Códigos:
FORTRAN
Pseudocódigo FORTRAN
leia(num) read (num)
para n de 1 do 10 n=1:10
até 10 passo 1 tab=num*n
faça write(tab)
tabnum*n 10 continue
©2003 Carlos Gonçalves

imprima(tab)
fim-para;
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 16
L.P.: Exemplos de Códigos:
Assembly
Pseudocódigo Assembly (Intel 8088)
MOV CX,0
leia(num) IN AX,PORTA
para n de 1 MOV DX,AX
até 10 passo 1 LABEL:
faça INC CX
MOV AX,DX
tabnum*n
MUL CX
©2003 Carlos Gonçalves

imprima(tab) OUT AX, PORTA


fim-para; CMP CX,10
JNE LABEL
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 17
L.P.: Exemplos de Códigos: C
Pseudocódigo C
leia(num) scanf(&num);
para n de 1 for(n=1;n<=10;n++
até 10 passo 1 ){
faça tab=num*n;
tabnum*n printf(”\n %d”,
©2003 Carlos Gonçalves

imprima(tab) tab);
fim-para; };

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 18
O Processo de Compilação

Carregar editor Carregar


de textos compilador Há Sim
Listar erros
erros?

Não
Editar ou
Carregar
modificar
programa-fonte Compilação
programa-fonte
completa!
©2003 Carlos Gonçalves

Gravar Executar
programa-fonte compilação Fim
em disco

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 19
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, é
©2003 Carlos Gonçalves

um formato que descreve como uma página


Web deve ser exibida e não oferece nenhuma
descrição dos dados em si.
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 20
Documentos HTML: Estrutura
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>
©2003 Carlos Gonçalves

<LI>item 3 </LI>
</BODY> Exemplo de
</HTML> codificação
HTML

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 21
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
©2003 Carlos Gonçalves

Interação homem x máquina


Programação simples
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 22
Limitações do Padrão HTML
Estrutura limitada e simples
 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
©2003 Carlos Gonçalves

informações

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 23
Limitações do Padrão HTML
(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
©2003 Carlos Gonçalves

um grande esforço
Prof. Carlos Gonçalves
04/08/2019 Linguagens de Programação 24
Glossário
©2003 Carlos Gonçalves

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 25
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.
©2003 Carlos Gonçalves

O ASCII permite que computadores e


programas troquem informações entre si.
Prof. Carlos Gonçalves
Voltar
04/08/2019 Linguagens de Programação 26
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
©2003 Carlos Gonçalves

Claude Shannon: Informação é a redução da


incerteza.
Prof. Carlos Gonçalves
Voltar
04/08/2019 Linguagens de Programação 27
Glossário: Meta-Programas
Programas-tradutores:
 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
©2003 Carlos Gonçalves

executados fora dos ambientes de programação:


C e Pascal são exemplos.

Prof. Carlos Gonçalves


Voltar
04/08/2019 Linguagens de Programação 28
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
©2003 Carlos Gonçalves

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.

Prof. Carlos Gonçalves


Voltar
04/08/2019 Linguagens de Programação 29
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.
©2003 Carlos Gonçalves

Prof. Carlos Gonçalves


Voltar
04/08/2019 Linguagens de Programação 30
Glossário: Objetivos da PE
Curva de
Os erros duravam para
sempre em grandes
Número de
erros detecção de
descobertos
por unidade de
erros
sistemas, e.g., numa
tempo estatística da IBM, um de
seus engenheiros informou
que “cada nova versão do
tempo OS/360 da IBM possuía mil
erros”.
A manutenção tornou-se
muito cara, pois cerca de
50%, ou mais, do orçamento
©2003 Carlos Gonçalves

das organizações iam para


manutenção dos sistemas
existentes.

Prof. Carlos Gonçalves


Voltar
04/08/2019 Linguagens de Programação 31
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
©2003 Carlos Gonçalves

programação
Reduzir o custo de programação
Prof. Carlos Gonçalves
Voltar
04/08/2019 Linguagens de Programação 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.
Webpages:
www.deinf.ufma.br/~cav;
http://cavg.vila.bol.com.br;
(espelho/mirror)
©2003 Carlos Gonçalves

emails:
cavg@bol.com.br;
cavg@pop.com.br;

Prof. Carlos Gonçalves


04/08/2019 Linguagens de Programação 33

Você também pode gostar