{"metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00174597","sets":["934:935:8438:8851"]},"path":["8851"],"owner":"11","recid":"174597","title":["Declaring Constraints on Object-oriented Collections"],"pubdate":{"attribute_name":"公開日","attribute_value":"2016-09-12"},"_buckets":{"deposit":"3ca1101d-80f7-4b06-aa0e-97a9a3925382"},"_deposit":{"id":"174597","pid":{"type":"depid","value":"174597","revision_id":0},"owners":[11],"status":"published","created_by":11},"item_title":"Declaring Constraints on Object-oriented Collections","author_link":["360128","360131","360132","360136","360129","360137","360133","360135","360130","360134"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"Declaring Constraints on Object-oriented Collections"},{"subitem_title":"Declaring Constraints on Object-oriented Collections","subitem_title_language":"en"}]},"item_keyword":{"attribute_name":"キーワード","attribute_value_mlt":[{"subitem_subject":"[通常論文]  object constraint programming, constraint imperative programming, constraint solving, babelsberg","subitem_subject_scheme":"Other"}]},"item_type_id":"3","publish_date":"2016-09-12","item_3_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"Hasso Plattner Institute, University of Potsdam"},{"subitem_text_value":"Hasso Plattner Institute, University of Potsdam"},{"subitem_text_value":"Hasso Plattner Institute, University of Potsdam"},{"subitem_text_value":"University of Washington"},{"subitem_text_value":"Department of Mathematical and Computing Science, Tokyo Institute of Technology"}]},"item_3_text_4":{"attribute_name":"著者所属(英)","attribute_value_mlt":[{"subitem_text_value":"Hasso Plattner Institute, University of Potsdam","subitem_text_language":"en"},{"subitem_text_value":"Hasso Plattner Institute, University of Potsdam","subitem_text_language":"en"},{"subitem_text_value":"Hasso Plattner Institute, University of Potsdam","subitem_text_language":"en"},{"subitem_text_value":"University of Washington","subitem_text_language":"en"},{"subitem_text_value":"Department of Mathematical and Computing Science, Tokyo Institute of Technology","subitem_text_language":"en"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"eng"}]},"item_publisher":{"attribute_name":"出版者","attribute_value_mlt":[{"subitem_publisher":"情報処理学会","subitem_publisher_language":"ja"}]},"publish_status":"0","weko_shared_id":-1,"item_file_price":{"attribute_name":"Billing file","attribute_type":"file","attribute_value_mlt":[{"url":{"url":"https://ipsj.ixsq.nii.ac.jp/record/174597/files/IPSJ-TPRO0904003.pdf","label":"IPSJ-TPRO0904003.pdf"},"date":[{"dateType":"Available","dateValue":"2018-09-12"}],"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-TPRO0904003.pdf","filesize":[{"value":"1.0 MB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"0","billingrole":"5"},{"tax":["include_tax"],"price":"0","billingrole":"6"},{"tax":["include_tax"],"price":"0","billingrole":"15"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_date","version_id":"bf35a803-88aa-408c-9505-762c5d44d01d","displaytype":"detail","licensetype":"license_note","license_note":"Copyright (c) 2016 by the Information Processing Society of Japan"}]},"item_3_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Tim, Felgentreff"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Robert, Hirschfeld"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Maria, Graber"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Alan, Borning"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Hidehiko, Masuhara"}],"nameIdentifiers":[{}]}]},"item_3_creator_6":{"attribute_name":"著者名(英)","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"Tim, Felgentreff","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Robert, Hirschfeld","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Maria, Graber","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Alan, Borning","creatorNameLang":"en"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"Hidehiko, Masuhara","creatorNameLang":"en"}],"nameIdentifiers":[{}]}]},"item_3_source_id_9":{"attribute_name":"書誌レコードID","attribute_value_mlt":[{"subitem_source_identifier":"AA11464814","subitem_source_identifier_type":"NCID"}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourceuri":"http://purl.org/coar/resource_type/c_6501","resourcetype":"journal article"}]},"item_3_source_id_11":{"attribute_name":"ISSN","attribute_value_mlt":[{"subitem_source_identifier":"1882-7802","subitem_source_identifier_type":"ISSN"}]},"item_3_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"Logic puzzles such as Sudoku are described by a set of properties that a valid solution must have. Constraints are a useful technique to describe and solve for such properties. However, constraints are less suited to express imperative interactions in a user interface for logic puzzles, a domain that is more readily expressed in the object-oriented paradigm. Object constraint programming provides a design to integrate constraints with dynamic, object-oriented programming languages. It allows developers to encode multi-way constraints over objects using existing, object-oriented abstractions. These constraints are automatically maintained at run-time. In this paper we present an application of this design to logic puzzles in the Squeak/Smalltalk programming environment, as well as an extension of the design and the formal semantics of Babelsberg to allow declaring constraints using the imperative collection API provided in Squeak. We argue that our implementation facilitates creating applications that use imperative construction of user interfaces and mutable program state as well as constraint satisfaction techniques for different parts of the system. The main advantage of our approach is that it moves the burden to maintain constraints from the developer to the runtime environment, while keeping the development experience close to the purely object-oriented approach.\n------------------------------\nThis is a preprint of an article intended for publication Journal of\nInformation Processing(JIP). This preprint should not be cited. This\narticle should be cited as: Journal of Information Processing Vol.24(2016) No.6(online)\n------------------------------","subitem_description_type":"Other"}]},"item_3_description_8":{"attribute_name":"論文抄録(英)","attribute_value_mlt":[{"subitem_description":"Logic puzzles such as Sudoku are described by a set of properties that a valid solution must have. Constraints are a useful technique to describe and solve for such properties. However, constraints are less suited to express imperative interactions in a user interface for logic puzzles, a domain that is more readily expressed in the object-oriented paradigm. Object constraint programming provides a design to integrate constraints with dynamic, object-oriented programming languages. It allows developers to encode multi-way constraints over objects using existing, object-oriented abstractions. These constraints are automatically maintained at run-time. In this paper we present an application of this design to logic puzzles in the Squeak/Smalltalk programming environment, as well as an extension of the design and the formal semantics of Babelsberg to allow declaring constraints using the imperative collection API provided in Squeak. We argue that our implementation facilitates creating applications that use imperative construction of user interfaces and mutable program state as well as constraint satisfaction techniques for different parts of the system. The main advantage of our approach is that it moves the burden to maintain constraints from the developer to the runtime environment, while keeping the development experience close to the purely object-oriented approach.\n------------------------------\nThis is a preprint of an article intended for publication Journal of\nInformation Processing(JIP). This preprint should not be cited. This\narticle should be cited as: Journal of Information Processing Vol.24(2016) No.6(online)\n------------------------------","subitem_description_type":"Other"}]},"item_3_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographic_titles":[{"bibliographic_title":"情報処理学会論文誌プログラミング(PRO)"}],"bibliographicIssueDates":{"bibliographicIssueDate":"2016-09-12","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"4","bibliographicVolumeNumber":"9"}]},"relation_version_is_last":true,"weko_creator_id":"11"},"id":174597,"updated":"2025-01-20T06:02:38.271817+00:00","links":{},"created":"2025-01-19T00:44:46.062231+00:00"}