Skip to content
Snippets Groups Projects
Select Git revision
  • master default
1 result

InterpreteMateFun

  • Clone with SSH
  • Clone with HTTPS
  • Maxi Poses's avatar
    Maximiliano Poses Perez authored
    Se corrigen las rutas del makefile que ahora en lugar de tener las rutas harcodeadas por desarrollador, las considera por ubicacion dentro del proyecto.
    9a8218fb
    History

    Compilador MateFun

    MateFun es un lenguaje de programación funcional muy simple, diseñado para introducir la programación a estudiantes liceales y a su vez fortalecer la apropiación delconcepto de función matemática. El compilador de MateFun es una aplicación de consola desarrollada en Haskell.

    Prerequisitos

    Instalación de paquetes básicos:

    $ apt-get install -y ghc cabal-install git gettext locales

    Descargar e instalar el probador de teoremas Z3;

    $ wget  https://github.com/Z3Prover/z3/releases/download/z3-4.6.0/z3-4.6.0-x64-ubuntu-16.04.zip
    $ unzip z3-4.6.0-x64-ubuntu-16.04.zip
    $ cp z3-4.6.0-x64-ubuntu-16.04/bin/libz3.so /usr/lib/
    $ cp z3-4.6.0-x64-ubuntu-16.04/bin/z3 /usr/bin/
    $ cp z3-4.6.0-x64-ubuntu-16.04/include/* /usr/include/

    Compilación

    Descargar el código fuente del repositorio:

    $ git clone https://gitlab.fing.edu.uy/matefun/MateFun.git

    Instalar dependencias de MateFun:

    $ cd MateFun/
    $ cabal update
    $ cabal install happy
    $ cabal install hgettext
    $ cabal install z3

    Compilar:

    $ cabal build

    Instalación

    Instalar el ejecutable MateFun en el directorio por defecto ~/.cabal/bin

    $ cabal install

    Ejecución

    Agregar la ruta por defecto de cabal a la variable PATH:

    $ export PATH=$PATH:~/.cabal/bin

    Para ejecutar MateFun simplemente:

    $ MateFun

    El compilador de MateFun soporta los siguientes parámetros de entrada:

    Opción Parámetro Descripción
    -c ARCHIVO Referencia al archivo ARCHIVO.mf para cargar sus funciones al compilador
    -p RUTA Referencia a la ruta donde se encuentra el archivo a referenciar (requiere opción -c)
    -f Habilita las advertencias de uso de funciones
    -i Habilita las advertencias de uso de funciones aritmeticas
    -w Modo Web
    -d Habilita la detección de intersección de dominios en funciones
    -v Modo detallado