Herramientas necesarias para la cátedra Paradigmas y Lenguajes de Programación.
10K+
Para usar el contenedor se tienen 2 requisitos:
-it en la llamada a docker run.-v.Para llevar a cabo los dos requisitos anteriores simplemente realizar lo siguiente:
$ cd /directorio/que/contiene/el/codigo/de/interes/
$ docker run --rm -it -v "$(pwd):/home/pylp/codigo" crulises/pylp:<tag>
Esto va a montar el directorio actual en el directorio de trabajo dentro del contenedor. Se puede notar, además, el --rm extra en la segunda linea que corre el contenedor, éste hace que al finalizar el mismo, se elimine de la lista de contenedores a los cuales Docker le lleva el seguimiento.
De ahí en más, se puede compilar/interpretar todo de forma manual, o se puede usar el ayudante que se brinda junto con el contenedor, el ayudante se llama mediante pylp_ci, este puede recibir archivos con extensión *.hs, *.pl, *_mpi.cpp, *_mp.cpp. Los dos últimos hacen referencia a los archivos para OpenMPI y OpenMP, se requiere que el nombre del archivo finalice con "_mpi" y "_mp" respectivamente, debido a que ambos finalizan con la misma extensión, de ésta manera el ayudante sabe como tratar a cada uno.
Ejemplos:
pylp_ci archivo.hs : inicia el interprete de Haskell, luego carga el archivo archivo.hspylp_ci archivo.pl : inicia el intérprete de Prolog, luego carga el archivo archivo.plpylp_ci archivo_mpi.cpp : compila el archivo para codigo OpenMPI, luego ejecuta el resultado con 2 procesos por defecto, se le puede dar un segundo parámetro de formato numérico que representará la cantidad de procesos a lanzar para la ejecución del programa compilado.
Ejemplo: pylp_ci archivo_mpi.cpp 6, lanzará 6 procesos luego de la compilación.pylp_ci archivo_mp.cpp : compila el archivo para código OpenMP, luego lo ejecuta.Los contenedores que unicamente tienen número de versión estan basados en Ubuntu, aquellos que no estén basados en el mismo tendrán aclaraciones en sus respectivos tags.
Content type
Image
Digest
Size
246.8 MB
Last updated
almost 7 years ago
docker pull crulises/pylp