Buscar

Trabalho de Fundamentos em Linguagem e Teoria da Computação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Trabalho de Fundamentos em Linguagem e Teoria da Computação
 Data: 26/06/2014
 Nome: Daniela Poletto
Fernanda Fernandes Peronaglio
 Curso: Ciências da Computação
�
Parte 1
1.1)
Paradigma Funcional: Baseado em funções matemáticas, é controlado por recursão e por expressões condicionais; não pela repetição iterativa. Tem como objetivo imitar funções matemáticas da forma mais fiel possível, portanto não são usadas variáveis ou instruções de atribuição. 
Paradigma Lógico: Tem como ideia central expressar programas na forma de lógica simbólica e usa um processo de inferência lógica para produzir resultados, ou seja, relações são caracterizadas como expressões da lógica matemática.
Paradigma Imperativo:baseia-se no conceito de comandos e utilização de variáveis. A construção do programa é dirigida pelas transformações que ocorrem nos dados. Este conceito foi baseado na maquina de Turing, abstração matemática que corresponde ao conjunto de funções computáveis proposta por Alan Turing buscando assim se aproximar ao máximo da ideia de funcionamento de uma máquina.
Paradigma Orientado a Objeto: Tem como principio a solução de problemas pela cooperação de vários elementos, da mesma forma que usamos a prestação de serviços de outras pessoas para resolver vários dos nossos problemas. A construção de programas é dirigida pelas mudanças de estados de entidades abstratas denominadas objetos, onde objetos são conjunto de repositórios de dados mais um conjunto de operadores capazes de transformar os valores dos dados nesses repertórios.
1.2) 
	Linguagem
	Paradigma Predominante
	Java 
	Paradigma Orientado a Objetos
	Javascript
	Paradigma Orientado a Objetos
	Php
	Paradigma Imperativo
	C
	Paradigma Imperativo
	C++
	Paradigma Orientado a Objetos
	Ruby
	Paradigma Orientado a Objetos
	VB .NET
	Paradigma Orientado a Objetos
	C#
	Paradigma Orientado a Objetos
	Python
	Paradigma Orientado a Objetos
	Lisp
	Paradigma Funcional
1.3) Fortran é uma linguagem imperativa, pois possuía as principais características do paradigma imperativo: variáveis, comandos de atribuições baseados nas operações de transferência dos dados e instruções, execução sequencial de instruções, e forma iterativa de repetição, além de ser baseada no conceito da máquina de Turing que utiliza a mudança de estados para resolver problemas. 
Parte 2
2.1)
a) A abstração é uma solução computacional que pode ser vista e tratada de maneiras diferentes. O programador que irá fazer a abstração precisa conhecer o seu funcionamento, já o usuário apenas utiliza da mesma, sem a necessidade de conhecer como cada processo é realizado.
b) O paradigma orientado a objeto usa a abstração quando comunica-se com seus objetos para obter resultados, porém não se importa com o processo realizado, apenas utiliza a resposta. O principio deste paradigma é a divisão dos serviços e das responsabilidades, reduzindo a complexidade de cada um. Já o paradigma imperativo não faz essa divisão, a responsabilidade é somente do programa, os modulos não são independentes, as abstrações são agrupadas, o que gera um programa mais complexo.
2.2)
program CALC;
VAR
num:integer;
total:integer;
BEGIN
	writeln ('Digite um numero');
	readln (num);
	total:=num – 10;
	BEGIN
	IF total > 0 THEN
		writeln('Maior que zero');
	END;
	BEGIN
	IF total <= 0 THEN
		writeln('Menor ou igual a zero');
	END;
	readln( );
END.
O ultimo readln( ) foi utilizado para manter o programa em execução, para que o usuário possa analisar o resultado sem que a tela se feche. Compilado em FREE PASCAL.
2.3)
a)
(LAMBDA(x y ) (+(*2 x) (*3 y))) 1 2)
O valor definido para x é 1 e para y é 2.
A operações são realizadas em ordem:
(2*1) = 2
(3*2) = 6
(2+6) = 8
retorna o valor 8.
b)
(NULL? '(A B C D E))
Verifica se o parametro é uma lista vazia, neste caso seria falso.
c)
(CAR '(A (B C) D E))
CAR retorna o primeiro elemento da lista, retornando A
d)
(CDR '(A (B C) D E))
CDR remove o primeiro elemento da lista e exibe o que restou dela, retornando ((B C ) D E )
2.4)
(DEFINE (menor a b)
	(if (< a b)
		(DISPLAY “a”)
	)
	(if (< b a)
		(DISPLAY “b”)
	)
)
2.5)
?- fala(ana,portugues) - YES
O programa consulta a regra fala(A,C) :- nasceu(A,B) , idioma(B,C) encontrando que B é Brasil e verificando que ambas são verdadeiras.
?-fala(yves,X) X=frances;
		X=ingles;
O programa faz a consulta nas duas instruções sobre fala e encontra a regra da língua do país onde yves nasceu e a que ele estudou.
?-fala(yves,frances) – YES
O programa consulta as regras no mesmo modelo da primeira pegunta.
2.6)
gosta(joao,X) :- gosta(X,vinho).

Outros materiais