introdução às linguagens de programação

33
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

Upload: miette

Post on 20-Mar-2016

33 views

Category:

Documents


0 download

DESCRIPTION

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. Bibliografia e Recursos: Livros. ALCALDE, Eduardo et alii. Informática Básica . São Paulo: Makron Books Ltda. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Introdução às Linguagens de Programação

Introdução às Linguagens de ProgramaçãoProf. Carlos GonçalvesEmail: [email protected]: http://cavg.br.tripod.comDEINF - CCET - UFMASão Luís, MA

Page 2: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 2

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.

Page 3: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 3

Bibliografia e Recursos: Livros

VELLOSO, Fernando C. Informática: Uma introdução. Rio de Janeiro: Ed. Campus.

Page 4: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 4

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 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).

Page 5: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 5

Objetivos do CursoConceituar 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.

Page 6: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 6

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.

Page 7: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 7

L.P.: Considerações IniciaisUm 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.

Page 8: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 8

L.P.: Considerações IniciaisNuma 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 inerentes. O mesmo se sucede com as linguagens de programação de alto-nível.

Page 9: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 9

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 processador não serve para outro. Códigos Assembly não são estruturados, tornando a programação bem mais difícil.

Page 10: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 10

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. 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.

Page 11: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 11

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).

Page 12: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 12

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).

Page 13: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 13

Hierarquia das linguagensLinguagem

Natural

RPG WPL COBOL Fortran APL LISP

Pascal Ada PL/1BASIC

C Forth

Assembly

Máquina

Ling. ProcedimentaisOrientadas ao problema

Negócios Científicas

Propósitos gerais

NívelInferior

Baixo-Nível

FuturoNível?

NívelIntermédio

Alto-Nível

Page 14: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 14

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.

Page 15: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 15

L.P.: Exemplos de Códigos: BASIC

Pseudocódigoleia(num)para n de 1 até 10 passo 1 faça tabnum*n imprima(tab)fim-para;

BASIC10 input num20 for n=1 to 10 step 130 let tab=num*n40 print chr$(tab)

50 next n

Page 16: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 16

L.P.: Exemplos de Códigos: FORTRAN

Pseudocódigoleia(num)para n de 1 até 10 passo 1 faça tabnum*n imprima(tab)fim-para;

FORTRAN read (num) do 10 n=1:10 tab=num*n write(tab)10 continue

Page 17: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 17

L.P.: Exemplos de Códigos: Assembly

Pseudocódigoleia(num)para n de 1 até 10 passo 1 faça tabnum*n imprima(tab)fim-para;

Assembly (Intel 8088) MOV CX,0IN AX,PORTAMOV DX,AXLABEL:INC CXMOV AX,DXMUL CXOUT AX, PORTACMP CX,10JNE LABEL

Page 18: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 18

L.P.: Exemplos de Códigos: C

Pseudocódigoleia(num)para n de 1 até 10 passo 1 faça tabnum*n imprima(tab)fim-para;

Cscanf(&num);for(n=1;n<=10;n++){

tab=num*n; printf(”\n %d”, tab);};

Page 19: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 19

O Processo de Compilação

Carregar editor de textos

Editar ou modificar

programa-fonte

Gravar programa-fonte

em disco

Carregar compilador

Carregar programa-fonte

Executar compilação

Compilação completa!

Há erros?

Fim

Listar erros

Não

Sim

Page 20: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 20

HTML: Breve visãoHTML é 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.

Page 21: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 21

Documentos HTML: Estrutura

<HTML><HEAD> <meta name="Author" content=“Carlos Goncalves"></HEAD><BODY><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></BODY></HTML>

Exemplo de codificação

HTML

Saída na tela do browser

tags

Page 22: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 22

Razões da Popularidade do Padrão HTML

Extremamente simplesEstilo próprio para formatação de documentosLigações de hipertexto criadas facilmenteSuporte a formuláriosInteração homem x máquinaProgramação simples

Page 23: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 23

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çãoPadrão limitado para intercâmbio de informações

Page 24: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 24

Limitações do Padrão HTML (cont.)

Inadequado para organização das informações. Busca por documentos gera grande número de resultados irrelevantesAutomação limitadaPadrão modificado constantementeAdequação aos novos padrões requer um grande esforço

Page 25: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 25

Glossário

Page 26: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 26

Glossário: Código ASCIIAcrô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.

Voltar

Page 27: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 27

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.

Voltar

Page 28: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 28

Glossário: Meta-ProgramasProgramas-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 executados fora dos ambientes de programação: C e Pascal são exemplos.

Voltar

Page 29: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 29

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.

Voltar

Page 30: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 30

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.

Voltar

Page 31: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 31

Glossário: Objetivos da PEOs 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.

tempo

Número de erros

descobertos por unidade de

tempo

Curva de detecção de

erros

Voltar

Page 32: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 32

Glossário: Objetivos da PEMelhorar 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

Voltar

Page 33: Introdução às Linguagens de Programação

©

2003

Car

los

Gon

çalv

es

24/04/23Prof. Carlos Gonçalves

Linguagens de Programação 33

Sobre o autorEsta 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)emails: [email protected]; [email protected];