Un programa Prolan es una serie de comandos o funciones (f1) (f2)...(fn) que se ejecutan secuencialmente. Toda función tiene la forma:
(nombre argumentos)
Las funciones siempre retornan un valor que puede ser utilizado como argumento de otra función circundante. El programa en su conjunto devolverá el valor retornado por la última función evaluada.
Los argumentos de las funciones deben separarse con espacios en blanco. Un argumento es, en general, una expresión que puede ser una variable, una constante o una llamada a función.
2. Comentarios
Los comentarios son textos de anotación que no forman parte del código ejecutable y, por lo tanto, no afectan el tiempo de ejecución de los programas. El carácter ; (punto y coma) se utiliza para indicar el inicio de un comentario que se extiende automáticamente hasta el final de la línea fuente en la cual aparece.
Siempre es aconsejable incluir comentarios en el código fuente para evitar que con el paso del tiempo los programas se conviertan en una sucesión indescifrable de paréntesis abiertos y cerrados.
Prolan utiliza símbolos para identificar funciones, variables y constantes predefinidas. Un símbolo es insensible a las mayúsculas y minúsculas y puede ser, en principio, cualquier secuencia de caracteres que no contenga espacios ni paréntesis. Sin embargo, los símbolos que representen nombres de variables o argumentos no deben coincidir con ninguna de las constantes predefinidas ni comenzar con un carácter de significado especial ya que que el intérprete primero los consideraría como tales al procesar las expresiones.
Los caracteres con un significado especial son los siguientes:
0..9 dígitos del cero al nueve utilizados como inicio de constante numérica
+ - signos de suma y resta
" comilla doble utilizada como inicio y fin de constante de cadena
# signo de número utilizado como prefijo de parámetro
Las símbolos siguientes son constantes predefinidas:
V|T valor verdadero
F valor falso
nada|nil valor nulo
PI la constante 3.14159265358979
Nótese que el valor nada es distinto de 0, que es un número, y de la cadena vacía "", que es una cadena.
Prolan también ofrece constantes simbólicas para los códigos de todas las opciones de configuración, las hojas del lanzamiento, los tipos enumerados y los valores de las opciones de ubicación.
4. Tipos de dato
Los diferentes tipos de dato que soporta Prolan se derivan todos de un mismo tipo genérico variante que ocupa 16 bytes de memoria y cuyas instancias pueden agruparse en las categorías siguientes:
Las variables son datos que se modifican dinámicamente durante la ejecución del programa asumiendo el tipo del último valor asignado. Por su alcance y durabilidad se clasifican en locales o globales. Las locales existen solamente durante la ejecución de la función de usuario en la cual fueron definidas (función defun) y no pueden ser accedidas fuera del cuerpo de dichas funciones. Las globales se crean con la primera ocurrencia de sus símbolos, existen todo el tiempo que dure la ejecución del programa y pueden ser accedidas desde cualquier función. Exceptuando los argumentos de las funciones, todas las variables se inicializan con nada y se asignan con las funciones sea, arreglo y porcada.
6. Argumentos
Los argumentos son las variables de las funciones que reciben los valores retornados por las expresiones utilizadas en las llamadas. Prolan soporta el traspaso de argumentos por valor o por referencia. En el primer caso, los valores de las expresiones se copian en las variables locales correspondientes las cuales pueden modificarse sin afectar las variables originales, si las hubo. En el segundo caso, se copian las direcciones de las variables utilizadas en la llamada y no sus contenidos, es decir, las variables locales correspondientes serían referencias de las originales y, por lo tanto, modifican el contenido de estas últimas.
Nótese que cuando se traspasan variables de objeto, por ser ellas mismas referencias, los objetos referenciados sí pueden modificarse dentro del cuerpo de las funciones aún cuando las variables originales se traspasen por valor.
6.1 Conversión de argumentos
Cuando una función predefinida requiere un argumento de un tipo de dato específico, que es distinto del tipo utilizado en la llamada, automáticamente se intentará realizar la conversión correspondiente y si ello no fuera posible se produce una excepción. El valor nada se convierte al número 0 (cero) o la cadena "" (vacía) en los argumentos numéricos o de cadena, respectivamente.
7. Arreglos
Los arreglos son el único tipo estructurado que soporta Prolan. Dado que los arreglos se copian completamente en la asignación, es buena práctica traspasarlos por referencia a las funciones para reducir el tiempo de ejecución de los programas.
Consulte el ejemplo QuickSort.plan suministrado con la instalación.
8. Módulos de programa
Los programas Prolan pueden dividirse en varios módulos de código fuente, almacenados en archivos diferentes y concatenados con la función incluye. Los módulos Prolan no se compilan independientemente ni enlazan como hacen otros lenguajes. El intérprete sencillamente los procesa como partes separadas de un mismo código fuente.