Baixe o app para aproveitar ainda mais
Prévia do material em texto
Paradigmas de Programação PARADIGMAS DE PROGRAMAÇÃO Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Histórico de Linguagens de Programação Bacharelado em Ciência da Computação Paradigmas de Programação Objetivos • Geral: – Estudar as características dos principais modelos de programação quanto a estruturação, interação e a relação entre as linguagens de programação. Estudar os tipos de técnicas de implementação utilizados para o desenvolvimento de programas e solução de problemas. • Específicos: – Estudar os custos de implementação; – Comparar técnicas entre linguagens de programação; – Estudar as estruturas conceituais para resolver problemas; – Entender alguns dos principias conflitos entre os recursos de linguagens. 2 Paradigmas de Programação Plano de Ensino • 1. Histórico de linguagens de programação – 1.1. Motivação – 1.2. Histórico – 1.3. Paradigmas de programação 3 Paradigmas de Programação Motivação • Adquirir habilidades de expressar ideias; • A profundidade da soluções está relacionada pelos recursos da linguagem com o qual está trabalhando; • Avanço do poder computacional e das tecnologias; • Aperfeiçoa-se a compreensão do significado da implementação; • Aprimora-se a habilidade de aprender novas linguagens. 4 Paradigmas de Programação Histórico 1950................................................................................................. 1960................................................................................................. 1970................................................................................................. 1980................................................................................................. 1990................................................................................................. 5 OO Imperativo Funcional Lógico FORTRAN PROLOG Godel LISP ML Haskel Miranda ALGOL-60 COBOL PL BASIC C ALGOL-60 Pascal Ada Modula2 DBASE II SIMULA Smalltalk C++ Java Delphi Paradigmas de Programação Paradigmas de Programação • Programação Imperativa – Fortran, Pascal, PL, C • Programação Orientada a Objetos – Java, C++, Smalltalk • Programação Funcional – Lisp, Haskel • Programação Lógica – Prolog 6 Paradigmas de Programação Paradigma Imperativo • Primeiro paradigma que surgiu • Programas desenvolvidos por variáveis e comandos • Também denominado de paradigma procedural • Vantagens: – Eficiência (modelo de Von Neumann) – Modelagem “natural” de aplicações do mundo real – Paradigma dominante • Problemas: – Relacionamento indireto E/S ocasionando difícil legibilidade, erros durante manutenção 7 Paradigmas de Programação Paradigma Orientado a Objetos • É um sub-paradigma do imperativo • O diferencial é a metodologia quanto a modelagem do sistema • É estruturada em módulos (classes) que agrupam operações (métodos) • Vantagens: – Todas as do paradigma imperativo – Classes: modularidade, reusabilidade e extensibilidade • Problemas: – Semelhantes ao do imperativo 8 Paradigmas de Programação Paradigma Funcional • Modelagem por funções que descrevem relações explicitas e precisa • Estilo declarativo sem comandos como atribuição • Vantagens: – Manipulação de programas mais simples – Prova de propriedade – Transformações de otimização • Problemas: – Mecanismos primitivos de E/S 9 Paradigmas de Programação Paradigma Lógico • Modelagem com relações entre E/S • Estilo declarativo mas na prática assume características imperativas • Vantagens: – Todas do funcional – Alto nível de abstração • Problemas: – Todos do paradigma funcional – Não possuem tipos de dados 10 Paradigmas de Programação Características importantes em LP Legibilidade É o quanto o código é de fácil leitura e compreensão, quanto maior a legibilidade, mais fácil será de entender o código e achar erros de programação. Por exemplo o uso do goto (como o switch, case em C), dificulta o acompanhamento lógico da leitura do código, ou também o operador ‘*’ em C, que é usado tanto para operação de multiplicação quanto para uso de ponteiros. (Mattos, Renato. Linguagem de Programação). 11 Paradigmas de Programação Características importantes em LP Confiabilidade É o quanto pode-se confiar em um código de uma linguagem, ou seja, uma linguagem com uma boa confiabilidade, não propicia erros de programação, assim sendo a confiabilidade está relacionada a legibilidade. Quando uma linguagem possui recurso de tratamento de exceções, também aumenta a confiabilidade, pois é mais difícil o programador esquecer de tratar a exceção ou de tratar de forma errada. (Canalle, Gabrielle K. ; de Araújo C. Everton. C/C++ e Java: Principais Características). 12 Paradigmas de Programação Características importantes em LP Eficiência É o quanto os códigos são mais eficientes, atingem seus objetivos de maneira rápida, segura. Essa característica pode variar de código para código, um site de um banco, por exemplo, é preciso ser seguro, rápido, de fácil acesso, de fácil uso, etc. Essas características são critérios de eficiência. 13 Paradigmas de Programação Características importantes em LP Facilidade de aprendizado Está diretamente relacionado à legibilidade, pois se um código não tem boa legibilidade, não tem uma fácil compreensão do código, e não terá um aprendizado fácil. Facilidade de Aprendizado é o quanto é simples para algum programador que não conheça a linguagem, aprende-la. Uma linguagem com uma boa facilidade de aprendizado, tem uma boa legibilidade e é simples de entende-la. 14 Paradigmas de Programação Características importantes em LP Ortogonalidade É a capacidade da linguagem de programação de deixar o programador usar seus conceitos básicos sem que se tenha efeitos não desejados ou aleatórios, ou seja, quanto menos exceções de código a linguagem permite. Por exemplo a não necessidade de declaração do tipo da variável, é ruim tanto para a legibilidade quanto para a ortogonalidade. (Mattos, Renato. Linguagem de Programação). 15 Paradigmas de Programação Características importantes em LP Modificabilidade São as facilidade oferecidas pela linguagem para que se mude uma parte do código tendo que mudar o mínimo possível as outras partes. Por exemplo uma linguagem Orientada a Objetos possui essa característica, pois é uma característica forte do próprio paradigma, outro exemplo são as constantes que algumas linguagem permitem ser declaradas, assim se for necessário mudar a constate, muda-se uma vez na sua declaração e não no seu uso. (Mattos,Renato. Linguagem de Programação). 16 Paradigmas de Programação Características importantes em LP Portabilidade É a capacidade do código de fazer a mesma coisa em diferentes plataformas ou sistemas operacionais independentemente da ferramenta utilizada para traduzi-lo. Assim um mesmo programa pode ser utilizado em diversos ambientes e situações sem que seja necessário fazer uma reescrita de código para adaptá-lo em um novo ambiente ou situação (Mattos,Renato. Linguagem de Programação). 17 Paradigmas de Programação Características importantes emLP Reusabilidade É a capacidade de se utilizar o mesmo código, ou trecho do código em outra situação, outra característica forte do paradigma orientado a objetos, assim as linguagem que seguem a esse paradigma são de alta reusabilidade. Essa é uma característica muito boa que se faz ganhar bastante tempo e consequentemente, dinheiro quando se trata de se desenvolver vários softwares. 18 Paradigmas de Programação Características importantes em LP 19 x Paradigmas de Programação Bibliografia da Disciplina 20 BIBLIOGRAFIA : PRATT, T. W., ZELKOVITZ, M. Programming Languages: Design and Implementation. 4ªed. Prentice Hall, 2001. ISBN 0130276782. MICHELL, JOHH C. Concepts in Programming Languages. Cambridge University Press, 2003. SEBESTA, R.W. Conceitos de Linguagens de Programação. 5a ed. Editora Bookman. 2003. ISBN 8536301716. VAREJÃO, F.M. Linguagens de Programação. Editora Campus. 2005. ISBN 8535213171. Paradigmas de Programação PARADIGMAS DE PROGRAMAÇÃO Prof. Claudinei Dias email: prof.claudinei.dias@gmail.com Histórico de Linguagens de Programação Bacharelado em Ciência da Computação
Compartilhar