{"title":"在联合函数和对象中高效地实现聚合","authors":"Zhonghua Li, C. Kirkham","doi":"10.1145/1122018.1122032","DOIUrl":null,"url":null,"abstract":"We discuss the problem of efficiently implementing functional aggregates in the new language United Functions and Objects(UFO)[9]. Our method is applicable to any high-order call-by-value functional language with nested aggregates. The novelty and originality in our work are as follows. (1) We introduce the concepts of group and degree. Through partitioning operations into groups and evaluating their degrees, the algorithm can schedule the most likely operation to be done in place. (2) Through introducing a new method of sharing counting, we can achieve storage reuse for nested aggregates. (3) Our pre-allocation strategy puts both incremental construction and incremental modification of aggregates into a unified framework, and so more global optimizations can be achieved. The time complexity of the algorithm is polynomial, and in common cases, it is linear to program size.","PeriodicalId":349974,"journal":{"name":"ACM-SE 33","volume":"12 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1995-03-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Efficient implementation of aggregates in united functions and objects\",\"authors\":\"Zhonghua Li, C. Kirkham\",\"doi\":\"10.1145/1122018.1122032\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"We discuss the problem of efficiently implementing functional aggregates in the new language United Functions and Objects(UFO)[9]. Our method is applicable to any high-order call-by-value functional language with nested aggregates. The novelty and originality in our work are as follows. (1) We introduce the concepts of group and degree. Through partitioning operations into groups and evaluating their degrees, the algorithm can schedule the most likely operation to be done in place. (2) Through introducing a new method of sharing counting, we can achieve storage reuse for nested aggregates. (3) Our pre-allocation strategy puts both incremental construction and incremental modification of aggregates into a unified framework, and so more global optimizations can be achieved. The time complexity of the algorithm is polynomial, and in common cases, it is linear to program size.\",\"PeriodicalId\":349974,\"journal\":{\"name\":\"ACM-SE 33\",\"volume\":\"12 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1995-03-17\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ACM-SE 33\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/1122018.1122032\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM-SE 33","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1122018.1122032","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 2
摘要
我们讨论了在新语言United Functions and Objects(UFO)中高效实现功能聚合的问题[9]。我们的方法适用于任何具有嵌套聚合的高阶按值调用函数语言。我们工作的新颖性和独创性如下。(1)引入群和度的概念。通过将操作划分为组并评估其程度,该算法可以调度最可能完成的操作。(2)通过引入一种新的共享计数方法,实现嵌套聚合的存储重用。(3)我们的预分配策略将增量构建和增量修改聚合整合到一个统一的框架中,可以实现更多的全局优化。该算法的时间复杂度为多项式,通常情况下,它与程序大小呈线性关系。
Efficient implementation of aggregates in united functions and objects
We discuss the problem of efficiently implementing functional aggregates in the new language United Functions and Objects(UFO)[9]. Our method is applicable to any high-order call-by-value functional language with nested aggregates. The novelty and originality in our work are as follows. (1) We introduce the concepts of group and degree. Through partitioning operations into groups and evaluating their degrees, the algorithm can schedule the most likely operation to be done in place. (2) Through introducing a new method of sharing counting, we can achieve storage reuse for nested aggregates. (3) Our pre-allocation strategy puts both incremental construction and incremental modification of aggregates into a unified framework, and so more global optimizations can be achieved. The time complexity of the algorithm is polynomial, and in common cases, it is linear to program size.