Coder Social home page Coder Social logo

drianne / lispf_ck Goto Github PK

View Code? Open in Web Editor NEW
0.0 3.0 0.0 8 KB

Este repositório contém lexer e parser para lispf_ck escrito em python. Consiste em uma atividade da disciplina de Compiladores da Universidade de Brasília -UnB, Campus de Engenharias Faculdade do Gama - FGA.

Python 100.00%

lispf_ck's Introduction

Lispf_ck


Contribuidores

Nome Matrícula
Adrianne Alves da Silva 16/0047595
Letícia de Souza 15/0015160

Apresentação

Este repositório apresenta um lexer e parser de Lispf_ck, escritos em linguagem python. Eles fazem parte de uma atividade apresentada como avaliação parcial da disciplina de Compiladores do curso de Engenharia de software da Universidade de Brasília (UnB), Campus de Engenharias - Faculdade do Gama (FGA).

Sobre a Linguagem

Lisp é uma linguagem de programação formal, matemática, que foi projetada a fim de realizar processamento de dados simbólicos. A representação do código se dá como lista, de maneira que os elementos são separados por espaços através de uma notação prefixa, em que o primeiro elemento representa uma função e os demais são argumentos da mesma. Essa linguagem foi utilizada por um tempo pela comunidade de inteligência artificial. Entretanto, nesse repositório será desenvolvido um parser para a linguagem Lispf_ck, uma variante da linguagem brainf_ck que combina a semântica do brainfuck com outros recursos.

De maneira simplista, a Lispf_ck é o mesmo que a brainf_ck em termos de limitações, mas em uma notação diferente. Ex:

BrainFuck : ,+[.-]

Lispf_ck: (do read inc (loop print dec))

Caracteres

Como ´é uma linguagem diretamente relacionada com brainf_ck, podemos utilizar o alfabeto de brainfuck para demonstrar o de Lispf_ck. Tal que, temos em brainf_ck:

Caractere Significado
> Incremento do ponteiro
< Decremento do pronteiro
+ Incremento do byte
- Decremento do byte
. Imprimir o dado
, Entrada de um byte
[ Início de um Laço
] Fim de um laço de repetição

E em Lispf_ck teriamos:

brainfuck Lispfuck
[...] (loop ...)
> right
< left
+ inc
- dec
. print
, read

Como Contribuir

Para contribuir com o desenvolvimento, é preciso que o colaborador crie o seu próprio Fork e envie um pull request com a contribuição para a branch master do projeto. As alterações serão analisadas e incorporadas ao compilador em caso de aprovação.

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.