Tol, siglas Time Oriented Language, es un lenguaje de programación fundamentalmente orientado
Pero que por su gran potencia y flexibilidad puede ser también empleado como un lenguaje de programación de propósito general para el procesamento de información textual y numérica.
Tol es un lenguaje de programación interpretado, lo que facilita su uso, aprendizaje y la construcción de sistemas programados capaces de generar su propio código, para ello, Tol es también un lenguaje autoevaluable.
Que Tol sea autoevaluable significa, que se puede evaluar el código Tol que se genera en tiempo de ejecución.
Esta capacidad de autoevaluación se incrementa más porque las funciones
programadas en Tol son, a su vez, objetos de tipo Code y
que pueden ser, por tanto, argumentos de otras funciones y almacenarse
dentro de estructuras.
Tol es también un lenguaje con un profunda orientación funcional,
donde incluso varias de sus estructuras de control del flujo
fundamentales, como por ejemplo
el If(),
el For(),
el Case(),
el EvalSet(), etc.
son totalmente funcionales.
Todas las funciones Tol retornan lo que resulte de la evaluación de
la última sentencia que se ejecute de cada función, sin necesidad de una
cláusula especial para el retorno.
Es más, los bloques de codigo, que son un conjunto de sentencias entre
llaves, { ... }, también son funcionales y retornan lo que
retorne la última sentencia que se ejecute del bloque de código.
La potencia de la funcionalidad se amplifica porque Tol admite la programación recursiva de sus funciones,:
Tol fue creado desde una concepción matemática de la programación y, por tanto, es un lenguaje declarativo donde, aunque se pueda hacer, un buen programador Tol no necesita reasignar el valor de las variables casi nunca.
Las variables Tol se manejan dinámicamente en memoria mediante un
mecanismo de scope muy intuitivo y además, aunque sea un lenguaje
fuertemente tipado, incorpora el tipo de variable Anything,
esto es, variables que pueden ser de cualquier otro tipo
(Real,
Text,
Date,
Set,
Matrix,
Serie,
TimeSet,
Polyn,
Ratio,
etc.).
Esto permite trabajar en Tol con los distintos tipos de variables
como si de un único tipo se tratara.
Adicionalmente, mucho de sus tipos se pueden manejar mediante álgebras,
como la de conjuntos, Set, o
como la de conjuntos temporales, TimeSet.
Tol es un lenguaje de evaluación retardada, frente a los lenguajes estándar que son usualmente eager, Tol es lazy.
¿Por qué Tol es lazy? Porque Tol es uno de los pocos lenguajes de programación que permite manipular estructuras infinitas creadas mediante su algebra del tiempo que, como definiciones abstractas, no tienen ni principio ni fin en el tiempo.
Ser lazy es una forma de hacer frente a la infinitud del tiempo, ya que, según se avanza en el proceso la operación de estructuras temporales infinitas con estructuras acotadas por el pasado o por el futuro y con estructuras finitas, el rango de evaluación nunca aumente sino que o se mantiene o disminuye, por lo que cuanto más se retrase la evaluación, cuanto más lazy, menor es el rango de evaluación que hay que acometer.
Los lenguajes de programación lazy son en general más eficientes que los lenguajes eager y en los casos de proceso de declaraciones infinitas es la virtud de ser lazy la que permite que sean computables.
De todas las grandes características de Tol es precisamente esta última, la de ser lazy, la que da nombre al dominio de este sitio web dedicado al lenguaje Tol: LazyTol.com.
La sintaxis de Tol es heredera de la del lenguaje C y, por tanto, similar en algunos aspectos a la de JavaScript y a la de C++. Las sentencias pueden estructurarse en varias líneas e incluso, a diferencia de otros lenguajes, los textos entre comillas también se pueden distribuir a lo largo de varias líneas, sin necesidad de abrir y cerrar comillas dentro de cada línea, con lo que se aumenta la legibilidad frente a texto largos o con cierto nivel de formato.
A lo largo de mi vida he desarrollado o participado en el desarrollo de varios lenguajes y pseudo-lenguajes de programación y es, probablemente, de Tol del que más orgulloso estoy.
Este es un sitio web, de cuya creación se encarga naturalmente un programa desarrollado en lenguaje Tol, dedicado a ofrecer código fuente Tol de forma abierta, donde los programadores de Tol o los interesados en conocer este lenguaje de programación puedan encontrar código fuente útil, trucos, ejemplos, estilos de programación, ideas, etc. que les permitan, a su elección, ser algo más productivos o algo más vagos y, de esto último también el nombre del dominio LazyTol.com.
2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio