Query-based object-oriented programming: a declarative web of objects

Y. Seginer, T. Vosse, Gil Harari, Uri Kolodny
{"title":"Query-based object-oriented programming: a declarative web of objects","authors":"Y. Seginer, T. Vosse, Gil Harari, Uri Kolodny","doi":"10.1145/3276945.3276949","DOIUrl":null,"url":null,"abstract":"We present a declarative, object-oriented language in which queries play a central role. Queries are used not only to access data, but also to refer to the application’s object members and as a means of program control. The language is fully declarative, with queries and other pure functions defining the relations between the attributes of different objects. A rule-base-like write operation allows state to be updated. Control is achieved by queries selecting the class variants (mixin classes) which are active in each object. The dynamic activation and deactivation of declarative mixin classes allows decomposition of functionality into small reusable classes. The programming style in the language is functional and reactive, with function applications defining object members. Queries are one type of function, which also serves as the glue which puts these functions together, providing them with their input. Since queries describe declaratively what they return, they leave it to the system to implement the how of getting it. Combining this with an organization around objects makes the language highly suitable for complex interactive applications driven by large amounts of data from multiple sources. Our implementation of the language includes a strong display component. It can be seen as a conceptual extension of HTML and CSS in a way which replaces the need for the JavaScript imperative component in web applications. The work described here is not restricted, however, to front-end development and can be applied elsewhere as well.","PeriodicalId":113872,"journal":{"name":"Proceedings of the 14th ACM SIGPLAN International Symposium on Dynamic Languages","volume":"27 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-10-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 14th ACM SIGPLAN International Symposium on Dynamic Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3276945.3276949","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

Abstract

We present a declarative, object-oriented language in which queries play a central role. Queries are used not only to access data, but also to refer to the application’s object members and as a means of program control. The language is fully declarative, with queries and other pure functions defining the relations between the attributes of different objects. A rule-base-like write operation allows state to be updated. Control is achieved by queries selecting the class variants (mixin classes) which are active in each object. The dynamic activation and deactivation of declarative mixin classes allows decomposition of functionality into small reusable classes. The programming style in the language is functional and reactive, with function applications defining object members. Queries are one type of function, which also serves as the glue which puts these functions together, providing them with their input. Since queries describe declaratively what they return, they leave it to the system to implement the how of getting it. Combining this with an organization around objects makes the language highly suitable for complex interactive applications driven by large amounts of data from multiple sources. Our implementation of the language includes a strong display component. It can be seen as a conceptual extension of HTML and CSS in a way which replaces the need for the JavaScript imperative component in web applications. The work described here is not restricted, however, to front-end development and can be applied elsewhere as well.
基于查询的面向对象编程:一个声明性的对象网络
我们提出了一种声明性的、面向对象的语言,其中查询起着中心作用。查询不仅用于访问数据,而且还用于引用应用程序的对象成员,并作为程序控制的一种手段。该语言是完全声明式的,使用查询和其他纯函数定义不同对象属性之间的关系。类似规则库的写操作允许更新状态。控制是通过查询选择在每个对象中活动的类变体(mixin类)来实现的。声明性mixin类的动态激活和停用允许将功能分解为可重用的小类。该语言的编程风格是函数式和响应式的,函数应用程序定义对象成员。查询是一种类型的函数,它还充当将这些函数组合在一起的粘合剂,为它们提供输入。由于查询是声明性地描述它们返回的内容,因此它们将如何获得它留给系统来实现。将这一点与围绕对象的组织相结合,使得该语言非常适合由来自多个来源的大量数据驱动的复杂交互式应用程序。我们的语言实现包括一个强大的显示组件。它可以被看作是HTML和CSS的概念扩展,在某种程度上取代了web应用程序中对JavaScript命令式组件的需求。然而,这里描述的工作并不局限于前端开发,也可以应用于其他地方。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信