Asynchronicity

Sometimes synchronicity is not enough

Ainda sobre o λ-cálculo: Leitura adicional

leave a comment »

Algo que esqueci no post anterior foi dar algumas indicações para quem quiser ler mais sobre o lambda-cálculo. Há muito material sobre o assunto na rede, mas alguns são melhores que outros. E alguns livros ainda têm conteúdo inacessível digitalmente. Seguem minhas indicações:

  • Lecture notes on functional programming, de Mike Gordon, começa com uma introdução sobre o lambda-cálculo (não tipado), depois trata sobre a linguagem ML. O cálculo é introduzido do ponto de vista da computação, pensando no cálculo como uma pequena linguagem de programação. Por isso, essa é provavelmente a melhor introdução para programadores.
  • Henk Barendregt é uma autoridade em lambda-cálculo, e seu livro sobre o assunto é uma das referências da área. O tutorial Introduction to Lambda Calculus, de Barendregt e Erik Barendsen, é uma introdução disponível gratuitamente em PDF.  Barendregt é um lógico, e seus trabalhos são bastante formais; dependendo da formação do leitor, isso pode ser uma vantagem ou desvantagem.
  • Barendregt também tem um artigo chamado The Impact of the Lambda Calculus in Logic and Computer Science, que fala sobre a influência e algumas aplicações do cálculo na lógica pura e na computação.
  • Sobre variações do lambda-cálculo tipado (e combinadores) uma boa referência é o livro Lambda-Calculus and Combinators: An Introduction de Hindley e Seldin. O livro enfatiza mais a teoria do cálculo do que as aplicações dos cálculos tipados para as linguagens de programação.
  • Para a aplicação dos lambda-cálculos tipados aos sistemas de tipos das linguagens de programação, a indicação é o excelente Types and Programming Languages de Benjamin Pierce. O livro começa com cálculos não-tipados e vai adicionando sistemas de tipos cada vez mais complexos (e interessantes), incluindo sistemas com inferência/reconstrução de tipos como o sistema Hindley-Milner usado nas linguagens ML e em Haskell. Além disso, o livro inclui código (em OCaml) e implementação de todos os cálculos estudados. Para quem quer estudar o lambda-cálculo do ponto de vista das linguagens de programação, e está disposto a investir em um livro, essa é provavelmente a melhor opção.
  • Finalmente, para quem quiser aprender jogando,  Alligator Eggs é um jogo que basicamente representa o mecanismo de substituição do cálculo com jacarés e ovos.

Isso deve ser leitura suficiente para se divertir por algumas semanas.

Advertisements

Written by Andrei Formiga

April 25, 2011 at 11:20 am

Posted in cstheory

Tagged with ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: