330 likes | 397 Views
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.
E N D
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. • 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 Linguagens de Programação
Bibliografia e Recursos: Livros • VELLOSO, Fernando C. Informática: Uma introdução. Rio de Janeiro: Ed. Campus. Prof. Carlos Gonçalves Linguagens de Programação
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). Prof. Carlos Gonçalves Linguagens de Programação
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. Prof. Carlos Gonçalves Linguagens de Programação
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. Prof. Carlos Gonçalves Linguagens de Programação
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. Prof. Carlos Gonçalves Linguagens de Programação
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. Prof. Carlos Gonçalves Linguagens de Programação
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. Prof. Carlos Gonçalves Linguagens de Programação
Tipos de Linguagens: Alto Nível • Alto-Nível: São linguagens voltadas para o ser humano. Em geral utilizam sintaxe estruturadatornando 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. Prof. Carlos Gonçalves Linguagens de Programação
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). Prof. Carlos Gonçalves Linguagens de Programação
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). Prof. Carlos Gonçalves Linguagens de Programação
Fortran APL LISP RPG WPL COBOL Pascal Ada PL/1 BASIC Hierarquia das linguagens LinguagemNatural FuturoNível? Orientadas ao problema Ling. Procedimentais Científicas Negócios Alto-Nível Propósitos gerais NívelIntermédio C Forth Baixo-Nível Assembly NívelInferior Máquina Prof. Carlos Gonçalves Linguagens de Programação
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. Prof. Carlos Gonçalves Linguagens de Programação
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 L.P.: Exemplos de Códigos: BASIC Prof. Carlos Gonçalves Linguagens de Programação
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 L.P.: Exemplos de Códigos: FORTRAN Prof. Carlos Gonçalves Linguagens de Programação
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 L.P.: Exemplos de Códigos: Assembly Prof. Carlos Gonçalves Linguagens de Programação
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); }; L.P.: Exemplos de Códigos: C Prof. Carlos Gonçalves Linguagens de Programação
Carregar compilador Carregar programa-fonte Executar compilação Fim O Processo de Compilação Carregar editor de textos Sim Há erros? Listar erros Não Editar ou modificar programa-fonte Compilação completa! Gravar programa-fonte em disco Prof. Carlos Gonçalves Linguagens de Programação
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. Prof. Carlos Gonçalves Linguagens de Programação
Documentos HTML: Estrutura tags <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> Saída na tela do browser Exemplo de codificação HTML Prof. Carlos Gonçalves Linguagens de Programação
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 Prof. Carlos Gonçalves Linguagens de Programação
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 Prof. Carlos Gonçalves Linguagens de Programação
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 Prof. Carlos Gonçalves Linguagens de Programação
Glossário Prof. Carlos Gonçalves Linguagens de Programação
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 Prof. Carlos Gonçalves Linguagens de Programação
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 Prof. Carlos Gonçalves Linguagens de Programação
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 Prof. Carlos Gonçalves Linguagens de Programação
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 Prof. Carlos Gonçalves Linguagens de Programação
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 Prof. Carlos Gonçalves Linguagens de Programação
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 Prof. Carlos Gonçalves Linguagens de Programação
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 Prof. Carlos Gonçalves Linguagens de Programação
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; Prof. Carlos Gonçalves Linguagens de Programação