claudio cesar de sá ambiente hugs’98 (haskell user's gofer system) uma panorâmica

18
Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Upload: internet

Post on 22-Apr-2015

106 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Ambiente Hugs’98(Haskell User's Gofer System)

Uma panorâmica

Page 2: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Antes um dos precursores ....

• Este é o John Hughes• http://

www.cs.chalmers.se/~rjmh/• Tem várias dicas e artigos

sobre ling. funcionais...• Os melhores resultados da

linguagem• Temos os “porquês”?...• Sim: www.haskell.org

Page 3: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Quanto ao Laboratório:• Em um navegador: \\200.19.107.36 (34) (IP do servidor)

• Login e senha e : alunos e alunos (dcc)

• Na pasta disciplinas, lpg3 (integral), copiar o software hugs98-Dec2001.msi (1.6M) para o micro do lab

• Ou copiar do site: http://cvs.haskell.org/Hugs/pages/downloading.htm

• Copie os arquivos em *.html, onde contém parte da sintaxe de haskell, são arquivos de ajuda

• Instalar. Em caso de problemas, chamar o João (bolsista)

• Última versão: Novembro/2002

Page 4: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Ciclo do Programa no Laboratório:

Editar ProgramaUsuário.

(Editor “aberto”no desenvolvimento)

Executar, testar funções, etc

Carrega

Modificar

Page 5: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Feita a instalação, veja o ciclo:• Escolher um editor ASCII,

tipo edit.com, ultra-edit (o melhor)

• Editar o programa

• Salvar, com qualquer extensão

• Entrar no Hugs98

• Carregar o programa

• Testar

• Volte ao passo ....

• Dúvidas: consulte os arquivos de ajuda (*.html)

Page 6: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Um Editor Haskell: JCreator

• Este editor para linguagem Haskell, tem avaliação estática, e principalmente com sintaxe em “highlitenings” (colorida quanto keywords, funções, operadores, etc)

• http://www.students.cs.uu.nl/people/rjchaaft/JCreator/

• Para intalar, siga o Readme.txt do site acima

Page 7: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

JCreator LE

• Basicamente: é um editor “freeware” para Java, contudo há duas macros para reconhecer a sintaxe do Haskell (LHaskell.syn e Haskell.syn), que são copiadas para o diretório de Syntax

• http:// www.jcreator.com

• http://www.students.cs.uu.nl/people/rjchaaft/JCreator/

Page 8: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Quanto ao Winhugs?

• É apenas uma “casca” de janela para o Hugs original: algo que facilita muito;

• É preciso um editor externo como visto

Page 9: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

__ __ __ __ ____ ___ _______________________________________________|| || || || || || ||__ Hugs 98: Based on the Haskell 98 standard||___|| ||__|| ||__|| __|| Copyright (c) 1994-2001||---|| ___|| World Wide Web: http://haskell.org/hugs|| || Report bugs to: [email protected]|| || Version: December 2001 _______________________________________________

Haskell 98 mode: Restart with command line option -98 to enable extensions

Reading file "C:\ARQUIVOS DE PROGRAMAS\HUGS98\lib\Prelude.hs":

Hugs session for:C:\ARQUIVOS DE PROGRAMAS\HUGS98\lib\Prelude.hsType :? for helpPrelude>

Page 10: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

% hugs

__ __ __ __ ____ ___ _________________________________________|| || || || || || ||__ Hugs 98: Based on the Haskell 98 standard||___|| ||__|| ||__|| __|| Copyright (c) 1994-1999||---|| ___|| World Wide Web: http://haskell.org/hugs|| || Report bugs to: [email protected]|| || Version: February 2000 _________________________________________

Haskell 98 mode: Restart with command line option -98 to enable extensions

Reading file "/usr/local/share/hugs/lib/Prelude.hs": Hugs session for:/usr/local/share/hugs/lib/Prelude.hsType :? for help

Prelude>

No Linux ou Unix o % é o prompt, simplesmente digite hugs:

Page 11: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Prelude> :?LIST OF COMMANDS: Any command may be abbreviated to :c wherec is the first character in the full name.

:load <filenames> load modules from specified files:load clear all files except prelude:also <filenames> read additional modules:reload repeat last load command:project <filename> use project file:edit <filename> edit file:edit edit last module:module <module> set module for evaluating expressions<expr> evaluate expression:type <expr> print type of expression:? display this list of commands:set <options> set command line options:set help on command line options:names [pat] list names currently in scope:info <names> describe named objects:browse <modules> browse names defined in <modules>:find <name> edit module containing definition of name:!command shell escape:cd dir change directory:gc force garbage collection:version print Hugs version:quit exit Hugs interpreterPrelude>

Page 12: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Dos passos citados... e que está sob o formato de ícones no winhugs:

• :l "C:\\Arquivos\\demos\\Ex1_claudio.hs” (carrega o programa)

• :l (limpa o buffer do hugs, deixando apenas as funções do prelúdio)

• :quit (sai do winhugs)

Page 13: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Os comandos que interessam:Comando Significado

:l name carrega o script name:r regarrega o script atual:e name edita o script name:e edita o current script:t expr mostra o tipo de expr:? Mostra todods os comandos:q quit/sair

Page 14: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Com tantos comandos e manuais:

• Antes de tudo... Ir para o botão Options, e fazer algumas configurações básicas como:– Acertar caminho de onde estão seus programas– Escolha um editor de texto simples, que indique

o número da linha corrente do código fonte, etc.– Use o editor mais simples: “edit.com” ou instale

algum outro “free” da WEB– O indicador das linhas de códigos é importante

neste momento

Page 15: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Dicas:

• :e "C:\\Arquivos\\demos\\Ex1_claudio.hs” ativa o editor de programa (:edit ...)

• :l "C:\\Arquivos\\demos\\Ex1_claudio.hs” carrega o arquivo editado (:load ...)

• Use Crlf+Ins para marcar o comando e Shift+Ins para colar

• Use as “flechinhas” para repetir comandos já realizados

Page 16: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Dicas:

• Quando o óbvio deveria de funcionar, e não funciona, faça o seguinte procedimento:– Faça um “clear all”, tecle simplesmente “:l” no

prompt do hugs– Carregue novamente o programa que tinha o

erro inexplicado

Page 17: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Dicas:

• Inicialmente, faça funções sem considerar o tipo das funções: Haskell vai advinhar !

• Caso queiras descobrir o que Haskell deduziu sobre os tipos:– Digite: :type nome_da_função– O resultado, podes usar no seu programa– Tipagem será explicado posteriormente

Page 18: Claudio Cesar de Sá Ambiente Hugs’98 (Haskell User's Gofer System) Uma panorâmica

Claudio Cesar de Sá

Quem puder dar mais dicas sobre,Hugs’98 e Haskell:

[email protected]

[email protected]

Obrigado !