A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução às Linguagens de Programação Prof. Carlos Gonçalves Homepage: DEINF - CCET - UFMA São Luís,

Apresentações semelhantes


Apresentação em tema: "Introdução às Linguagens de Programação Prof. Carlos Gonçalves Homepage: DEINF - CCET - UFMA São Luís,"— Transcrição da apresentação:

1 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

2 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação2 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.

3 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação3 Bibliografia e Recursos: Livros VELLOSO, Fernando C. Informática: Uma introdução. Rio de Janeiro: Ed. Campus.

4 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação4 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.deinf.ufma.br/~cav  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.portalc.nip.net  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). http://www.geekbrasil.com.br/apostilas/ Geek Brasil

5 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação5 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.

6 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação6 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.instru ç õesc ó digos

7 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação7 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.

8 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação8 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 inerentes. O mesmo se sucede com as linguagens de programação de alto-nível.

9 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação9 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.

10 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação10 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.sintaxe estruturada compiladoresinterpretadores 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.

11 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação11 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).

12 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação12 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).

13 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação13 Hierarquia das linguagens Linguagem Natural RPG WPL COBOL Fortran APL LISP Pascal Ada PL/1 BASIC C C Forth Assembly Máquina Ling. ProcedimentaisOrientadas ao problema Negócios Científicas Propósitos gerais Nível Inferior Baixo- Nível Futuro Nível? Nível Intermédio Alto- Nível

14 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação14 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.

15 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação15 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; BASIC 10 input num 20 for n=1 to 10 step 1 30 let tab=num*n 40 print chr$(tab) 50 next n

16 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação16 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; FORTRAN read (num) do 10 n=1:10 tab=num*n write(tab) 10 continue

17 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação17 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; 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

18 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação18 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; C scanf(&num); for(n=1;n<=10;n++ ){ tab=num*n; printf(”\n %d”, tab); };

19 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação19 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

20 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação20 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.

21 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação21 Documentos HTML: Estrutura Título 1 Título 2 Título 3 Texto Normal item 1 item 2 item 3 Exemplo de codificação HTML Saída na tela do browser tags

22 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação22 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

23 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação23 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 informações

24 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação24 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 um grande esforço

25 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação25 Glossário

26 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação26 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. Voltar

27 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação27 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

28 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação28 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 executados fora dos ambientes de programação: C e Pascal são exemplos. Voltar

29 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação29 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

30 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação30 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

31 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação31 Glossário: Objetivos da PE 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. Voltar

32 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação32 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 Voltar

33 ©2003 Carlos Gonçalves 31/3/2015 Prof. Carlos Gonçalves Linguagens de Programação33 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) emails: cavg@bol.com.br; cavg@pop.com.br; cavg@bol.com.br cavg@pop.com.br


Carregar ppt "Introdução às Linguagens de Programação Prof. Carlos Gonçalves Homepage: DEINF - CCET - UFMA São Luís,"

Apresentações semelhantes


Anúncios Google