stringtranslate.com

Casuario (software)

Cassowary es un conjunto de herramientas de resolución de restricciones incrementales que resuelve de manera eficiente sistemas de igualdades y desigualdades lineales . Las restricciones pueden ser requisitos o preferencias. El código del cliente especifica las restricciones que se deben mantener y el solucionador actualiza las variables restringidas para que tengan valores que satisfagan las restricciones.

Cassowary fue desarrollado por Greg J. Badros, Alan Borning y Peter J. Stuckey, y fue optimizado para aplicaciones de interfaz de usuario. [1] Badros utilizó Cassowary, entre otros, para implementar Constraint Cascading Style Sheets (CCSS), una extensión de Cascading Style Sheets (CSS). CCSS agrega soporte para restricciones de diseño . Estas permiten a los diseñadores describir el diseño de una página web de una manera más flexible. Cassowary se utiliza para resolver estas restricciones y calcular el diseño final.

La distribución original, [2] sin mantenimiento desde 2000, incluía implementaciones de Smalltalk , C++ y Java , junto con enlaces para GNU Guile , Python y STk. Existen implementaciones de terceros para JavaScript , [3] Dart , [4] Squeak , [5] Python , [6] [7] .NET Framework , [8] y Rust . [9]

Aplicaciones

Referencias

  1. ^ Algoritmo de resolución de restricciones aritméticas lineales de Cassowary, Autores: Greg J. Badros, Alan Borning y Peter J. Stuckey
  2. ^ "Kit de herramientas para la resolución de restricciones de casuario". Universidad de Washington.
  3. ^ cassowary.js en GitHub
  4. ^ google/cassowary.dart, Google, 12 de agosto de 2020 , consultado el 8 de diciembre de 2020
  5. ^ Casuario
  6. ^ Casuario en GitHub
  7. ^ kiwi en GitHub
  8. ^ Vermeulen, Jo. "Casuario.Net". jovermeulen.com . Consultado el 10 de diciembre de 2020 .
  9. ^ cassowary-rs en GitHub
  10. ^ "Historial de desarrollo de hojas de estilo de cuadrícula". GitHub .
  11. ^ "Acerca de CCSS". Archivado desde el original el 11 de septiembre de 2014. Consultado el 22 de septiembre de 2014 .
  12. ^ "Página de inicio del sitio web de Layx".
  13. ^ "Casuarius proporciona enlaces de Python a una implementación en C++ del algoritmo Cassowary". Archivado desde el original el 14 de agosto de 2017. Consultado el 19 de septiembre de 2017 .
  14. ^ casuarius en GitHub
  15. ^ Kiwi, un reemplazo para Casuarius/Cassowary. El nuevo solucionador elimina ese cuello de botella. Sigue utilizando el mismo algoritmo Cassowary, pero es una implementación desde cero del algoritmo basada en el artículo de Cassowary, no en el código fuente de Cassowary existente. Si bien el algoritmo Cassowary es bueno, la implementación de C++ existente tiene muchas ineficiencias. El nuevo solucionador es entre 12 y 500 veces más rápido según el problema (40 veces típico) y utiliza alrededor de 5 veces menos memoria. Y como suelo hacer, elegí escribir los enlaces de Python a mano en C++ en lugar de usar Cython. El código resultante es más rápido y ahora tenemos una dependencia externa menos.
  16. ^ kiwi en GitHub