/paip-lisp-pt-br

Tradução para o português do livro "Paradigms of Artificial Intelligence Programming" de Norvig.

Primary LanguageCommon LispMIT LicenseMIT

Paradigms of Artificial Intelligence Programming (pt-br)

PAIP

Este é um repositório de código aberto é uma versão no português (pt-br) do livro Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp by Peter Norvig (1992), e o código contido nele. Os direitos autorais foram revertidos para o autor, que o compartilhou aqui sob licença do MIT.

Você pode também querer conhecer o repositório do livro oficial em inglês.

ATENÇÃO!

Esse repositório está em desenvolvimento, algumas partes podem ainda não estarem traduzidas, ou inexistentes comparado ao repositório oficial em Inglês.

O seu tradutor @noloop está estudando inglês, aproveitou a oportunidade para estudar o livro e também praticar o inglês ao mesmo tempo, caso perceba algo de errado, não deixe de me alertar abrindo um novo problema, você também pode abrir um problema se deseja ajudar com este repositório.

O Livro

O livro também está disponivel nesses formatos:

Índice

PAIP Lisp na TV. Veja também: errata, comentários, retrospectiva.

Arquivos Lisp

Os arquivos de código Lisp estão listados aqui:

CP Nome do Arquivo Descrição
- examples.lisp A list of example inputs taken from the book
- tutor.lisp An interpreter for running the examples
- auxfns.lisp Auxiliary functions; load this before anything else
1 intro.lisp A few simple definitions
2 simple.lisp Random sentence generator (two versions)
3 overview.lisp 14 versions of LENGTH and other examples
4 gps1.lisp Simple version of General Problem Solver
4 gps.lisp Final version of General Problem Solver
5 eliza1.lisp Basic version of Eliza program
5 eliza.lisp Eliza with more rules; different reader
6 patmatch.lisp Pattern Matching Utility
6 eliza-pm.lisp Version of Eliza using utilities
6 search.lisp Search Utility
6 gps-srch.lisp Version of GPS using the search utility
7 student.lisp The Student Program
8 macsyma.lisp The Macsyma Program
8 macsymar.lisp Simplification and integration rules for Macsyma
9-10   (functions from these chapters are in auxfns.lisp)
11 unify.lisp Unification functions
11 prolog1.lisp First version of Prolog interpreter
11 prolog.lisp Final version of Prolog interpreter
12 prologc1.lisp First version of Prolog compiler
12 prologc2.lisp Second version of Prolog compiler
12 prologc.lisp Final version of Prolog compiler
12 prologcp.lisp Primitives for Prolog compiler
13 clos.lisp Some object-oriented and CLOS code
14 krep1.lisp Knowledge Representation code: first version
14 krep2.lisp Knowledge Representation code with conjunctions
14 krep.lisp Final KR code: worlds and attached functions
15 cmacsyma.lisp Efficient Macsyma with canonical form
16 mycin.lisp The Emycin expert system shell
16 mycin-r.lisp Some rules for a medical application of emycin
17 waltz.lisp A Line-Labeling program using the Waltz algorithm
18 othello.lisp The Othello playing program and some strategies
18 othello2.lisp Additional strategies for Othello
18 edge-tab.lisp Edge table for Iago strategy
19 syntax1.lisp Syntactic Parser
19 syntax2.lisp Syntactic Parser with semantics
19 syntax3.lisp Syntactic Parser with semantics and preferences
20 unifgram.lisp Unification Parser
21 grammar.lisp Comprehensive grammar of English
21 lexicon.lisp Sample Lexicon of English
22 interp1.lisp Scheme interpreter, including version with macros
22 interp2.lisp A tail recursive Scheme interpreter
22 interp3.lisp A Scheme interpreter that handles call/cc
23 compile1.lisp Simple Scheme compiler
23 compile2.lisp Compiler with tail recursion and primitives
23 compile3.lisp Compiler with peephole optimizer
23 compopt.lisp Peephole optimizers for compile3.lisp

Executando o Código

Não existe um "aplicativo" único para executar. Em vez disso, há uma coleção de arquivos de código fonte, duplicando o código do livro. Você pode ler e/ou executar o que quiser. Lisp é uma linguagem interativa, e você precisará de interagir com o código para se beneficiar dele. Algumas dicas:

  • Você precisará de um interpretador/compilador/ambiente Common Lisp. Aqui está uma discussão em inglês das opções.
  • Você sempre precisará do (load "auxfns.lisp").
  • Você precisará de (requires "arquivo"), para as várias instâncias dos arquivo que você deseja usar. (Se requires não funcionar corretamente, você pode querer alterar sua definição em auxfns.lisp.
  • A função do-examples, que aceita como argumento :all ou um número de capítulo ou uma lista de números de capítulos, pode ser usada para ver exemplos do uso de várias funções. Por exemplo, (do-examples 1) mostra os exemplos do capítulo 1. Acesse isso fazendo (requires "examples").

Outros recursos