Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Esquema e Lisp: Introdução à Scheme e Common Lisp, Notas de estudo de Cultura

Neste documento, aprenda sobre a história, propriedades e diferenças entre scheme e common lisp, duas importantes linguagens de programação funcional. Ensaie-se na linguagem scheme, desenvolvida no mit em 1975, e compreenda suas ideias inovadoras, como escopo estático, blocos aninhados, tail recursion, continuation e procedures de primeira ordem. Além disso, saiba mais sobre common lisp, resultado de uma reunião entre diferentes grupos da comunidade lisp em 1981, e explore suas características notáveis, como sistema hierárquico e extensível de tipos, clos, e suas propriedades desejáveis, como legibilidade, reusabilidade, modificabilidade e portabilidade.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 13/09/2008

eliezer-de-souza-da-silva-8
eliezer-de-souza-da-silva-8 🇧🇷

4.8

(9)

16 documentos

1 / 29

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Universidade Federal do Espírito Santo
Centro Universitário Norte do Espírito Santo
Scheme e Common Lisp
Eliezer Silva
Linguagens de Programação
21/11
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d

Pré-visualização parcial do texto

Baixe Esquema e Lisp: Introdução à Scheme e Common Lisp e outras Notas de estudo em PDF para Cultura, somente na Docsity!

Universidade Federal do Espírito SantoCentro Universitário Norte do Espírito Santo Scheme e Common Lisp

Eliezer Silva

Linguagens de Programação

Introdução ^ LISP: primeira linguagem de programaçãofuncional.^ ^

1958 – John McCarthy – MIT  Extensível.  Pletora de Dialetos: projetos guiados por instituições deensino, laboratórios de pesquisa, empresas e purasatisfação pessoal.  Mais influentes: MacLisp, Interlisp,ZetaLisp,Scheme,Common Lisp.  Common Lisp e Scheme são os mais influentes dialetosatuais

Scheme ^ Dialeto do LISP, desenvolvido por Guy Lewis SteeleJr. e Gerald Jay Sussman em 1975 no MIT. ^ Em 1981 passou a ser usado no ensino deprogramação (MIT, Yale, Indiana). ^ Sintaxe e Semântica simples, clara e com poucasregras. ^ Idéias novas: escopo estático, blocos aninhados,tailrecursion, continuation e procedures de primeira-ordem (lambda calculus).

Common Lisp ^ 1981: Encontro entre diferentes grupos dacomunidade LISP (MacLisp, Interlisp) ^ 1984: Common Lisp: The Language. GuySteele. Primeira Edição. ^ 1994: Ansi Standard. ^ Incorporou muito das outras versões doLISP. ^ Sistema Hierárquico e Extensível de Tipos. ^ CLOS.

Propriedades Desejáveis emLPs II. ^ Reusabilidade:

definições de funções

genéricas e polimórficas (abstração).Tipagem dinâmica e fraca. CLOS.  Modificabilidade:

Uso de funções

polimórficas que atuam sobre um conjuntogrande de dados. CLOS.  Portabilidade:

abstração da arquitetura da

máquina (inclusive o sistema de tiposnuméricos). CL tenta ser compatível sempreque possível com outros dialetos (MacLisp,Interlisp, Lisp Machine Lisp).

Paradigmas e Métodos deImplementação ^ Multiparadigma: funcional, imperativo,orientado a objetos, etc. ^ Interpretado: eval. ^ Compilado. CLISP, GCL, DrScheme.

Amarrações II ^ Ambiente de Amarração (environment):^ ^

Escopo Estático: Scheme.  Escopo Dinâmico: CL.

(defvar x 2)

^ Scheme: um único ambiente para todas variáveis(no mesmo escopo). ^ CL: namespace separado de funções e variáveis.Sintaxe especial: funções por parâmetro (# oufunction). (defun

x (x) (+ x 1))

^ Namespaces: Packages.

Definições I ^ Constantes e Variáveis:^ ^

Scheme:

(define

pi^ 3.1415) (set!

pi^ 3) (set!

sin^

^ CL (“locked” packages):

(setf

pi^ 3) (defun

sin^

(x)^ (+

x^ 1))

;;;^

erro

^ Tipos (CL):^ (deftype mod (n) ’(integer 0 (,n)))(deftype list () ’(or null cons))(deftype square-matrix (&optional type size)

(array ,type (,size ,size)))

(defstruct person

(name 'bill)(age 10));;

Valores e Tipos de Dados ^ Scheme: numbersymbol(atoms)charvectorpair (lists)stringportprocedure (function)

^ CL: numbersymbolcharacterLists

(conses) ArraysHash^

Tables ReadtablesPackagesPathnamesStreamsRandom-StatesStructuresFunctionsConditionsClassesMethodsGeneric

Functions

Tipos Numéricos ^ Common Lisp. Preocupação do Projeto emum sistema eficiente. ^ Number>Complex>Real>Rational>Integer ^ Exatos e Inexatos ^ Inteiros sem limite de tamanho. Sempre quepossível.

Funções são valores ^ Passados como parâmetros. ^ Atribuição^ ^

(define x 2)  (set! x sin)

^ Valor de Retorno.^ ^

(define (composta f g) (lambda (x) (f (g x))))

^ Sintaxe especial em CL

Alguns tipos do Common Lisp ^ Arrays: vetores, string, n-dimensionais. ^ Hash Tables: mapeamento de uma chave(dequalquer tipo) em um objeto. ^ Packages:

Expressões e Comandos ^ Linguagens Orientadas à expressão. ^ Poucos comandos e estão associados àparte imperativa da linguagem.^ ^

(set! a b)  (setf a b)  (set-car! ... ) etc

^ Expressões Primitivas e Derivadas

Expressões Primitivas ^ Referência de Variável. ^ Expressão Literal. ^ Chamada de Procedimentos. ^ Procedimentos. ^ Expressões Condicionais. ^ Atribuição.