<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root>
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" article-type="research-article" dtd-version="1.2" xml:lang="en"><front><journal-meta><journal-id journal-id-type="publisher-id">Programming and Computer Software</journal-id><journal-title-group><journal-title xml:lang="en">Programming and Computer Software</journal-title><trans-title-group xml:lang="ru"><trans-title>Программирование</trans-title></trans-title-group></journal-title-group><issn publication-format="print">0132-3474</issn><issn publication-format="electronic">3034-5847</issn><publisher><publisher-name xml:lang="en">The Russian Academy of Sciences</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="publisher-id">695672</article-id><article-id pub-id-type="doi">10.7868/S3034584725040051</article-id><article-categories><subj-group subj-group-type="toc-heading" xml:lang="en"><subject>LANGUAGES, COMPILERS AND PROGRAMMING SYSTEMS</subject></subj-group><subj-group subj-group-type="toc-heading" xml:lang="ru"><subject>ЯЗЫКИ, КОМПИЛЯТОРЫ И СИСТЕМЫ ПРОГРАММИРОВАНИЯ</subject></subj-group><subj-group subj-group-type="article-type"><subject>Research Article</subject></subj-group></article-categories><title-group><article-title xml:lang="en">Constraint programming for automatic user interface construction</article-title><trans-title-group xml:lang="ru"><trans-title>Программирование в ограничениях для автоматизированного проектирования интерфейсов</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author"><name-alternatives><name xml:lang="en"><surname>Lozov</surname><given-names>P. A.</given-names></name><name xml:lang="ru"><surname>Лозов</surname><given-names>П. А.</given-names></name></name-alternatives><email>lozov.peter@gmail.com</email><xref ref-type="aff" rid="aff1"/></contrib><contrib contrib-type="author"><name-alternatives><name xml:lang="en"><surname>Kosarev</surname><given-names>D. S.</given-names></name><name xml:lang="ru"><surname>Косарев</surname><given-names>Д. С.</given-names></name></name-alternatives><email>d.kosarev@spbu.ru</email><xref ref-type="aff" rid="aff1"/></contrib><contrib contrib-type="author"><name-alternatives><name xml:lang="en"><surname>Boulytchev</surname><given-names>D. Y.</given-names></name><name xml:lang="ru"><surname>Булычев</surname><given-names>Д. Ю.</given-names></name></name-alternatives><email>dboulytchev@math.spbu.ru</email><xref ref-type="aff" rid="aff1"/></contrib></contrib-group><aff-alternatives id="aff1"><aff><institution xml:lang="en">St. Petersburg State University</institution></aff><aff><institution xml:lang="ru">Санкт-Петербургский государственный университет</institution></aff></aff-alternatives><pub-date date-type="pub" iso-8601-date="2025-08-15" publication-format="electronic"><day>15</day><month>08</month><year>2025</year></pub-date><issue>4</issue><issue-title xml:lang="en">NO4 (2025)</issue-title><issue-title xml:lang="ru">№4 (2025)</issue-title><fpage>57</fpage><lpage>70</lpage><history><date date-type="received" iso-8601-date="2025-11-01"><day>01</day><month>11</month><year>2025</year></date></history><permissions><copyright-statement xml:lang="en">Copyright ©; 2025, Russian Academy of Sciences</copyright-statement><copyright-statement xml:lang="ru">Copyright ©; 2025, Российская академия наук</copyright-statement><copyright-year>2025</copyright-year><copyright-holder xml:lang="en">Russian Academy of Sciences</copyright-holder><copyright-holder xml:lang="ru">Российская академия наук</copyright-holder><ali:free_to_read xmlns:ali="http://www.niso.org/schemas/ali/1.0/" start_date="2026-08-31"/></permissions><self-uri xlink:href="https://journals.eco-vector.com/0132-3474/article/view/695672">https://journals.eco-vector.com/0132-3474/article/view/695672</self-uri><abstract xml:lang="en"><p>The paper considers the task of automated design of graphical user interfaces (GUI). A system based on the constraint programming paradigm takes the rules for the arrangement of controls, the controls themselves, and determines some number of arrangements that satisfy the rules. The system is implemented as a web application and allows one to get responses gradually, within a reasonable time.</p></abstract><trans-abstract xml:lang="ru"><p>В работе рассматривается задача автоматизированного проектирования графических интерфейсов пользователя (GUI). Система, основанная на программировании в ограничениях, принимает правила расположения элементов управления, сами элементы и выдает некоторое количество расположений, удовлетворяющих правилам. Система реализована как веб-приложение и позволяет получать ответы постепенно за разумное время.</p></trans-abstract><kwd-group xml:lang="en"><kwd>automated GUI design</kwd><kwd>graphical user interfaces</kwd><kwd>interface design system</kwd><kwd>constraint programming</kwd><kwd>layout of control elements</kwd><kwd>web application for interface design</kwd><kwd>automation of interface layout</kwd><kwd>placement rules</kwd><kwd>generation of layout options</kwd><kwd>interactive design systems</kwd></kwd-group><kwd-group xml:lang="ru"><kwd>автоматизированное проектирование GUI</kwd><kwd>графические интерфейсы пользователя</kwd><kwd>система проектирования интерфейсов</kwd><kwd>программирование в ограничениях</kwd><kwd>расположение элементов управления</kwd><kwd>веб-приложение для проектирования интерфейсов</kwd><kwd>автоматизация дизайна интерфейсов</kwd><kwd>правила расположения элементов</kwd><kwd>генерация вариантов расположения</kwd><kwd>интерактивные системы проектирования</kwd></kwd-group></article-meta></front><body></body><back><ref-list><ref id="B1"><label>1.</label><mixed-citation>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.</mixed-citation></ref><ref id="B2"><label>2.</label><mixed-citation>Ergonomics of human-system interaction – Part 210: Human-centred design for interactive systems. ISO 9241-210:2019, International Organization for Standardization, 2019.</mixed-citation></ref><ref id="B3"><label>3.</label><mixed-citation>Gerber E., Carroll M. The psychological experience of prototyping. Design Studies. 2012. V. 33. № 1. 2012. P. 64–84.</mixed-citation></ref><ref id="B4"><label>4.</label><mixed-citation>Friedman D.P., William W.E., Kiselyov O., Hemann J. The Reasoned Schemer. The MIT Press, 2nd edition, Cambridge, USA, 2005. 224 p.</mixed-citation></ref><ref id="B5"><label>5.</label><mixed-citation>Lozov P., Verbitskaia E., Boulytchev D. Relational Interpreters for Search Problems. In miniKanren and Relational Programming Workshop, 2019.</mixed-citation></ref><ref id="B6"><label>6.</label><mixed-citation>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.</mixed-citation></ref><ref id="B7"><label>7.</label><mixed-citation>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)</mixed-citation></ref><ref id="B8"><label>8.</label><mixed-citation>IntelliJ platform UI guidelines: Layout (online). JetBrains s.r.o., 2000–2022. https://jetbrains.github.io / ui / principles / layout (accessed: 10.11.2024)</mixed-citation></ref><ref id="B9"><label>9.</label><mixed-citation>Garey M.R., Johnson D.S. Computers and intractability. Vol. 174. San Francisco: Freeman, 1979.</mixed-citation></ref><ref id="B10"><label>10.</label><mixed-citation>Kosarev D., Boulytchev D. Typed Embedding of a Relational Language in OCaml. Electronic Proceedings in Theoretical Computer Science. 2016. P. 1–22.</mixed-citation></ref><ref id="B11"><label>11.</label><mixed-citation>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.</mixed-citation></ref><ref id="B12"><label>12.</label><mixed-citation>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.</mixed-citation></ref><ref id="B13"><label>13.</label><mixed-citation>Comon H. Disunification: A Survey. Computational Logic – Essays in Honor of Alan Robinson. MIT Press. 1991. P. 322–359.</mixed-citation></ref><ref id="B14"><label>14.</label><mixed-citation>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.</mixed-citation></ref><ref id="B15"><label>15.</label><mixed-citation>Byrd W.E., Friedman D.P. aKanren A Fresh Name in Nominal Logic Programming. In Scheme and Functional Programming, 2007.</mixed-citation></ref><ref id="B16"><label>16.</label><mixed-citation>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.</mixed-citation></ref><ref id="B17"><label>17.</label><mixed-citation>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.</mixed-citation></ref><ref id="B18"><label>18.</label><mixed-citation>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.</mixed-citation></ref><ref id="B19"><label>19.</label><mixed-citation>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.</mixed-citation></ref><ref id="B20"><label>20.</label><mixed-citation>Kosarev D., Lozov P., Boulytchev D. Relational Synthesis for Pattern Matching. Programming Languages and Systems, Springer International Publishing, Cham. 2020. P. 293–310.</mixed-citation></ref><ref id="B21"><label>21.</label><mixed-citation>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.</mixed-citation></ref><ref id="B22"><label>22.</label><mixed-citation>React: A JavaScript Library for Building User Interfaces. Meta Platforms, Inc. https://reactjs.org / (accessed: 10.11.2024)</mixed-citation></ref><ref id="B23"><label>23.</label><mixed-citation>Jetpack Compose. Android Developers. https://developer.android.com / compose (accessed: 10.11.2024)</mixed-citation></ref><ref id="B24"><label>24.</label><mixed-citation>Streamlit framework site. https://docs.streamlit.io (accessed: 10.11.2024)</mixed-citation></ref><ref id="B25"><label>25.</label><mixed-citation>Streamlit layouts and containers. https://docs.streamlit.io / develop / api-reference / layout (accessed: 10.11.2024)</mixed-citation></ref><ref id="B26"><label>26.</label><mixed-citation>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.</mixed-citation></ref><ref id="B27"><label>27.</label><mixed-citation>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.</mixed-citation></ref><ref id="B28"><label>28.</label><mixed-citation>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.</mixed-citation></ref><ref id="B29"><label>29.</label><mixed-citation>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.</mixed-citation></ref><ref id="B30"><label>30.</label><mixed-citation>Android ConstraintLayout widget. https://developer.android.com / reference / androidx / constraintlayout / widget / ConstraintLayout (accessed: 10.11.2024)</mixed-citation></ref><ref id="B31"><label>31.</label><mixed-citation>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.</mixed-citation></ref><ref id="B32"><label>32.</label><mixed-citation>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.</mixed-citation></ref><ref id="B33"><label>33.</label><mixed-citation>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.</mixed-citation></ref></ref-list></back></article>
