Программирование в ограничениях для автоматизированного проектирования интерфейсов

Обложка

Цитировать

Полный текст

Открытый доступ Открытый доступ
Доступ закрыт Доступ предоставлен
Доступ закрыт Только для подписчиков

Аннотация

В работе рассматривается задача автоматизированного проектирования графических интерфейсов пользователя (GUI). Система, основанная на программировании в ограничениях, принимает правила расположения элементов управления, сами элементы и выдает некоторое количество расположений, удовлетворяющих правилам. Система реализована как веб-приложение и позволяет получать ответы постепенно за разумное время.

Об авторах

П. А. Лозов

Санкт-Петербургский государственный университет

Email: lozov.peter@gmail.com
199034, Санкт-Петербург, Университеская наб., д. 7–9

Д. С. Косарев

Санкт-Петербургский государственный университет

Email: d.kosarev@spbu.ru
199034, Санкт-Петербург, Университеская наб., д. 7–9

Д. Ю. Булычев

Санкт-Петербургский государственный университет

Email: dboulytchev@math.spbu.ru
199034, Санкт-Петербург, Университеская наб., д. 7–9

Список литературы

  1. Haft M., Humm B., Siedersleben J. The Architect’s Dilemma – Will Reference Architectures Help? Quality of Software Architectures and Software Quality, 2005. P. 106–122.
  2. Ergonomics of human-system interaction – Part 210: Human-centred design for interactive systems. ISO 9241-210:2019, International Organization for Standardization, 2019.
  3. Gerber E., Carroll M. The psychological experience of prototyping. Design Studies. 2012. V. 33. № 1. 2012. P. 64–84.
  4. Friedman D.P., William W.E., Kiselyov O., Hemann J. The Reasoned Schemer. The MIT Press, 2nd edition, Cambridge, USA, 2005. 224 p.
  5. Lozov P., Verbitskaia E., Boulytchev D. Relational Interpreters for Search Problems. In miniKanren and Relational Programming Workshop, 2019.
  6. Leonardo de Moura, Bjørner N. Z3: An Efficient SMT Solver. Tools and Algorithms for the Construction and Analysis of Systems, Springer Berlin Heidelberg. 2008. P. 337–340.
  7. Bengfort J. Thin vs. Thick vs. Zero Client: What’s the Right Fit for Your Business? Online. https://biztechmagazine.com / article / 2018 / 10 / thin-vs-thick-vs-zero-client-whats-right-fit-your-business-perfcon (accessed: 10.11.2024)
  8. IntelliJ platform UI guidelines: Layout (online). JetBrains s.r.o., 2000–2022. https://jetbrains.github.io / ui / principles / layout (accessed: 10.11.2024)
  9. Garey M.R., Johnson D.S. Computers and intractability. Vol. 174. San Francisco: Freeman, 1979.
  10. Kosarev D., Boulytchev D. Typed Embedding of a Relational Language in OCaml. Electronic Proceedings in Theoretical Computer Science. 2016. P. 1–22.
  11. Kiselyov O., Chung-chieh Shan, Friedman D.P., Amr S. Backtracking, Interleaving, and Terminating Monad Transformers: (Functional Pearl). In Proceedings of the Tenth ACM SIGPLAN International Conference on Functional Programming, New York, USA, 2005. P. 192–203.
  12. Rozplokhas D., Vyatkin A., Boulytchev D. Certified Semantics for Relational Programming. Programming Languages and Systems, APLAS 2020, Lecture Notes in Computer Science. V. 12470. Springer, Cham. P. 167–185.
  13. Comon H. Disunification: A Survey. Computational Logic – Essays in Honor of Alan Robinson. MIT Press. 1991. P. 322–359.
  14. Alvis C.E., Willcock J.J., Carter K.M., Byrd W.E., Friedman D.P. cKanren: miniKanren with Constraints. Proceedings of the 2011 Annual Workshop on Scheme and Functional Programming, 2011.
  15. Byrd W.E., Friedman D.P. aKanren A Fresh Name in Nominal Logic Programming. In Scheme and Functional Programming, 2007.
  16. Abramov S., Glück R. From Standard to Non-Standard Semantics by Semantics Modifiers. International Journal of Foundations of Computer Science. 2001. V. 12. № 2. P. 171–211. DOI: 10.1142 / S0129054101000448.
  17. Abramov S., Glück R. Combining Semantics with Non-standard Interpreter Hierarchies. FST TCS 2000: Foundations of Software Technology and Theoretical Computer Science, Springer Berlin Heidelberg. 2000. P. 201–213.
  18. Byrd W.E., Holk E., Friedman D.P. MiniKanren, Live and Untagged: Quine Generation via Relational Interpreters (Programming Pearl). Proceedings of the Annual Workshop on Scheme and Functional Programming, Association for Computing Machinery, New York, USA, 2012. P. 8–29.
  19. Byrd W.E., Ballantyne M., Rosenblatt G., Might M. A Unified Approach to Solving Seven Programming Problems (Functional Pearl). Proceedings of ACM Program. Lang., Association for Computing Machinery, New York, USA, 2017. P. 8:1–8:26.
  20. Kosarev D., Lozov P., Boulytchev D. Relational Synthesis for Pattern Matching. Programming Languages and Systems, Springer International Publishing, Cham. 2020. P. 293–310.
  21. Guthmann O., Strichman O., Trostanetski A. Minimal Unsatisfiable Core Extraction for SMT. 2016 Formal Methods in Computer-Aided Design (FMCAD), Mountain View, CA, USA, 2016. P. 57–64. DOI: 10.1109 / FMCAD.2016.7886661.
  22. React: A JavaScript Library for Building User Interfaces. Meta Platforms, Inc. https://reactjs.org / (accessed: 10.11.2024)
  23. Jetpack Compose. Android Developers. https://developer.android.com / compose (accessed: 10.11.2024)
  24. Streamlit framework site. https://docs.streamlit.io (accessed: 10.11.2024)
  25. Streamlit layouts and containers. https://docs.streamlit.io / develop / api-reference / layout (accessed: 10.11.2024)
  26. Borning A. Wallingford: Toward a Constraint Reactive Programming Language. Companion Proceedings of the 15th International Conference on Modularity, Association for Computing Machinery, New York, NY, USA, 2016. P. 45–49. DOI: 10.1145 / 2892664.2892667.
  27. Badros G.J., Borning A., Stuckey P.J. The Cassowary Linear Arithmetic Constraint Solving Algorithm. ACM Trans. Comput.-Hum. Interact., vol. 8, iss. 4, Association for Computing Machinery, New York, NY, USA, 2001. P. 267–306. DOI: 10.1145 / 504704.504705.
  28. Cai B., Luo J., Feng Z. A novel code generator for graphical user interfaces. Scientific Reports. 2023. V. 13. DOI: 10.1038 / s41598-023-46500-6.
  29. Bielik P., Fischer M., Vechev M. Robust relational layout synthesis from examples for Android. Proc. ACM Program. Lang., vol. 2, Association for Computing Machinery, New York, NY, USA, 2018. DOI: 10.1145 / 3276526.
  30. Android ConstraintLayout widget. https://developer.android.com / reference / androidx / constraintlayout / widget / ConstraintLayout (accessed: 10.11.2024)
  31. Brückner L., Leiva L.A., Oulasvirta A. Learning GUI Completions with User-defined Constraints. ACM Trans. Interact. Intell. Syst., vol. 12, Association for Computing Machinery, New York, NY, USA, 2022. DOI: 10.1145 / 3490034.
  32. Shiripour M., Dayama N.R., Oulasvirta A. Grid-based Genetic Operators for Graphical Layout Generation. Proc. ACM Hum.-Comput. Interact., vol. 5, Association for Computing Machinery, New York, NY, USA, 2021. DOI: 10.1145 / 3461730.
  33. Swearngin A., Wang C., Oleson A., Fogarty J., Amy J. Ko. Scout: Rapid Exploration of Interface Layout Alternatives through High-Level Design Constraints. Proceedings of the 2020 CHI Conference on Human Factors in Computing Systems, 2020.

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML

© Российская академия наук, 2025

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».