GithubHelp home page GithubHelp logo

lp_implementacao_linguagem's Introduction

Notação:
"=>" edição de arquivo
"==>" execução de comando no prompt do sistema operacional


** Passos principais (requerido no curso, feito pelo aluno)

1) estudar a sintaxe abstrata, ou seja, o(s) tipo(s) algébrico(s) com a estrutura da linguagem 
  => arquivo "AbsLE.hs"

2) definir/editar o interpretador com base na sintaxe abstrata 
  => arquivo "Interpreter.hs"

3) compilar o driver (main) do interpretador 
  ==> ghc --make Interpret.hs

4) testar o executável com exemplos:
  ==> Interpret < ex1.le1   

** Passos preliminares (feito pelo professor)
-3) Definir/editar a sintaxe concreta (feito pelo professor)
  ==> arquivo LE1.cf

-2) Gerar os fontes do analisador sintático (parser) e léxico (lexer), assim como o Makefile usando o BNF Converter
  ==> bnfc  -m  LE1.cf

-1) Compilar os fontes do parser e lexer 
  ==> make

0) Definir o driver (main) do interpretador
  => arquivo "Interpret.hs"
   

---------------------

Observações

-> O arquivo "Abs.hs" é gerado a partir do arquivo "LE1.cf". Assim, caso o último seja editado, o primeiro terá que ser gerado
novamente. Para fazer alterações desejadas no arquivo "Abs.hs", o mesmo não deve ser editado diretamente: 
deve-se alterar o "LE1.cf" e gerar o "Abs.hs" novamente usando o BNF Converter.

-> Para a execução dos "Passos Principais", é necessário ter a plataforma Haskell instalada.
https://www.haskell.org/platform/

-> Para a execução dos "Passos Preliminares", é necessário:
1) instalar o BNF Converter
http://bnfc.digitalgrammars.com/

2) Caso o sistema operacional não tenha nativamente o "make" (p.ex. Windows),
é necessário instalá-lo
http://www.steve.org.uk/Software/make/   

lp_implementacao_linguagem's People

Contributors

edassis avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.