Secciones de la página

Metaprogramación


Dct. Writer


Omr. Forms


Antonio. Salmeron


Ediciones. aContracorriente


con-Q. tv


PDonnelly. CellsMatrix


iForense


Ink. Watercolor


SHi. SyntaxHighlight


Constraint. Queen

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









Programas que escriben o manipulan código

La metaprogramación consiste en escribir programas que, a su vez, escriben o manipulan otros programas o a sí mismos tratándolos como datos. Tol es un lenguaje especialmente capacitado para realizar metaprogramación.

A continuación se expone un breve resumen de cada uno de los progamas y, en cada programa, pulsando sobre el botón azul con flecha, a la derecha del título, se accede a su código completo.

make.tol de Dct.Writer

Documentador de codigos que genera agendas de posts de otros programas desarrollados en lenguaje Tol y algunos otros lenguajes como Javascript, Html, Sql y Xml. El programa explota la riqueza de otros programas en comentarios, estructura y codigo para generar unos contenidos que son el paso previo para ser llevados a paginas web y generar con ellos

Documentador de codigos que genera agendas de posts de otros programas desarrollados en lenguaje Tol y algunos otros lenguajes como Javascript, Html, Sql y Xml. El programa explota la riqueza de otros programas en comentarios, estructura y codigo para generar unos contenidos que son el paso previo para ser llevados a paginas web y generar con ellos documentacion en Pdf. Este codigo se le puede clasificar como metaprogramación. La metraprogramación consiste en escribir programas que escriben o manipulan otros programas o a si mismo. Usualmente no se ejecuta el fichero make.tol del documentador directamente, sino que es desde otros programas donde se invoca a su funcion principal DctMake(). Para invocar a DctMake() se le debe haber declarado previamente a) Text DctPre que es la ruta del directorio contenedor del directorio del programa a documentar y b) Set DctTre que es el arbol de ficheros a documentar.

Las imagenes de las presentaciones manuales en html: a) estan en el directorio dct. b) se enlazan (src) como ../dct_writer/imagen.ext, siendo ext, por ejemplo, png. La elaboracion de la documentacion se realiza a partir de: a) la ruta previa al directorio del programa, por ejemplo, ../Web, ruta que puede ser relativa o absoluta, preferiblemente lo primero, y b) un arbol de entrada de descripcion de los ficheros a documentar. El arbol de entrada: a) contiene el nombre del programa y, por tanto, el nombre del directorio principal, asi, por ejemplo, de Omr.Forms y ../Web se forma ../Web/Omr.Forms/dct, b) todos los ficheros a documentar que pueden tener marcas que identifican al modulo principal y a su raiz [*] y a los fichero de salida [>], el resto de ficheros se asumen de entrada, c) una breve descripcion que se utiliza para la generacion la estructura de ficheros y como descripcion si no hay otra y d) se documentan todos los ficheros, no se documentan los directorios, salvo el directorio principal cuya documentacion es la del modulo principal del programa, usualmente un make.tol

make.tol de Omr.Forms

Es el programa constructor del sitio web OmrForms.es, que es un sitio dedicado a la comercialización de servicios y formularios en papel para la lectura óptica de datos. Los contenidos para este sitio web se estructuran en base a posts con 3 niveles de importancia (status) y que se guardan en un único fichero de texto denominado agenda de posts que

Es el programa constructor del sitio web OmrForms.es, que es un sitio dedicado a la comercialización de servicios y formularios en papel para la lectura óptica de datos. Los contenidos para este sitio web se estructuran en base a posts con 3 niveles de importancia (status) y que se guardan en un único fichero de texto denominado agenda de posts que es un banco de contenidos. Los 3 niveles de los posts son: a) A de Anulado, significa que está en el banco de contenidos pero que no se puplica, b) B de Bajo, se publica, pero no sale en el menú principal en la parte superior izquierda de todas las páginas web del sitio y c) C de Común, se publica y aparece enlazado desde el menú principal de todas las páginas.

Omr.Forms es un programa que puede considerarse básico en relación a otros constructores de sitios web desarrollados en lenguaje Tol y que se caracteriza por: a) Emplear una única agenda de posts que se alberga en el fichero de ruta agenda/agendadb.age. b) Los posts no tienen clases para su categorización, a diferencia de otros programas constructores de sitios webs. c) Se basa en un macro-expansor simple de Tol embebido en Html. d) Combina los títulos y los subtítulos, alternativos y disponibles para cada post, de forma que los contenido publicados no son siempre idénticos a los publicados anteriormente. e) La decoración lateral izquierda con ejemplos de formularios para lectoras ópticas de marcas es tambien aleatoria, por lo que es diferente en cada publicación. f) Las páginas las crea de una forma circular, siguiendo la misma secuencia de definición y las enlaza de tal manera, que empezando por cualquier página, leyendo hasta el final y pidiendo leer más, se pueden recorrer todas las páginas.

make.tol de Antonio.Salmeron

Este programa se denomina Antonio.Salmeron pues es el constructor del sitio web AntonioSalmeron.com. La construcción del sitio web se realiza a partir de contenidos en formato de posts albergados en unos ficheros que se denominan agendas. Cada agenda contiene un conjunto de post, agrupados generalmente por temas. Estos ficheros de agendas se

Este programa se denomina Antonio.Salmeron pues es el constructor del sitio web AntonioSalmeron.com. La construcción del sitio web se realiza a partir de contenidos en formato de posts albergados en unos ficheros que se denominan agendas. Cada agenda contiene un conjunto de post, agrupados generalmente por temas. Estos ficheros de agendas se almacenan en un directorio que puede considerarse un banco de contenidos. Los post pueden pertenecer a múltiples clases, unas clases definidas en los posts y otras calculadas, como por ejemplo, las clase de los periodos de publicación de cada post. Este programa crea páginas Html de posts y de conjuntos de post por cada clase, a estas clases también se las denomina categorías.

Este programa emplea un directorio de agenda de posts, dentro de este directorio los posts se estructuran en varios ficheros que permiten organizarlos por su tipo de contenido y dentro de cada fichero por su fecha de publicación, los más recientes al principio. Con parte de los contenidos de los post este programa crea 4 documentos, 2 en español y 2 en ingles, en Html y en formato Pdf que son un curriculun vitae. A diferencia de otros sitios web construidos por Tol, en el sitio web AntonioSalmeron.com todos los post tienen el mismo nivel de importancia.

make.tol de Ediciones.aContracorriente

Este programa se denomina Ediciones.aContracorriente porque es el constructor del sitio web edicionesacontracorriente.com. // Tanto Ediciones aContracorriente como su sitio web están dedicados a la edición, promoción y venta de libros en formato digital y en formato físico. La construcción del sitio web se realiza a partir de contenidos en formato

Este programa se denomina Ediciones.aContracorriente porque es el constructor del sitio web edicionesacontracorriente.com. // Tanto Ediciones aContracorriente como su sitio web están dedicados a la edición, promoción y venta de libros en formato digital y en formato físico. La construcción del sitio web se realiza a partir de contenidos en formato de posts albergados en unos ficheros que se denominan agendas. Cada agenda contiene un conjunto de post, agrupados generalmente por temas, por ejemplo, catalogo, tienda, los autores y sus libros, trámites, etc. Estos ficheros de agendas se almacenan en un directorio que puede considerarse un banco de contenidos.

Este programa sólo escribe los ficheros de páginas Html que son diferentes a los ya creados en ejecuciones anteriores de forma que no haya que enviar todo el conjunto de páginas sino las de modificadas de fecha más reciente que el último log de envío. Este control lo realiza la opcion fup, de ftp update, frente a la opción ftp que generar ficheros de mandatos de envío con todo el contenido del web. Nótese que las opciones fup y ftp solo generan ficheros de mandatos ftp de envío y luego se pueden ejecutar con la opcion snd.

make.tol de con-Q.tv

Constructor de la Newsletter AVPPM con-Q.tv que genera tanto las páginas de la newsletter online, con el histórico de noticias, como el contenido de cada newsletter periódica, con las últimas noticias, que se envía a los socios por correo electrónico. Las noticias son posts con 4 niveles de importancia (status), que se organizan en un directorio

Constructor de la Newsletter AVPPM con-Q.tv que genera tanto las páginas de la newsletter online, con el histórico de noticias, como el contenido de cada newsletter periódica, con las últimas noticias, que se envía a los socios por correo electrónico. Las noticias son posts con 4 niveles de importancia (status), que se organizan en un directorio con ficheros y estos con posts, que pueden pertenecer a múltiples clases o categorías. El programa esta basado en un macro-expansor a doble nivel de Tol en Html, que permite, por ejemplo, crear índices automáticos por artículos, por clases, por años que se tratan como clases, por niveles e índices de ilustraciones y por categorías de ilustraciones.

Este programa y la creación de este sitio web esta basado en un macro-expansor a doble nivel de Tol embebido en Html, donde la semilla de Html contiene Tol embebido y los post también pueden contener Tol embebido, por lo que dentro de la primera expansión, la de la semilla, se pueden realizar otras expansiones, que son las contenida en los post. La macro-espansión de Tol a doble nivel que se emplea en este programa permite que los post contengan código Html y código Tol, por ejemplo, para crear índices, realizar cálculos, poner diferentes contenidos para una misma página en diferentes ejecuciones, etc.

make.tol de PDonnelly.CellsMatrix

PDonnelly.CellsMatrix es un programa que reproduce el autómata celular propuesto por Peter James Donnelly y que esta programado en Tol utilizando una estructura matricial, Matrix, de celulas de opinion. Es un programa desarrollado en un solo fichero Tol y que al emplear una version moderna de la funcion FormatMatrix() de 6 parametros, que en las

PDonnelly.CellsMatrix es un programa que reproduce el autómata celular propuesto por Peter James Donnelly y que esta programado en Tol utilizando una estructura matricial, Matrix, de celulas de opinion. Es un programa desarrollado en un solo fichero Tol y que al emplear una version moderna de la funcion FormatMatrix() de 6 parametros, que en las versiones anteriores solo tiene 3, funciona a partir de la version Tol 2.0.1, sin embargo, su adaptacion a versiones anteriores no es compleja.

Cada celda de la matriz de este automata celular contiene un valor, por ejemplo, el 0 o el 1 elegido aleatoriamente, si bien PDonnelly.CellsMatrix puede funcionar hasta con 10 valores diferentes del 0 al 9 Cada valor 0 o 1 puede representar, por ejemplo, la opinión política de la persona residente en esa celda de la matriz u otra opinion sobre cualquier otro tema en particular. En cada paso del programa, se selecciona al azar a una de las personas y su opinion se somete a un posible cambio. Para ello se selecciona al azar uno de sus 8 vecinos, o menos si la celda esta situada en un borde o esquina de la matriz y su opinion se cambia por la de este vecino, fuera cual fuera su anterior opinión, pudiendo ser que no cambie si era la misma que la de su vecino. Este automata celular de, a partir de una matriz con valores aleatorios, tiende a crear zonas de opinion que crecen unas sobre otras y evolucionan por areas de influencia, llegado el caso, tras multiples ciclos, puede que toda la matriz puede terminar siendo de la misma opinion. Una de las posibles variantes de simulacion, que se incluye dentro de este programa PDonnelly.CellsMatrix, es la de la opinion contraria, esto es, que la persona en vez de adoptar la misma opinion que su vecino, adopte justo la contraria. Con esta estrategia, en vez de formarse grupos el proceso es justo el contrario, los grupos de opinion tienden a deshacerse segun avanza el proceso de ejecucion.

make.tol de iForense

Programa constructor del sitio web del dominio forense.info dedicado a contenidos de formación en informática forense en donde se presentan 3 cursos de experto, especialista y máster en informática forense y pericial. Los contenidos que emplea son posts con 3 niveles de importancia (status), que se organizan en un directorio, que se denomina

Programa constructor del sitio web del dominio forense.info dedicado a contenidos de formación en informática forense en donde se presentan 3 cursos de experto, especialista y máster en informática forense y pericial. Los contenidos que emplea son posts con 3 niveles de importancia (status), que se organizan en un directorio, que se denomina agenda, este directorio tiene contiene varios ficheros, cada fichero contiene varios posts y cada post pertenece a una o varias clases (categorías) de posts. Dentro de este directorio de agenda, sin pertenecer a ella, hay un glosario de términos de informática forense que permiten ilustrar los contenidos del sitio de forma no determinista.

Este programa y la creación de este sitio web sobre informática forense está basado en un macro-expansor a doble nivel de Tol embebido en Html, donde la semilla de Html contiene Tol embebido y los post también pueden contener Tol embebido, por lo que dentro de la primera expansión, la de la semilla, se pueden realizar otras expansiones, que son las contenida en los post. La macro-espansión de tol a doble nivel permite que los post contengan código en lenguaje Html y código en lenguaje Tol, ello permite, por ejemplo, crear índices o incluir definiciones de los términos del glosario de informática forense dentro de cada post. Para el manejo de los términos del glosario de informática forense del que dispone este programa, en su libreria glo.tol, se emplea de forma básica el álgebra de conjuntos de Tol, para evitar, en la medida de lo posible, la repetición de la ocurrencia de la definición de los términos.

make.tol de Ink.Watercolor

Programa constructor del sitio web del dominio inkwatercolor.com dedicado a contenidos de arte creados con tintas y acuarelas y con otras diferentes técnicas. Los contenidos que emplea para crearlo son: a) registros de obras de arte, en 2 idiomas, castellano e inglés, que se organizan en en un directorio, que se denomina agenda y b) ficheros en

Programa constructor del sitio web del dominio inkwatercolor.com dedicado a contenidos de arte creados con tintas y acuarelas y con otras diferentes técnicas. Los contenidos que emplea para crearlo son: a) registros de obras de arte, en 2 idiomas, castellano e inglés, que se organizan en en un directorio, que se denomina agenda y b) ficheros en formato JPG con imágenes de las obras de arte en diversos tanaños (pequeños, más grandes, DIN A4 y DIN A3). // El directorio de agenda puede contener varios ficheros, en especial, contiene un fichero por cada galería de arte, de esta forma, hay un fichero para: a) la galería llamada chppho, que es la principal, y que está dedicada a obras de pintura automática realizadas en tintas y acuarelas, b) la galería llamada fleurs, que está dedicada a las Flores del Mal de Charles Baudelaire, hay una pintura para cada uno de sus poemas y c) la galería llamada inarmy, que está dedicada a esquemas y apuntes rápidos de la vida castrense.

Este programa para la creación del sitio web inkwatercolor.com es de los primeros desarrollados en TOL para la creación de páginas web y conserva mucha de su programación original que tiene las caracteríscas siguientes: a) La creación de las páginas Html se realiza en fases, primero construyendo semillas de páginas web (templeates) a partir de semillas de trozos comunes de páginas web. Por ejemplo, con semillas de títulos, de menús, de estructuras para cuadros, etc. se crean semillas (templates) para páginas que han de albergar cuadros, unas para inglés otras para castellano, unas para 1 cuadro, para 4 cuadros, para listados de cuadros, etc. b) Tiene funcionalidad para crea de forma automática: índices, como listados de enlaces, de ilustraciones, pero los índices principales del sitio web se tienen que crear de forma manual. c) Tiene funcionalidad para rellenar automáticamente la descripción y la lista de palabras clave de cada página web y las crea de una forma personalizada para cada página dependiendo del cuadro o de los cuadros que alberga (campos meta), de forma que la descripción de una página es un resumen da la descripción de sus cuadros, pero las descripciones y las listas de palabras clave que genera no son especialmente largas. d) Delega en Javascript todas aquellas funcionalidades para las que, en el momento de su desarrollo, Javascript parecía más adecuado.

make.tol de SHi.SyntaxHighlight

SHi.SyntaxHighlight es una libreria con funciones que permiten construir generadores de sintaxis realzada (syntax highlight). Por ejemplo, el programa Dct.Write, que genera contenidos para el sitio web lazytol.com, esta basado, entre otras, en esta libreria. Esta libreria de funciones esta fundamentalmente orientada para el realce de sintaxis del

SHi.SyntaxHighlight es una libreria con funciones que permiten construir generadores de sintaxis realzada (syntax highlight). Por ejemplo, el programa Dct.Write, que genera contenidos para el sitio web lazytol.com, esta basado, entre otras, en esta libreria. Esta libreria de funciones esta fundamentalmente orientada para el realce de sintaxis del lenguaje de programacion Tol (Time Oriented Language), pero tambien sirve para otros lenguajes como por ejemplo: a) Sql (Structured Query Language), b) el lenguaje de los ficheros de especificacion de Gnuplot, c) el de los ficheros de mandatos de Windows de Microsoft, d) Css (Cascading Style Sheets), e) Html (HyperText Markup Language), f) Xml (eXtensible Markup Language) y g) Javascript. Para el realce de la sintaxis emplea los colores de los textos: a) negro para el codigo fuente, b) verde para los comentarios y c) azul para los textos.

Se trata de un realce de sintaxis basico orientado a generar la documentacion de los programas Tol, de su codigo fuente, ficheros auxiliares y de otros lenguajes de programacion que conviven con Tol, como Slq, Html, Xml, etc. en 2 formatos diferentes: a) como paginas web en Html y b) como documentos en formato Pdf. Este programa SHi.SyntaxHighlight realiza: a) una serie de pruebas de las funciones de sintaxsis realzada de su libreria y b) tambien permiten comprender como es la informacion que retorna la funcion Parse() del lenguaje Tol, si bien esta funcion es realmente empleada en otros programas que pueden basarse en esta libreria, como por ejemplo, Dct.Writer.

make.tol de Constraint.Queen

Solucionador del juego de las 8 reinas en un tablero de ajedrez como un sistema de restricciones con 3 componentes: a) restriccion que hay que cumplir, que es condicion logica, b) accion, que es una funcion correctora, c) reaccion, que es una funcion de backtrack frente a ciclos. Es un solucionador, programado de forma iterativa, desarrollado en un

Solucionador del juego de las 8 reinas en un tablero de ajedrez como un sistema de restricciones con 3 componentes: a) restriccion que hay que cumplir, que es condicion logica, b) accion, que es una funcion correctora, c) reaccion, que es una funcion de backtrack frente a ciclos. Es un solucionador, programado de forma iterativa, desarrollado en un solo fichero Tol en el que se declaran: a) todas las funciones para las reinas, b) para sus restricciones de no estar ni en la misma fila ni en diagonal y c) que asume como punto de partida que cada reina esta en una columna diferente a las otras. Este metodo iterativo que: a) para guardar memoria del estado en curso utiliza la reasignacion := de Tol y b) ademas tiene una variable de memoria de texto, ver seccion blackboard, que conserva todos los estados del proceso de solucion. La memoria (QueMemory) permite detectar ciclos y ademas generar una traza para que un simulador Javascript reproduzca visualmente el proceso de resolucion en Tol. El contenido de la memoria a partir de un estado inicial INI podria ser el siguiente 11111111INIT| 12111111A2:2| 13111111A2:3| 13211111A3:2|... 13524111R6:1|... como resultado de aplicar acciones (A) y reacciones (R) que mueven una reina a una fila, por ejemplo, A2:3, es la accion de mover la reina 2 a la fila 3. Esta comprobado el funcionamiento de Constraint.Queen para las versiones de Tol 1.1.5, 1.1.6 y 2.0.1, pero funciona con la version 1.1.1. Una posible razon son los 5 usos de la reasignacion := que se realizadan en este programa Tol cuando lo usual, y recomendable, es ninguno.

Constraint.Queen es una version basica de programacion con restricciones, casi para uso formativo formativo, donde: a) Cada restriccion logica tiene una funcion correctora, que es siempre del mismo estilo, que consiste en que la reina que no cumple la restriccion avance un paso, esto es que suba a su fila superior. b) Los hechos son para cada reina son su posicion de fila y columna, si bien la columna no cambia en todo el proceso de resolucion. c) El dominio de los valores, de las posiciones 1 a 8, esta subsumido en la funcion que avanza a las reinas de fila 1 :- 2, 2 :- 3,..., 7 :- 8 y 8 :- 1. d) La restriccion, ademas de su accion correctora, incluye una funcion llamada de reaccion, que se ejecuta solo cuando se detecta que de aplicar la accion se entraria en un ciclo que se detecta porque se guarda memoria de todos los pasos dados en el proceso de resolucion. Notese que no es habitual encontrar este tipo de restricciones que incluyan una funcion correctora (accion) y una funcion equiparable a un backtrack (reaccion) como las que implementa el programa Constraint.Queen. Dentro de esta programacion se denomina reina esclava, slave queen, a la reina restringida por la condicion logica y reinas maestras, masters queen, a las que restringen. Para facilitar la declaracion de las restricciones cada reinas esclava es restringida por todas las que están a su izquierda, esto es, por sus reinas maestras.

2015 asolver.com | Aviso legal | XHTML | Δ Θ Ξ | Creative Commons | Mapa y funciones del sitio

Tol