-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
26 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,68 +1,49 @@ | ||
# Graciela | ||
|
||
Proyecto creado por Joel Araujo y José Luis Jiménez. | ||
Proyecto elaborado por: | ||
* Joel Araujo y José Luis Jiménez (Version 1.0). | ||
* Moises Ackerman y Carlos Spaggiari (Versión 2.0) | ||
|
||
Tutores: Ernesto Hernández-Novich y Ricardo Monascal. | ||
|
||
- - - | ||
|
||
* ***TO DO*** Hablar filosoficamente del lenguaje | ||
|
||
El diseño del lenguaje está disponible [aquí](doc/graciela/diseno.md). | ||
|
||
## Instalación Manual | ||
|
||
Para instalar el compilador de Graciela en Linux, es necesario seguir estos | ||
pasos: | ||
Graciela es un lenguaje de programación basado en el Guarded Command Language (GCL) de Edsger Dijkstra, | ||
realizado con el fin de ofrecer una herramienta práctica que permita introducir a la programación formal a | ||
los alumnos de los cursos de Algoritmos y Estructuras I y II de la Universidad Simón Bolívar. | ||
|
||
* Obtener la plataforma Haskell 7.10.*, disponible en | ||
<https://www.haskell.org/platform/>. | ||
El diseño del lenguaje está disponible [aquí](doc/gacela/diseno.md). | ||
|
||
* Instalar LLVM 3.5. En distribuciones basadas en Debian, esto puede hacerse | ||
con `# apt-get install llvm-3.5`. En otras distribuciones, la instrucción | ||
probablemente será la misma, cambiando `apt-get` por el administrador de | ||
paquetes relevante. | ||
## Instalación con APT (Linux 🐧) | ||
|
||
* Clonar este repositorio con | ||
`$ git clone [email protected]:GracielaUSB/graciela.git`. | ||
|
||
* Para correr los ejecutables generados por el compilador es necesario compilar | ||
el archivo `source/graciela-lib.c` y luego moverlo a | ||
`/lib/x86_64-linux-gnu`. Esto puede hacerse de la siguiente manera: | ||
|
||
``` | ||
# gcc -fPIC -shared source/graciela-lib.c -o graciela-lib.so | ||
# mv graciela-lib.so /lib/x86_64-linux-gnu/ | ||
``` | ||
|
||
* Para evitar romper las bibliotecas de Cabal, es buena idea crear una | ||
*caja de arena*. Para esto, una vez dentro del directorio clonado, se ejecuta | ||
`$ cabal sandbox init`. | ||
|
||
* Finalmente, se ejecuta `cabal install`. Una vez finalizado este paso (puede | ||
tomar tiempo mientras descarga las bibliotecas necesarias), el compilador | ||
estará en `<repositorio graciela>/cabal-sandbox/bin/graciela`. | ||
***TO DO*** | ||
|
||
|
||
## Instalación con Homebrew (OS X ) | ||
|
||
### Requisitos | ||
* Command Line Tools o Xcode. Se puede descargar Xcode desde <https://developer.apple.com/downloads> o solo los comandos necesarios desde la terminal usando: | ||
|
||
xcode-select --install | ||
* **Command Line Tools o Xcode**. Se puede descargar Xcode (alrededor de 4 GB) desde <https://developer.apple.com/downloads> o solo los comandos necesarios desde la terminal usando el comando: | ||
``` | ||
$ xcode-select --install | ||
``` | ||
|
||
En caso de no tener [Homebrew](http://brew.sh), puede instalarse con el siguiente comando: | ||
* **Homebrew**. En caso de no tener [Homebrew](http://brew.sh), puede instalarse con el siguiente comando: | ||
|
||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | ||
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" | ||
|
||
Una vez instalado Homebrew, se instala graciela con los siguientes comandos: | ||
Una vez cumplido los requisitos, se puede instalar graciela con los siguientes comandos: | ||
|
||
brew tap GracielaUSB/graciela | ||
brew install graciela | ||
$ brew tap GracielaUSB/graciela | ||
$ brew install graciela | ||
|
||
## Uso del compilador | ||
|
||
## Cómo compilar un archivo | ||
Para compilar un archivo `.gcl` y ejecutarlo, se utilizan los siguientes comandos: | ||
|
||
$ graciela ./<nombre_del_programa>.gcl | ||
$ ./<nombre_del_ejecutable> | ||
|
||
Tambien se puede correr el programa sin crear el ejecutable usando el comando: | ||
|
||
Basta con ejecutar el comando `graciela` de la siguiente forma: | ||
$ rungraciela ./<nombre_del_programa>.gcl | ||
|
||
graciela <mi_programa>.gcl |