Secciones de la página

Time Oriented Language


Interpretado y autoevaluable


Orientación funcional


Programación recursiva


Matemático


Lazy


Sintaxis moderna


Razón de este sitio

Tol

Artículos del sitio

Presentación de Tol

Todos los programas

Simuladores visuales

Sitios que me gustan

Por categorías

Algoritmia

Búsqueda y ordenación

Computación fisiológica

Editorial y edición

Gráficos de datos

Herramientas y utilidades

Hipertexto

Informática forense

Lectura óptica de datos

Metaprogramación

No determinista

Ofimática

Recursión e iteración

Reglas y restricciones

Series y estadística









Tol, Time Oriented Language

Tol, siglas Time Oriented Language, es un lenguaje de programación fundamentalmente orientado

  • al proceso de la información temporal a través de su representación algebraica del tiempo,
  • a la modelización del comportamiento de los mercados, así como de otros tipos de sistemas tanto artificiales como naturales,
  • a la construcción de sistemas análisis estadístico, especialmente a sistemas de previsión probabilística (forecasting), y
  • a sistemas de apoyo a la toma de decisiones a partir de previsiones.

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.

Interpretado y autoevaluable

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.

Orientación funcional

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.

Programación recursiva

La potencia de la funcionalidad se amplifica porque Tol admite la programación recursiva de sus funciones,:

  • tanto mediante recursión monocíclica (una función que se llama a si misma)
  • como recursión policíclica (un conjunto de funciones que se llaman mutuamente).

Programación matemática

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.

Evaluación retardada, lazy

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.

Sintaxis moderna

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.

Objetivos y motivación

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

Tol