Professional Documents
Culture Documents
Sistemas de Informao
Professores: Fabiano Fagundes Jackson Gomes
Segundo Aurlio:
Paradigma . [Do gr. Pardeigma, pelo lat. paradigma] S. m. 1. modelo, padro, estalo: "D. Lus de Meneses ....parece constituir o paradigma da sntese ideal .... entre a coragem militar e o academismo cultural." (Antnio Jos Saraiva e Oscar Lopes, Histria da Literatura Portuguesa, pp. 455-456.) 2. Gram. Modelo ou tipo de conjugao ou declinao gramatical.
Linguagem
" A linguagem o veculo pela qual expressamos nossos pensamentos e a relao entre esses pensamentos Nossa linguagem sutil e complexa. A natureza da linguagem realmente molda e modela a maneira como pensamos Um projeto de linguagem deve pelo menos fornecer meios que permitam a expresso compreensvel de algoritmos
Contextualizao
Dcada de 1950: primeira linguagem de programao de alto nvel Linguagem de Programao: notao formal para descrio de algoritmos em computador Paradigma de programao como um estilo Uma linguagem pode seguir mais de um paradigma (ex.: C++)
Domnios da Programao
Aplicaes Cientficas
Com os primeiros computadores (anos de 40) Preocupao com a performance Estruturas de dados simples Grande nmero de computaes aritmticas (geralmente com nmero reais) Arrays e laos de controle Exs: FORTRAN e ALGOL 60
Domnios da Programao
Aplicaes Comerciais
Dcada de 50 1: COBOL Planilha Eletrnicas (?) Sistemas de Banco de Dados (?)
Domnios da Programao
Inteligncia Artificial
rea abrangente das aplicaes de computador Computao simblica Listas encadeadas de dados 1 linguagem de programao desenvolvida para IA: LISP em 1959 PROLOG, Haskell, Eiffell, Scheme
Domnios da Programao
Programao de Sistemas (software bsico)
Linguagens de alto nvel orientadas para a mquina PL/S, BLISS, Extended Algol Unix - C
Domnios da Programao
Linguagens de Scripting
Foram desenvolvidas lentamente nos ltimos 25 anos A primeira foi a sh (shell) pequena coleo de comandos aos quais foram adicionadas variveis, instrues de controle de fluxo, funes e outras capacidades TCL usada associada a TK (TCL/TK) para aplicaes X Window PERL com o uso de CGI JavaScript
Domnios da Programao
Linguagens de Propsitos Especiais
RPG Usada em relatrios especiais APT Ferramentas de mquinas programveis GPSS Simulao de Sistemas
Principais paradigmas
Programao Procedural / Procedimental / Estruturada / Imperativa
Os programas so decompostos em passos que executam operaes mais complexas. Exemplos: Pascal, C
Principais paradigmas
Programao de Tipos Abstratos de Dados
Um TAD a principal unidade do programa; Exemplo: CLU
Principais paradigmas
Programao Declarativa (PD)
Enfatiza a descrio declarativa, ao invs da decomposio do problema em uma implementao algortmica. Exemplo: PROLOG, OPS5, CLIPS Linguagens lgicas e baseadas em regras
Linguagem de Programao
Linguagem (lngua ou idioma) o meio mais eficaz de comunicao entre pessoas Consiste em um conjunto de convenes e regras para apresentao de idias ou troca de informaes Na linguagem de programao a comunicao entre pessoa e computador e entre pessoas
Componentes da comunicao em LP
Computador: a mquina que executa o processo descrito atravs do programa Pessoa: programador, serve como origem da comunicao Processo: atividade que est sendo descrita Problema: sistema atual ou ambiente que inspira a comunicao
Outra definio
Linguagem de programao um conjunto de termos e de regras que permitem a formulao de instrues a um computador Elementos importantes
Vocabulrio: conjunto de smbolos Gramtica: conjunto de regras para se utilizar o vocabulrio
Semntica
Descrio da maneira que um programa, sintaticamente correto, interpretado ou executado; a preocupao o significado
Caractersticas [desejveis] de LP
Simplicidade: clareza e conciso semntica (conceitos e estruturas) e sinttica (representar um conceito apenas de uma maneira) Suporte para abstrao de dados: representao de um dado ou tipo de dado Expressividade: facilidade na representao de tipos
Caractersticas [desejveis] de LP
Ortogonalidade: interao entre conceitos, ou seja, o grau com que diferentes conceitos podem ser combinados uns com os outros, de maneira consistente Suporte manuteno e portabilidade: facilidade em alterar e manter programas Eficincia: eficcia na execuo do programa; traduo do programa; criao, teste e uso do programa
Classes e Geraes
Definio
Um programa uma abstrao da realidade; abstrao o processo de identificar as qualidades ou propriedades relevantes ou no do fenmeno que est sendo modelado
Classes e Geraes
Linguagem de Mquina: baseada em cdigo binrio, especfico para cada tipo de (micro)processsador Linguagem de Baixo Nvel: uso inicial da abstrao: cdigos binrios so substitudos por mnemnicos. Um assembler interpreta o cdigo e converte para binrio; tambm caracterstico de cada dispositivo fsico
Classes e Geraes
Linguagem de Alto Nvel: mais prxima linguagem humana; no requer conhecimento da arquitetura da mquina e deve ser portvel (independente de mquina); o programa (cdigo-fonte) traduzido para uma linguagem de mquina para poder ser executado, o resultado o programa (objeto) quando usado um compilador ou interpretador
1 Gerao
Linguagens baseadas na estrutura dos computadores; incio da dcada de 1960; Estruturas de controle dependem de instrues como goto; Procedimentos recursivos so exceo (Basic); Passagem de parmetro tipicamente por referncia
1 Gerao
Tipos primitivos so nmeros de ponto flutuante e fixo, caracteres e valores lgicos; Organizadores de estruturas so vetores e registros; Estruturas de dados no podem ser aninhadas (Cobol uma exceo) No h gerenciamento dinmico de memria
2 Gerao
Primeira linguagem: Algol-60; Melhorias s caractersticas da 1 Gerao:
vetores dinmicos; tipos definidos pelo usurio; introduo das estruturas de bloco e de controle estruturado, eliminando o uso de goto; Procedimentos recursivos; Tipo da passagem de parmetro: valor e referncia; Distino entre variveis locais e globais.
3 Gerao
nfase na simplicidade e eficincia: smbolo principal: Pascal Tipos de dados definidos pelo usurio; conjuntos e enumeraes; Estruturas de dados aninhadas, organizadas hierarquicamente; Estrutura de controle simplificadas: uso de for e case.
4 Gerao
Suporte programao concorrente; Melhoria na abstrao de dados: encapsulamento; Polimorfismo; Mecanismo de tratamento de excees; Controle e preciso de tipos numricos; Exemplos: Ada, Modula-2, Clu.
5 Gerao
Paradigmas principais: funcional, lgico e orientado a objetos. Exemplos: LISP, Prolog, Smalltalk.