¡Bienvenido a la documentación de Alfred!

Me alegra que hayas decidido aprender a programar en este maravilloso nuevo lenguaje de programación.

Advertencia

Actualmente Alfred está en fase de desarrollo, por lo que es posible que gran parte de esta guía no cubra el procedimiento a seguir en tu entorno.

En Mayo de 2019, todo lo aquí descrito sólamente ha sido probado en la distribución de Linux Mint con la versión de Python 3.6.7.

Aquí te dejo una lista con los contenidos que podrás encontrar en esa guía:

Instalación

Alfred ha sido diseñado apoyándose en el lenguaje de programación Python3. Es posible que en algunos Sistemas Operativos salten errores de dependencias incumplidas si Python no está instalado en el sistema.

Además, como Alfred aún está en fase de desarrollo, los archivos standalone y los módulos ejecutables no tienen ninguna garantía de funcionar correctamente en cualquier sistema. En caso de encontrar una incompatibilidad, puedes reportarla directamente en la sección de errores del repositorio de GitHub.

Linux

Si estás corriendo Linux, tienes varias formas de conseguir a Alfred.

La primera es descargar el archivo correspondiente a tu distribución y arquitectura desde repositorio de GitHub. Aquí podrás encontrar todas las versiones junto a los cambios realizados respecto a las anteriores versiones.

Una vez descagado, asegúrate de añadir la ruta del archivo a tu PATH. Para ello puedes crear una nueva ruta en la que poner tu binario, por ejemplo /usr/local/alfred/bin. Para poder acceder a él desde cualquier parte de tu terminal, puedes añadir la siguiente línea al archivo $HOME/.profile o al archivo /etc/profile (en caso de que desees una instalación para todos los usuarios del sistema):

export PATH=$PATH:/usr/local/alfred/bin

También puedes instalar a Alfred mediante pip. Asegúrate de tener instalado Python3 junto a su correspondiente versión de pip:

python --version
pip --version

Una vez comprobado, sólamente tienes que ejecutar el siguiente comando:

pip install alfred-lang

Probando la instalación

Desde tu terminal, prueba a poner el siguiente comando:

Si te aparece el mensaje de ayuda, significa que la instalación se ha realizado con éxito.

Puedes probar tus habilidades con este lenguaje de programación mediante el modo interactivo o ejecutando tus programas:

alfred -i
alfred --interactive

alfred holamundo.alf

Lenguaje Alfred

A pesar de que Alfred es un lenguaje bastante flexible estructuralmente, sigue ciertas directrices a la hora de interpretar el código fuente de los programas.

Además, por convenio, todos los archivos que incluyan código fuente escrito en este lenguaje de programación deberán tener la extensión .alf.

Alfred

El archivo que contenga el flujo principal del programa ha de comenzar obligatoriamente con la palabra reservada Alfred. Además, esta palabra ha de ser única en todo el código fuente.

Cualquier otra instrucción que preceda a dicha palabra reservada generará un error de sintaxis parecido a este:

[🐛] (Línea: 1) Sintaxis inválida: ...

De este modo, si se desea generar un programa .alf vacío, el contenido será similar a este:

Alfred.

Comentarios

Como casi cualquier otro lenguaje de programación, Alfred acepta la inclusión de comentarios en el código. Aunque la semántica sea más que expresiva, en muchas ocasiones es recomendable, por no decir necesario, el uso de anotaciones.

Para ello, se disponen de los símbolos ( y ), los cuales encapsularán cualquier contenido que será ignorado a la hora de procesar el código.

(Los comentarios pueden ir precediendo a la palabra reservada Alfred)

Alfred. (También pueden ir intercalados entre instrucciones) Di "Buenos días, Sr. Wayne".

(Además, Alfred acepta comentarios
multilínea sin la necesidad de
caracteres especiales adicionales)

Advertencia

Hay que tener cuidado al comentar código. La ausencia de un paréntesis puede convertir tus instrucciones en simples anotaciones.

Alfred.
Di "Esto no es un comentario".
(Hay que intentar no olvidarse de cerrar los comentarios
Di "Esto es parte del comentario"
(Alfred ignorará cualquier código si éste es tratado como un comentario)
Di "Esto tampoco es parte de un comentario".

La ausencia de un paréntesis, es decir, si la cantidad total de pares de paréntesis es impar, Alfred generará una excepción similar a esta:

[🐛] Caracter inválido (1,~184): (

Instrucciones

Di

La instrucción Di permite mostrar un texto por pantalla. Cualquier argumento que se le pase será propiamente tratado para que se pueda mostrar por la salida estándar del sistema. Además, un nuevo salto de línea será añadido tras evaluar la instrucción.

Alfred. Di "Encantado de conocerte, Batman".
Resultado:
Encantado de conocerte, Batman

Atención

Los caracteres escapados tales como \n, \r o \t son tratados de manera literal, por lo que si deseas que se muestren por pantalla, sólamente has de usarlos como si de un editor de textos común se tratase.

Alfred. Di "\n no funciona como un salto de línea,
pero este mensaje va a ser multilínea. Además,
si deseas tabular algo (\t), has de hacerlo      de esta manera".
Resultado:
\n no funciona como un salto de línea,
pero este mensaje va a ser multilínea. Además,
si deseas tabular algo (\t), has de hacerlo      de esta manera

Escribe

De la misma manera que la instrucción Di, Escribe permite mostrar textos por la salida estándar del sistema. La única diferencia es que no se añade una salto de línea al evaluar la instrucción.

Esto es muy útil a la hora de concatenar textos.

Alfred. Escribe "Hola ", escribe "Mundo" y di "!".
Resultado:
Hola Mundo!

Pregunta

La instrucción Pregunta permite interactuar con la entrada estándar del sistema. Esta instrucción hace uso de un parámetro opcional, el cual corresponde al texto que va a ser mostrado antes de realizar la interacción con el teclado.

Alfred. Pregunta.
Alfred,
escribe "¿Cómo te llamas? " y pregunta.
(es similar a...)
Pregunta "¿Cómo te llamas? ".

Advertencia

Es posible que en algunos sistemas, teclas como el tabulador, el retorno o las flechas no sean correctamente tratadas y den como resultado a entradas similares a ^[[D o a ^D

El resultado es guardado en una variable especial propia de Alfred, llamada variable temporal, la cual solamente es accesible mediante la instrucción Guardalo en.

Guardalo en

La instrucción Guardalo en permite obtener el resultado de comandos tales como Pregunta, que hayan hecho uso de la variable temporal característica de Alfred.

Guardalo en toma como parámetro el nombre de la variable en la que se quiera almacenar la información perteneciente a la variable temporal.

Alfred. Pregunta "¿Cómo te llamas? ", guardalo en nombre,
escribe "Encantado de conocerte, " y di nombre.
Resultado:
¿Como te llamas? Bruce
Encantado de conocerte, Bruce

Contribuir

Si deseas contribuir en el desarrollo de Alfred, ¡no dudes en hacerlo!. Alfred es un lenguaje de programación de código abierto y cualquier ayuda por parte de la comunidad es bienvenida.

Herramientas necesarias

Para poder contribuir, es necesario tener algunas herramientas instaladas en el sistema:

Para disponer de un entorno controlado que no interfiera con el resto de tu sistema, hay disponibles herramientas como virtualenv que puedes usar:

Windows
pip install virtualenv

virtualenv venv
.\venv\Scripts\activate
# ... comandos a ejecutar ...
deactivate
Linux
pip install virtualenv

virtualenv venv
source venv/bin/activate
# ... comandos a ejecutar ...
deactivate

Obtener el Código Fuente

Para descargar el código fuente de Alfred, puedes hacerlo mediante la utilidad de descarga directa que ofrece GitHub. Aún así, es posible que luego tengas que configurar el repositorio local para poder realizar Pull Requets (PR) o mantenerlo actualizado.

Es por ello que la forma recomendable de obtener el código fuente es mediante la herramienta de control de versiones git:

git clone https://github.com/CosasDePuma/Alfred

Para probar que la descarga se ha realizado con éxito, puedes poner el siguiente comando dentro de la carpeta Alfred:

make check

Compilar el Código Fuente

Antes de compilar el programa, es necesario instalar los requisitos del código fuente. Esto se realiza ejecutando los siguientes comandos:

pip install -r requirements.txt
pip install -r requirements-dev.txt

Alfred cuenta con varios archivos Makefile que proporcionan todas las instrucciones necesarias, independientemente del Sistema Operativo que estés usando. Para compilar, basta con escribir los comandos:

make build
make clean

Para instalar el módulo de manera local mediante pip, basta con poner el comando:

make install

Esto sobreescrirá cualquier versión anterior que hayas instalado desde el repositorio de PyPI. De la misma manera, se puede desinstalar usando el comando:

make uninstall

Advertencia

pip3 ha de ser accesible de manera global mediante el comando pip para que las directivas install y uninstall funcionen correctamente.