Otavio Bergmann e Raphael Miollo Parte 2 – Investigação e apresentação.

Slides:



Advertisements
Apresentações semelhantes
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Advertisements

Programação em Java Prof. Maurício Braga
Complexidade de Algoritmos Recursivos
Augusto NevesJoão CarlosRodrigo Paula Linguagem de Programação C++ Componentes do Grupo.
Recursividade Prof. Rosana Palazon.
Interação entre objetos
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
1 Introdução (Informal) à Programação DI/FCT/UNL 1º Semestre 2004/2005.
Introdução (Informal) à Programação
Recursividade Prof. Alex F. V. Machado
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
Algoritmos e Estrutura de Dados I
Ricardo Jacobi Linguagem C Introdução Linguagens de Programação Fatores de Qualidade em Software Estilos de Programação Manutenção em Software Histórico.
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Pesquisa em Memória Primária
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
BCC101 – Matemática Discreta
Pesquisa em Memória Primária
PROGRAMAÇÃO MODULAR (com uso de subprogramas)
INTRODUÇÃO À PROGRAMAÇÃO
Rafael Pinto Frederico Corrêa
Programação Lógica: PROLOG
Curso Sistemas de Informação I Disciplina: Arquitetura de Software
Jess – the Rule Engine for the Java™ Platform
Complexidade de Algoritmos
Linguagens de Programação
Aula 3 Evolução da Principais Linguagens
Revisão da Linguagem C.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Paradigmas de programação
Análise Semântica e Representação Intermédia
PROGRAMAÇÃO I UNIDADE 1.
Linguagem de Programação C#
IAED Tagus, 2009/2010 Introdução à Programação em C (I)
Conceitos de Linguagem de Programação
CADEIA DE CARACTERES (Strings)
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Programação II Estruturas de Dados Aula 02 - continuação
Matlab Mini Curso PET 2012.
Linguagem Funcional 2 Linguagem Funcional 2 - LF2 Estende LF1 com funções de alta ordem Uma função passa a ser um valor O contexto inclui um único componente:
Paradigmas de Programação
Centro de Informática – UFPE
Augusto Sampaio e Paulo Borba Centro de Informática
Modelos de Paradigmas de programação
Professor: Márcio Amador
Técnicas de Desenvolvimento de Programas
Paradigma funcional.
PROGRAMAÇÃO ou LINGUAGEM C?
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Introdução à Linguagem C
Algumas notas sobre a linguagem de programação C
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
Inteligência Artificial Web Semântica
1 TEORIA DA COMPUTAÇÃO Motivação Licenciatura em Ciência e Tecnologia da Computação Licenciatura em Engenharia Informática e de Computadores (Prep.)
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
Métodos Formais.
Back-End Compilação aula-11-back-end.pdf.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
Programação Lógica com Prolog
Semântica de Linguagens de Programação
Analise de Algoritmos e Notação Assintótica
Introdução à Programação
Berilhes Borges Garcia Algoritmos Uma ferramenta para resolver um problema de computação bem- especificado (O espírito da computação) Exemplo: ordenação.
Influencias sobre o Projeto da Linguagem
Faculdade Pernambuca - FAPE Compiladores Abril/2007 Compiladores Abril/2007.
USP – ICMC – SSC SSC0300 2º Semestre 2015 Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Eletrônica ] 1 Prof. Dr. Daniel Rodrigo.
Aula Prática 5 Recursão Monitoria  Na linguagem C, como em muitas outras linguagens, uma função pode chamar a si própria.  Uma função assim.
Recursividade e análise Cristiano Arbex Valle Vinicius Fernandes dos Santos
Transcrição da apresentação:

Otavio Bergmann e Raphael Miollo Parte 2 – Investigação e apresentação

2.1.1 – Quem criou a linguagem? LISP foi inventado por John McCarthy em 1958, enquanto ele estava no Instituto de Tecnologia de Massachusetts(MIT). McCarthy publicou um artigo onde ele mostra que com alguns operadores simples e uma notação para funções é possível construir uma linguagem Turing para algoritmos. John McCarthy ( )

2.1.2 – Qual a motivação para a criação da linguagem? Os motivação para criação de LISP, segundo McCarthy era desenvolver uma linguagem algébrica para o processamento de listas para trabalho com IA(inteligência artificial) – Em que ano foi criada e como evoluiu a linguagem? LISP foi criada em 1958 e sua evolução foi de grande importância para as linguagens que surgiram posteriormente. Durante 1980s e 1990s, um esforço grande foi feito e surgiram numerosos dialetos do lisp(interlisp, Maclisp, ZetaLisp). Lisp influenciou pesadamente o inventor de SmallTalk.

A linguagem é usualmente implementada via interpretador, compilador, ou ambos? A linguagem LISP é interpretada, onde o usuário digita em uma linguagem formal definida e recebe de volta a avaliação de sua expressão. LISP é implementada via interpretador, porem todos os dialetos de LISP tem compiladores. Em algus dialetos o compilador é uma função que pode invocar a partir de código normal para transformar uma lista numa função invocável.

2.1.5 – Informe nomes, versões, URLs e descrições de duas implementações da linguagem. FranzLisp ( InterLisp ( ZetaLisp ( Scheme ( LeLisp ( AutoLisp ( MacLisp (

Algumas coisas que LISP trouxe: Uso de condicionais (if-then-else); Garbage Colletor; Recursividade; Tipos de dados; Variáveis são tratadas como ponteiros; Alguns fatos: o O nome LISP vem de List Processor; A primeira plataforma de popular para desenvolvimento de lojas virtuais, a ViaWeb foi inteiramente desenvolvida em LISP; LISP é a principal linguagem usada em estudos de inteligência artificial;

Prós: Programas mais concisos; Programas próximos de uma especificação matemática; Permite decompor problemas em componentes reutilizáveis; Contras: o Alguns algoritmos são mais eficientes quando implementados de forma imperativa; o Difícil de prever os custos de execução; o Compiladores/interpretadores mais complexos.

Funções de alta ordem podem receber como parâmetro ou retornar funções. Alguns exemplos são: Mapear, Filtrar, Reduzir. Ex: >map sqrt[100, 9, 25, 16] A função acima pega cada elemento da lista e obtém a sua raiz quadrada. Saída: [10, 3, 5, 4] 100 Map sqrt Entrada Saída

Implementação do algoritmo de ordenação quicksort com haskell. Exemplo em C void qsort(int a[], int lo, int hi) { int h, l, p, t; if (lo < hi) { l = lo; h = hi; p = a[hi]; do { while ((l < h) && (a[l] <= p)) l = l+1; while ((h > l) && (a[h] >= p)) h = h-1; if (l < h) { t = a[l]; a[l] = a[h]; a[h] = t; } } while (l < h); a[hi] = a[l]; a[l] = p; qsort( a, lo, l-1 ); qsort( a, l+1, hi ); } Exemplo em Haskell qsort [] = [] qsort (x:xs) = qsort (filter ( = x) xs)