Articulo de referencia

Caleidoscopio (lenguaje de programación)

El lenguaje de programación Kaleidoscope es un lenguaje de programación con restricciones que integra restricciones en un lenguaje imperativo orientado a objetos . Añade las pal...

El lenguaje de programación Kaleidoscope es un lenguaje de programación con restricciones que integra restricciones en un lenguaje imperativo orientado a objetos . Añade las palabras clave always , once y assert .. during (anteriormente while .. assert ) para realizar afirmaciones sobre invariantes relacionales. Los objetos poseen constructores de restricciones, que no son métodos, para garantizar el significado de los tipos de datos definidos por el usuario.

Hay tres versiones de Kaleidoscope que muestran una evolución desde un estilo declarativo a uno cada vez más imperativo. Las diferencias entre ellas son las siguientes. [ 1 ]

Ejemplo

Compare los dos segmentos de código, ambos permiten al usuario arrastrar el nivel de mercurio en un termómetro gráfico simple con el ratón.

Sin restricciones:

mientras mouse.button = pulsado hacer antiguo <- mercurio.superior; mercurio.superior <- mouse.location.y; temperatura <- mercurio.altura / escala; mostrar_número(temperatura); Si old < mercury.top entonces delta_gris( viejo, mercurio.superior ); si no, si old > mercury.top entonces delta_white(mercury.top, old); fin si; fin mientras;

Con restricciones:

siempre: temperatura = mercurio.altura / escala; siempre: rectángulo blanco (termómetro); siempre: rectángulo gris (mercurio); siempre: mostrar número(temperatura); mientras mouse.button = pulsado hacer mercurio.superior = ubicación.y del ratón; fin mientras;

Referencias

  • López, Gus; Bjorn Freeman-Benson; Alan Borning (1994). "Kaleidoscope: Un lenguaje de programación imperativo de restricciones". Programación de restricciones . Springer-Verlag. págs. 313–329 . 
  • Marriott, Kim; Peter J. Stuckey (1998). Programación con restricciones: Una introducción . MIT Press.ISBN 0-262-13341-5
  1. Lopez, Gus; Freeman-Benson, Bjorn; Borning, Alan (1993). "Kaleidoscope: A Constraint Imperative Programming Language" (PDF) . constraints.cs.washington.edu . Consultado el 30 de diciembre de 2023 .