Skip to content

UTN-FRD/construccion-compilador

Repository files navigation

Intérprete funcional ci

Una implementación de Lisp en Rust

Proyecto de Investigación y Desarrollo de la Facultad Regional Delta de la Universidad Tecnologica Nacional

Objetivo

Desarrollar un software educativo con el fin de que los estudiantes aprendan a construir compiladores e intérpretes de lenguajes de alto nivel, que además de incluir como elemento esencial un intérprete propiamente dicho, tenga una serie de características y herramientas complementarias que faciliten el proceso de aprendizaje.

Instalación y requerimientos técnicos

Requirements

Running the interpreter

$ cargo run

Running the web interpreter

First compile the Rust code to wasm

$ wasm-pack build

Install web dependencies

$ cp -R ./pkg site-react/src/
$ cd site-react/
$ npm install

Start the server

$ npm run start

The browser should open automatically once server is started. If not, go to http://localhost:3000/

Running tests

$ cargo test

Code quality

  • PRs MUST have passing builds to be merged
  • be sure to auto format your code with cargo fmt
  • add tests for new features
  • be sure to use cargo clippy to detect common problems in your code.

Referencias

  • norvigs toy lisp impl: from which we got the basics
  • Racket lisp: the lisp implementation that we aim to (right now we are not very close but the ideal is to make something like Ractket syntax wise)
  • Racket lisp () vs []