Programao Funcional
Conceitos genericos e Introduo linguagens de programao Aula 1
Conceitos gerais
Conceitos gerais
Algumas definies
DADOS Para Bio apud Freitas (1997) dado um elemento da informao (um conjunto de letras ou dgitos) que, tomado isoladamente, no transmite nenhum conhecimento. INFORMAO Chiavenato(1999, p. 366) define informao como, [...] um conjunto de dados com um significado, ou seja, que reduz a incerteza ou que aumenta o conhecimento a respeito de algo.
MSc. Geraldo Carlos Nhadumbuque
Conceitos gerais
Algumas definies
Dado 34C MLA 39-60 Informao Temperatura Identificao duma viatura (marca/cor/reg.) Menina de Ouro em Moambique
Lurdes Mutola
MSc. Geraldo Carlos Nhadumbuque
Conceitos gerais
Algumas definies
Processo Uma sequncia semntica de operaes realizadas com a finalidade de produzir um resultado especfico.
input
Processo
output
Conceitos gerais
Conceito de algoritmo
Conceitos gerais
Conceito de algoritmo
Uma srie de procedimentos utilizados para a resoluo de um problema. SAWAYA Um conjunto finito de regras que prov uma sequncia de operaes para resolver um tipo de problema especfico[KNUTH] Seqncia ordenada, e no ambgua, de passos que levam soluo de um dado problema [TREMBLAY] Processo de clculo, ou de resoluo de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restries, as regras formais para a obteno do resultado ou da soluo do problema [AURLIO]
MSc. Geraldo Carlos Nhadumbuque
Conceitos gerais
Conceito de algoritmo
Objecto: Criar um um algoritmo para mostrar o resultado da diviso de dois nmeros.
Representar recorrendo a um pseudo-cdigo. 2. Representar atravs de um fluxograma.
1.
Conceitos gerais
Conceito de algoritmo
1. Representa utilizando um pseudo-cdigo
Algoritmo Dividir Incio declare N1, N2, D : inteiro Escreva(Digite dois nmeros) Leia(N1,N2) Se N2 = 0 Ento Escreva(Impossvel dividir) seno D N1 / N2 Escreva(D) Fim se Fim
Conceitos gerais
Conceito de algoritmo
2. Representa utilizando um fluxograma
Conceitos gerais
Conceito de programa
PROGRAMA Um plano completo para a soluo de um problema, mais especificamente, a sequncia completa de instrues de mquina e rotinas necessrias para resolver um problema. SAWAYA, (1999)
Linguagens de programao
Linguagens de programao
Linguagens de programao
Propsito de uma LP
Uma maior capacidade de resoluo de problemas; Desenvolver a habilidade de utilizao de uma LP; Possibilitar a escolha de uma LP apropriada; Ampliar a possibilidade de aprendizagem de novas LPs; Desenvolver a habilidade de criao de novas LPs.
Linguagens de programao
LP no processo de desenvolvimento
As linguagens de programao surgiram da necessidade de tornar o processo de desenvolvimento de software mais produtivo. Processo de desenvolvimento de software: Especificao de requisitos; Projeto do software; Implementao; Validao; Manuteno.
Linguagens de programao
Linguagens de programao
Especificao
Ao se criar uma LP necessrio definir como se faz para escrever programas nessa linguagem e como os programas vlidos devem se comportar. A especificao de uma LP requer a descrio de um lxico, de uma sintaxe e de uma semntica para a LP.
Linguagens de programao
Mtodos de Implementao
Todo e qualquer programa escrito em uma LP necessita ser traduzido para a linguagem mquina para ser executado. Segundo SEBESTA (1999), para isso pode se recorrer a trs mtodos:
Compilao; Interpretao; e Hbrido.
Linguagens de programao
Mtodos de Implementao
Compilao
Linguagens de programao
Mtodos de Implementao
Interpretao
Linguagens de programao
Mtodos de Implementao
Hbrido
Tipos de linguagens
Tipos de linguagens
Tipos de linguagens
LINGUAGEM Linguagem Mquina Linguagens de Baixo Nvel CARACTERSTICAS nica compreendida pelo computador. Especfica de cada computador. Utiliza mnemnicas para representar instrues elementares Ex.: Assembly Utiliza instrues prximas da linguagem humana de forma a facilitar o raciocnio. Ex.: Uso Cientfico : Fortran Propsito Geral : Pascal, C, Basic Uso Comercial : Cobol, Clipper Uso especfico : Lisp, Prolog
Tipos de linguagens
Tipos de linguagens
Ilustrao de um programa em linguagem mquina
Tipos de linguagens
Tipos de linguagens
Tipos de linguagens
Tipos de linguagens
Linguagem de alto nvel Linguagem de baixo nvel Linguagem mquina Hardware
Paradigmas de programao
Paradigmas
Paradigmas
Os paradigmas podem ser tipo imperativo ou declarativo.
Paradigmas
Imperativo
Declarativo
Estruturado
Orientado a Objetos
Concorrente
Funcional
Lgico
Paadigmas
Paradigma imperativo
computao como um processo que realiza mudanas de estados; Os conceitos fundamentais so de varivel, valor e atribuio; Variveis so vistas como sendo um conjunto de clulas de memria; O paradigma imperativo subdividido nos paradigmas estruturado, orientado a objetos e concorrente.
MSc. Geraldo Carlos Nhadumbuque
Paadigmas
Paradigma imperativo
Modelo computacional
Paadigmas
Paadigmas
Paadigmas
Paadigmas
Paadigmas
Paadigmas
Paradigma declarativo
Tipicamente, programas em linguagens declarativas so especificaes de relaes ou funes; No existem atribuies a variveis dos programas uma vez que as variveis declarativas so de fato incgnitas e no representam clulas de memria; Os interpretadores ou compiladores das LPs declarativas gerenciam a memria do computador.
Paadigmas
Paadigmas
Paadigmas
Paadigmas
Ex1: Pai(ana,jose), pai(jose,ana) Ex2: Avo(X,Z) Avo(X,Z) ::- pai(X,Y), pai(X,Y), pai(Y,Z) pai(Y,Z)
Paadigmas
Paadigmas
Paradigmas Paradigmas
Paadigmas
Rate % 18,156 17,141 10,23 9,115 6,597 4, 809 4,607 4,388 2,150 1,959 0,332
1 2 5 4 3 6 7 9 13 10
Fonte: TIOBE
End