INTRODUÇÃO AOS PARADIGMAS DAS LINGUAGENS DE PROGRAMAÇÃO

Description

Mind Map on INTRODUÇÃO AOS PARADIGMAS DAS LINGUAGENS DE PROGRAMAÇÃO, created by cleversonsh on 10/04/2015.
cleversonsh
Mind Map by cleversonsh, updated more than 1 year ago
cleversonsh
Created by cleversonsh over 9 years ago
171
6

Resource summary

INTRODUÇÃO AOS PARADIGMAS DAS LINGUAGENS DE PROGRAMAÇÃO
  1. ASSIM COMO TODA A PARTE DE HARDWARE, SOFREU VÁRIAS MUDANÇAS AO LONGO DOS ANOS, A FÓRMA COMO SE PROGRAMA TAMBÉM MODIFICOU-SE, DE ACORDO COM A VISÃO DE CADA LINGUAGEM PROJETADA. CRIOU-SE TAMBÉM VÁRIOS PARADIGMAS DA PROGRAMAÇÃO.
    1. QUAL O SIGNIFICADO DE PARADIGMA?
      1. O TERMO SIGNIFICA MODELO, OU SEJA, A DEFINIÇÃO DE UM PADRÃO A SER SEGUIDO.
        1. O CONCEITO NASCEU EM 1900 A PRINCIPIO RELACIONAVA-SE SOMENTE A LINGUAGEM E COMUNICAÇÃO HUMANA, MAIS TARDE FOI UTILIZADO TAMBÉM NA COMPUTAÇÃO.
      2. O PARADIGMA DE PROGRAMAÇÃO, DEFINE A FÓRMA DE COMO FAZER A ESTRUTURAÇÃO DAS INSTRUÇÕES EM UMA DETERMINADA LING. UTILIZADA PELO PROGRAMADOR, AFIM DE DESENVOLVER UM PROG. CAPAZ DE REALIZAR DETERMINADAS TAREFAS.
        1. ATUALMETE É FORMADO POR DOIS GRUPOS PRICIPAIS E SUBDIVIDIDA EM NOVOS GRUPOS
          1. 2- PROGRAMAÇÃO DECLARATIVA
            1. É UM TIPO DE LINGUAGEM QUE O PROGRAMADOR DESCREVE, "Q META UMA TAREFA TEM", SEM ESCREVER O CÓDIGO P/ REALIZAÇÃO DA TAREFA.( EX:" Ñ DESCREVE COMO ELA "DEVERÁ SERÁ REALIZADA"). SENDO O OPOSTO DA IMPERATIVA.
              1. APRESENTA VÁRIAS VANTAGENS EM COMPARAÇÃO COM OUTRAS LINGUAGENS, ONDE É PRECISO REALMENTE ESCREVER TODO O CÓDIGO Q DEFINE O PROGRAMA E COMO ELE DEVE REALIZAR AS TAREFAS.
                1. SÃO PROGRAMAS FEITOS EM LING.DECLARATIVA SÃO MENORES SE COMPARADO COM PROG. FEITOS EM LING.IMPERATIVA
                  1. EXEMPLOS DE LINGUAGEM DECLARATIVA
                    1. HTML
                      1. SQL
                        1. SITE UTILIZADO NA MINHA PESQUIZA SOBRE ESTE ASSUNTO P/ MINHAS FUTURAS PESQUIZAS: http://pt.wingwit.com/P/computer-programming-languages/ 86807.html#.VSqcKrVFDmQ
                        2. PROLOG
                  2. 2.1- PROGRAMÃÇÃO FUNCIONAL
                    1. É UM PARADIGMA Q TRATA A COMPUTAÇÃO COMO UMA AVALIAÇÃO DE "FUNÇÃO MATEMÁTICA", EVITANDO "ESTADOS" OU "DADOS MÚTAVEIS".
                      1. DESTA FÓRMA UMA FUNÇÃO PÓDE OU Ñ TER "PARAMETROS" E UM SIMPLES VALOR DE RETORNO. ONDE OS "PARAMETROS" SÃO OS "VALORES DE ENTRADA" DA "FUNÇÃO" E O VALOR DE "RETORNO" É O RESULTADO DA FUNÇÃO.
                        1. A DEFINIÇÃO DE UMA "FUNÇÃO" DIZ COMO A FUNÇÃO SERÁ AVALIADA EM COMPARAÇÃO A OUTRAS FUNÇÕES.
                          1. EXEMPLO
                            1. A FUNÇÃO "f(x) = x^2 + 2 ) É DEFINIDA EM TERMOS DE FUNÇÕES DE "EXPONENCIAÇÃO" E "ADIÇAO". DO MESMO MODO A LING. DEVE OFERECER FUNÇÕES BÁSICAS Q Ñ REQUEREM DEFINIÇÕES ADICIONAIS.
                              1. EX: DE LING. Q'SE UTILIZAM DESSA ABORDAGEM
                                1. APL, F#
                                  1. LISP, ML
                                    1. HASKELL
                                      1. OCAML
                                2. VANTAGEM
                                  1. POSSUI MAIOR TRANSPARENCIA REFERENCIAL, JÁ Q O PROG. É COMPOSTO POR FUNÇÕES, FICANDO FÁCIL, VERRIFICAR O CÓDIGO.
                                    1. DESVANTAGEM
                                      1. Ñ OFERECE ALOCAÇÃO EXPLICITA DE MEMÓRIA E NEM DECLARAÇÃO EXPLICITA DE VÁRIAVEIS, NECESSÁRIOS P/ SANAR PROBLEMAS REAIS.
                                3. 2.2- PROGRAMAÇÃO LÓGICA
                                  1. É UM PARADIGMA Q FAZ USO DA LÓGICA MATEMÁTICA, P/ RESOLVER PROBLEMAS POR MEIO DE VALORES OU OBJETOS E RELAÇÕES ENTRE OS MESMOS, FORMULANDO AS SUAS PROPOSIÇÕES E REGRAS. (PROPOSTA PELA PRIMEIRA VEZ POR: "JOHN McCarthy" EM "1958" P/ USO DENTRO DA PROGRAMAÇÃO).
                                    1. A "PRIMEIRA LING.D'PROG. LÓGICA" FOI O "PLANNER" A QUAL PERMITIA A INVOCAÇÃO ORIENTADA A PADRÕES DE PLANOS PROCEDIMENTAIS DE ASSERCÕES E OBJETIVOS. FAZIA-SE NESCESSÁRIO DEVIDO AO SISTEMAS COM "MEMÓRIA MUITO LIMITADAS", Q ERAM AS ÚNICAS DISPONIVEIS QUANDO FOI DESENVOLVIDO A LING.
                                      1. USAVA "ESTRUTURAS DE CONTROLE" DE "BACKTRACKING", Q APENAS UM CAMINHO COMPUTACIONAL ERA ARMAZENADO POR VEZ.
                                        1. O "PROLOG" FOI A "SEGUNDA" ELE FOI DESENVOLVIDO NUMA FÓRMA SIMPLIFICADA DO "PLANNER", Q PERMITIA A INVOCAÇÃO ORIENTADA A PADRÕES APENAS APARTIR DE OBJETIVOS (TBM FOI BASEADO EM "BACKTRACKING").
                                          1. APARTIR DO "PROLOG" FORAM DESENVOLVIDAS AS SEGUINTES LING:
                                            1. MERCURY, VISUAL PROLOG, OZ E FRILL.
                                          2. APARTIR DO "PLANNER" FORAM DESENVOLVIDAS OUTRAS LING. DENTRE ELAS PODEMOS DESTACAR:
                                            1. QA-4, POPLER,CONNIVER E QISP.
                                          3. VANTAGEM
                                            1. DESVANTAGEM
                                              1. PODE HAVER "EXPLOSÃO COMBINATORIAL" DA BASE DE CONHECIMENTO LEVANDO AO DESPERDÍCIO DE RECURSO COMPUTACIONAIS.
                                              2. MUITO UTEIS EM PROBLEMAS Q POSSAM SER RESOLVIDOS POR MEIO DE DEDUÇÃO OU INFERÊNCIA
                                            2. 2.3- PROGRAMAÇÃO RESTRITIVA
                                              1. NASCEU DA PROGRAMAÇÃO LÓGICA, MOTIVO PELO QUAL VÁRIOS AUTORES A APONTAM COMO PARTE DA MESMA. HOJE JÁ EXISTEM IMPLEMENTAÇÕES BASEADAS EM "PROG.FUNCIONAL" (COMO EM "OZ") E NA "PROG.IMPERATIVA" (COMO EM "KALEIDOSCOP).
                                                1. SE REFERE AO USO DE RESTRIÇÕES NA CONSTRUÇÃO DAS RELAÇÕES ENTRE VARIÁVEIS, DE FÓRMA GERAL AS RESTRIÇÕES SÃO IMPLEMEMTADAS COMO UMA EXTENSÃO DE UMA LING. JÁ EXISTENTE.
                                                  1. SEU USO PÓDE SER NECESSÁRIO NOS PROBLEMAS CUJA SOLUÇÃO POSSA SER RESTRITA A UM NÚMERO DE VALORES. ESSE TIPO DE PROBLEMA É CHAMADO DE "CSP"(CONSTRAIT SATISFACTION PROBLEM) NO QUAL SÃO DADOS:
                                                    1. .UM CONJUNTO FINITO DE VARIÁVEIS
                                                      1. .UMA FUNÇÃO Q MAPEIA CADA VARIÁVEL A UM DOMINIO FINITO
                                                        1. .UM CONJUNTO FINITO DE RESTRIÇÕES
                                                2. 3.0- LING. DE PROG. MULTIPARADIGMA
                                                  1. É A LING. Q SUPÓRTA MAIS DE UM PARADIGMA DE PROG. A IDÉIA DESTA LING. DE PROG. É FORNECER UM "FRAMEWORK" NO QUAL O PROGRAMADOR PÓDE TRABALHARA COMO VÁRIOS ESTILOS DE PARADIGMAS SIMULTANEAMENTE, MISTURANDO-OS LIVREMENTE.
                                                    1. BASEIA-SE TAMBÉM NA IDÉIA DE QUE NENHUM PARADIGMA POR SI SÓ, CONSEGUE RESOLVER A TODOS OS PROBLEMAS DA MANEIRA MAIS ELEGANTE OU MESMO EFICIENTE.
                                                      1. UM EXEMPLO DE LING. MULTIPARADIGMA É O:
                                                        1. C++
                                                          1. PERMITE A PROG. ESTRUTURADA, PROG. ORIENTADA A OBJETO E PROG. CONCORRENTE.
                                                            1. VANTAGEM
                                                              1. DESVANTAGEM
                                                                1. POR INCORPORAR VÁRIAS LING. PODE SER DE DIFICIL COMPREENSÃO.
                                                                2. O PROGRAMADOR PODE USAR O PARADIGMA Q PREFERIR EM SUA EMPLEMENTAÇÃO.
                                                              2. OUTRAS
                                                                1. GROOVY, OZ,RUBBY E SCALA
                                              2. 1- PROGRAMAÇÃO IMPERATIVA
                                                1. NO PARADIGMA IMPERATIVO, HÁ GRANDE PREUCUPAÇÃO COM O DETALHAMENTO E FUNCIONAMENTO DO PROGRAMA
                                                  1. É VISTO COMO UM CONJUNTO DE ROTINAS E SUBROTINAS (TAMBÉM CONHECIDAS COMO "PROCEDURAL OU PROCIDIMENTAL") ENFATIZAN-SE AS MUDANÇAS DE ESTADO DO PROG. (REGIST. POR MEIO DA VAR. GLOBAIS E LOCAIS)
                                                    1. A UM FOCO MAIOR EM COMO UM "PROG. DEVE EXEC. UMA TAREFA", AO INVÉS DE FOCAR "ENQUE O PROG. DEVE FAZER.
                                                  2. 1.1- PROGRAMAÇÃO ESTRUTURADA
                                                    1. O PROGRAMADOR DEVE ESCREVER TODO O SEU PROG. POR MEIO DE INSTRUÇÕES, ESTRUTURAS DE DADOS E SUBROTINAS.
                                                      1. ALGUMAS LING. DE PROG. CONSIDERADAS ESTRUTURADAS SÃO:
                                                        1. PASCAL, C, COBOL E FORTRAN.
                                                          1. VANTAGENS
                                                            1. GERELMENTE SÃO LING. FACEIS DE SEREM APRENDIDAS , JÁ Q ENVOLVE UM MENOR NÚMERO DE COCEITOS DISTINTOS EM COMPARAÇÃO A OUTROS PARADIGMAS. PERMITE A MODULARIZAÇÃO: "OU SEJA A DIVISÃO EM MÓDULOS INDEPENDETES LÓGICOS E FISICAMENTE, FACILITANDO A CRIAÇÃO DE SISTEMAS E A MANUTENÇÃO DOS MESMOS". "UTEIS NOS PROBLEMAS + SIMPLES.
                                                            2. DESVANTAGENS
                                                              1. APRESSENTA NIIVEIS MAIORES DE DIFICULDADE, QUANDO NECESSITA REPRESENTAR SOLUÇÕES "PRÁTICAS NO MUNDO REAL", Q NA SUA MAIORIA SÃO MAIS COMPLEXOS. APRESENTAM TBM DIFICULDADES EM SE MANTER QUANDO EMPREGADO EM PROBLEMAS MAIS COMPLEXOS, GERALMENTE PROBLEMAS ONDE CONCEITOS COMO HERANÇA E POLIMORFISMO PODERIAM AUDAR A ABSTRAIR PARTE DOS MESMOS.
                                                        2. 1.2- PROGRAMAÇÃO ORIENTADA A OBJETOS
                                                          1. É CONSTITUIDO POR 4 PILARES
                                                            1. ABSTRAÇAO
                                                              1. CONSISTE EM UM DOS PONTOS MAIS IMPORTANTES DENTRO DA LING. COMO ESTAMOS REPRESENTANDO UM OBJETO REAL, PRECISA SER IMAGINADO O Q ELE IRA REALIZAR DENTRO DO SISTEMA. "3 PONTOS" PRECISAM SER "LEVADOS EM CONCIDERAÇÃO".
                                                                1. 1_ É PRECISO DAR UMA "IDENTIDADE" "ÚNICA AO OBJETO A SER CRIADO DENTRO DO SISTEMA, P/ Q Ñ HAJA CONFLITOS. (NA MAIOR PARTE DAS LING. É UTILIZADO O CONCEITO DE "PACOTES" OU "NAMESPACES" ONDE O NOME PODE SER REPETIDO DENTRO DO SISTEMA, MAIS PRECISA SER ÚNICO DENTRO DO PACOTE.
                                                                  1. 2_ PRECISA-SE DEFENIR AS "CARACTERISTICAS" E OS ELEMENTOS Q O DEFINAM. ESSAS CARCT. SÃO NOMEADAS "PROPRIEDADES". EX: (PROP. DE UM OBJ. "CACHORRO" PODERIAM SER "TAMANHO", "RAÇA" E "IDADE".
                                                                    1. 3_ É DEFINIR AS AÇÕES Q O OBJETO IRÁ EXECUTAR. ESSES AÇÕES SÃO CHAMADAS DE "MÉTODOS". ESSES POR SUA VEZ PODEM SER BEM "VARIÁVEIS", DESDE "ACENDER()" EM UM OBJETO "LÂMPADA" ATÉ "LATIR" EM UM OBJ. "CACHORRO".
                                                                2. ENCAPSULAMENTO
                                                                  1. É UMA DAS "PRINCIPAIS TÉCNICAS" Q DEFINE A PROGRAMAÇÃO ORIENT. A OBJ. ADICIONAM SEGURANÇA Á APLICAÇÃO, POIS "ENCONDE" AS "PROPRIEDADES", CRIANDO UMA "ESPÉCIE DE CAIXA PRETA".
                                                                    1. A MAIOR PARTE DAS LING.OR.OBJT. IMPLEMENTAM ESSE "ENCAPSULAMENTO" BASEADO EM PROPRIEDADES "PRIVADAS", LIGADAS A MÉTODOS ESPEC. CHAMADO "GETTERS" E "SETTERS". ESSA ATITUDE EVITA O ACESSO DIRETO AS PROPRIEDADES DO OBJETO, ADICIONANDO UMA CAMADA DE SEGURANÇA A APLICAÇÃO.
                                                                      1. P/ FAZER UMA "COMPARAÇÃO" COM O Q VEMOS NO "MUNDO REAL", Q TEMOS ENCAPSULAMENTO EM OUTROS ELEMENTOS. "EX:"(QUANDO CLICAMOS NO BOTÃO LIGAR DA TV, Ñ SABEMOS O Q ESTÁ ACONTECENDO INTERNAMENTE. PODEMOS DIZER ENTÃO Q O PROCESSO ESTÁ ENCAPSULADO).
                                                                    2. HERANÇA
                                                                      1. DEFINE A POSSIBILIDADE DA "REUTILIZAÇÃO DO CÓDIGO", INDEFINIDAS VEZES, ESSA CARACTRISTICA "OTMIZA" A PRODUÇÃO DA APLICAÇÃO.
                                                                        1. EX: P/ ENTERDERMOS VAMOS IMAGINAR UMA FÁMILIA: "EX. A "CRIANÇA HERDA" AS "CARACTERISTICA" DE SEUS "PAIS". OS "PAIS" HERDAM ALGO DOS "AVÓS", O Q FAZ CONQUE A CRIANÇA TBM O FAÇA, ASSIM SUCESSIVAMENTE.
                                                                          1. A HERANÇA PODE VÁRIAR DE LING/LING, EM ALGUMAS COMO, "C++" HÁ A QUESTÃO DA HERANÇA "MULTIPLA", HERDADE DE "VÁR. ANCESTRAIS".
                                                                        2. POLIMORFISMO
                                                                          1. OUTRO PONTO ESSÊNC. DA PROGRAMAÇÃO ORIENTADA A OBJETOS
                                                                            1. COMO VEMOS NA NATUREZA EXISTEM ANIMAIS Q SÃO CAPAZES DE ALTERAR SUA FÓRMA CONFORME A NESCESSIDADE E É DESSA IDÉIA Q VEM O "POLIMORFISMO".
                                                                              1. COMO SABE-SE OS OBJETOS "FILHOS" HERDAN AS "CARACT. E AÇÕES DE SEUS ANSESTRAIS", ENTRETANTO, EM ALGUNS CASOS AS AÇÕES P/ UM MESMO MÉTODO SEJA DIFERENTE. (PORTANTO POLIMORFISMO CONSISTE NA ALTERAÇÃO DO FUNCIONAMENTO INTERNO DE UM MÉTODO HERDADO).
                                                                                1. EXEMPLO COMUN: TENSE UM OBJETO GENÉRICO "REFRIGERADOR" Q POSSUI UM MÉTODO AÇÃO, "LIGAR()". TEMOS DOIS OBJETOS DISTINTOS "TV" E "GELADEIRA" Q Ñ IRÃO LIGAR DA MESMA FÓRMA. ASSIM PRECISAMOS, P/ CADA UMA DAS CLASSES FILHAS,REESCREVER O MÉTODO "LIGAR()".
                                                                            2. VANTAGENS
                                                                              1. DESVANTAGENS
                                                                                1. APRESENTA UM MAIOR NÚMERO DE CONCEITOS E ABSTRAÇÕES NESCESSÁRIO EM COMPARAÇÃO COM Á PROGRAMAÇÃO "ESTRUTURADA", O Q DIFICULTA O APRENDIZADO, DEVIDO SUA COMPLEXIDADE.
                                                                                2. ATRAVÉS DESTE CONCEITO CONCEGUIU-SE UMA MELHOR ORGANIZAÇÃO DO CÓDIGO, GERELMENTE SEPARADO EM ""CLASSES" E "BLIBLIOTÉCAS", OUTRA VANTAGEM É O REAPROVEITAMENTO DO CÓDIGO POR MEIO DO CONCEITO HERANÇA.
                                                                      2. 1.3- PROGRAMAÇÃO CONCORENTE
                                                                        1. ATRAVÉS DO DESENVOLVIMETO DE NOVA TECNOLOGIAS, SURGIU UM NOVO CONCEITO, "PARALELISMO", POSSIBILITANDO A EXECUÇÃO DE MAIS DE UMA TAREFA PARALELAMENTE, SEJA POR VÁRIOS NÚCLEOS DE PROCESSAMENTO OU UM SÓ, EXECUTANDO ASSIM O PARALELISMO "EMULADO.
                                                                          1. ASSIM A PROG. CONCORENTE VEIO, P/ ESTUDAR E ORIENTAR COMO CRIAR PROGRAMAS VISANDO ESSE CENARIO, ONDE VÁRIOS PROCESSOS SÃO EXECUTADOS SIMULTANEAMENTE DISPUTANDO ASSIM O USO DE MEMÓRIA E A PRÓPRIA CAPACIDADE E PROCESSAMENTO.
                                                                            1. VÁRIAS LING. OFERECEM SUPORTE A PROGRAMAÇÃO CONCORENTE. DENTRE ELAS ESTÃO:
                                                                              1. JAVA
                                                                                1. C, C++ E C#
                                                                                  1. OBJECT PASCAL
                                                                                    1. COMO VC DEVE TER PERCEBIDO UMA MESMA LINGUAGEM PÓDE OFERECER SUPORTE A MAIS DE UM SUBPARADIGMA
                                                                                      1. VANTAGENS
                                                                                          1. GANHO NO DESEMPENHO JÁ Q HÁ UM MELHOR APROVEITAMENTO DE TODOS OS RECURSOS COMPUTACIONAIS
                                                                                          2. DESVANTAGENS
                                                                                            1. PROGRAMAÇÃO + COMPLEXA, SUCETIVEIS A EROS DA PRÓPRIA CONCORRÊNCIA, DIFICIL DEPURAÇÃO PELO ASPECTO Q Ñ DETERMINA Q SOLUÇÃO TOMAR.
                                                                            Show full summary Hide full summary

                                                                            Similar

                                                                            Programação
                                                                            Prepara Palhoça
                                                                            Mapa Mental - Algoritmos e Programação
                                                                            Marcos Santos2025
                                                                            Mapa Mental de Revisão de Algoritmos e Programação I
                                                                            José Toniazzo
                                                                            Linguagens de Programação
                                                                            Lucas Miranda
                                                                            PROGRAMAÇÃO
                                                                            Guilherme Toniello
                                                                            LINGUAGEM DE PROGRAMAÇÃO I
                                                                            ailtonmidias
                                                                            Lógica de Programação- Dados
                                                                            Gabriela Alves
                                                                            006A - Linguagem de Programação - C# - Fundamentos
                                                                            Ethelberto Mello
                                                                            Prova Linguagem de Programação 1 bimestre
                                                                            Alexandre Nascimento
                                                                            Algoritmos e Lógica de Programação
                                                                            andriellicm
                                                                            Paradigmas das linguagens de programação
                                                                            Kaue Storch