首页 > 最新文献

ASIA-PEPM '02最新文献

英文 中文
Principal type specialisation 主体类型专业化
Pub Date : 2002-09-12 DOI: 10.1145/568173.568184
P. E. M. López, John Hughes
Type specialisation is an approach to program specialisation that works with both a program and its type to produce specialised versions of each. As it combines many powerful features,it appears to be a good framework for automatic program production, -- despite the fact that it was designed originally to express optimal specialisation for interpreters written in typed languages.The original specification of type specialisation used a system of rules expressing it as a generalised type system, rather than the usual view of specialisation as generalised evaluation. That system, while powerful, has some weaknesses not widely recognized -- the most important being the inability to express principal type specialisations (a principal specialisation is one that is "more general" than any other for a given specialisable term, and from which those can be obtained by a suitable notion of instantiation). This inability is a problem when extending type specialisation to deal with polymorphism or modules.This work presents a different formulation of the system specifying type specialisation capturing the notion of principal specialisation for a language with static constructions and polyvariance. It is a step forward in the study of type specialisation for polymorphic languages and lazy languages, and also permits modularity of specialisation, and better implementations.
类型专门化是程序专门化的一种方法,它可以同时处理程序及其类型,从而产生每个程序的专门化版本。由于它结合了许多强大的功能,它似乎是一个很好的自动程序生成框架,尽管它最初的设计是为了表达用类型语言编写的解释器的最佳专门化。类型专门化的原始规范使用了一套规则系统,将其表示为一般化的类型系统,而不是将专门化视为一般化的评估。该系统虽然强大,但也有一些未被广泛认识到的弱点——最重要的是无法表达主体类型专门化(对于给定的专门化术语,主体专门化是一种比任何其他术语“更通用”的专门化,并且可以通过适当的实例化概念从中获得这些术语)。在扩展类型专门化以处理多态或模块时,这种无能是一个问题。这项工作提出了一个不同的系统公式,指定类型专门化,为具有静态结构和多方差的语言捕获主要专门化的概念。这是对多态语言和惰性语言的类型专门化研究的一个进步,也允许专门化的模块化和更好的实现。
{"title":"Principal type specialisation","authors":"P. E. M. López, John Hughes","doi":"10.1145/568173.568184","DOIUrl":"https://doi.org/10.1145/568173.568184","url":null,"abstract":"Type specialisation is an approach to program specialisation that works with both a program and its type to produce specialised versions of each. As it combines many powerful features,it appears to be a good framework for automatic program production, -- despite the fact that it was designed originally to express optimal specialisation for interpreters written in typed languages.The original specification of type specialisation used a system of rules expressing it as a generalised type system, rather than the usual view of specialisation as generalised evaluation. That system, while powerful, has some weaknesses not widely recognized -- the most important being the inability to express principal type specialisations (a principal specialisation is one that is \"more general\" than any other for a given specialisable term, and from which those can be obtained by a suitable notion of instantiation). This inability is a problem when extending type specialisation to deal with polymorphism or modules.This work presents a different formulation of the system specifying type specialisation capturing the notion of principal specialisation for a language with static constructions and polyvariance. It is a step forward in the study of type specialisation for polymorphic languages and lazy languages, and also permits modularity of specialisation, and better implementations.","PeriodicalId":187828,"journal":{"name":"ASIA-PEPM '02","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128890645","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 2
A note on elimination of simplest recursions 关于消除最简单递归的注释
Pub Date : 2002-09-12 DOI: 10.1145/568173.568188
A. Nemytykh
Automatic program transformation, such as specialization, often introduces intermediate recursions that compute partial functions on parameters that are directly defined by simple recursive definitions. Replacing these recursive definitions by one-step definitions not only simplifies the residual program, but also allows more useful information to be propagated to remaining parts of the program, for continuing specialization.We give an easily recognized characterization of a class of recursive definitions, called syntactical monomials, that can be transformed to one-step definitions. We show our transformation is meaningful for specialization of interpreters and self-application of specializers.
自动程序转换,例如专门化,经常引入中间递归,计算由简单递归定义直接定义的参数的部分函数。用一步定义替换这些递归定义不仅简化了剩余程序,而且还允许将更多有用的信息传播到程序的剩余部分,以继续专门化。我们给出了一类递归定义的一个容易识别的特征,称为句法单项式,它可以转换为一步定义。我们的转变对口译员的专业化和口译员的自我应用具有重要意义。
{"title":"A note on elimination of simplest recursions","authors":"A. Nemytykh","doi":"10.1145/568173.568188","DOIUrl":"https://doi.org/10.1145/568173.568188","url":null,"abstract":"Automatic program transformation, such as specialization, often introduces intermediate recursions that compute partial functions on parameters that are directly defined by simple recursive definitions. Replacing these recursive definitions by one-step definitions not only simplifies the residual program, but also allows more useful information to be propagated to remaining parts of the program, for continuing specialization.We give an easily recognized characterization of a class of recursive definitions, called syntactical monomials, that can be transformed to one-step definitions. We show our transformation is meaningful for specialization of interpreters and self-application of specializers.","PeriodicalId":187828,"journal":{"name":"ASIA-PEPM '02","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131310854","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Supporting objects in run-time bytecode specialization 支持运行时字节码专门化中的对象
Pub Date : 2002-09-12 DOI: 10.1145/568173.568179
Reynald Affeldt, H. Masuhara, Eijiro Sumii, A. Yonezawa
This paper describes a run-time specialization system for the Java language. One of the main difficulties of supporting the full Java language resides in a sound yet effective management of references to objects. This is because the specialization process may share references with the running application that executes the residual code, and because side-effects through those references by the specialization process could easily break the semantics of the running application. To cope with these difficulties, we elaborate requirements that ensure sound run-time specialization. Based on them, we design and implement a run-time specialization system for the Java language, which exhibits, for instance, approximately 20-25% speed-up factor for a ray-tracing application.
本文描述了一个面向Java语言的运行时专门化系统。支持完整Java语言的主要困难之一在于对对象引用的合理而有效的管理。这是因为专门化进程可能与执行剩余代码的运行中的应用程序共享引用,并且因为专门化进程通过这些引用产生的副作用很容易破坏运行中的应用程序的语义。为了应对这些困难,我们详细阐述了确保良好的运行时专门化的需求。在此基础上,我们设计并实现了一个Java语言的运行时专门化系统,例如,它为光线跟踪应用程序提供了大约20-25%的加速因子。
{"title":"Supporting objects in run-time bytecode specialization","authors":"Reynald Affeldt, H. Masuhara, Eijiro Sumii, A. Yonezawa","doi":"10.1145/568173.568179","DOIUrl":"https://doi.org/10.1145/568173.568179","url":null,"abstract":"This paper describes a run-time specialization system for the Java language. One of the main difficulties of supporting the full Java language resides in a sound yet effective management of references to objects. This is because the specialization process may share references with the running application that executes the residual code, and because side-effects through those references by the specialization process could easily break the semantics of the running application. To cope with these difficulties, we elaborate requirements that ensure sound run-time specialization. Based on them, we design and implement a run-time specialization system for the Java language, which exhibits, for instance, approximately 20-25% speed-up factor for a ray-tracing application.","PeriodicalId":187828,"journal":{"name":"ASIA-PEPM '02","volume":"52 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132834578","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 12
Output-constraint specialization Output-constraint专业化
Pub Date : 2002-09-12 DOI: 10.1145/568173.568185
Siau-Cheng Khoo, Kun Shi
In component-based software development, gluing of two software components are usually achieved by defining an interface specification, and creating wrappers on the components to support the interface. We believe that interface specification provides useful information for specializing components. However, an interface may define constraints on a component's inputs, as well as on its outputs. In this paper, we propose a novel concept of program specialization with respect to output constraints. We define how an ideal specialized program should behave after such specialization, and consider a variant of partial evaluation to achieve it. In the process, we translate an output constraint into a characterization function for a component's input, and define a specializer that uses this characterization to guide the specialization process. We believe this work will broaden the scope of program specialization, and provide a framework for building more generic and versatile program adaptation techniques.
在基于组件的软件开发中,两个软件组件的粘合通常是通过定义接口规范,并在组件上创建包装器来支持接口来实现的。我们相信接口规范为专门化组件提供了有用的信息。然而,接口可以在组件的输入和输出上定义约束。在本文中,我们提出了一个关于输出约束的程序专门化的新概念。我们定义了理想的专门化程序在这种专门化之后应该如何表现,并考虑了部分求值的一个变体来实现它。在此过程中,我们将输出约束转换为组件输入的特征函数,并定义一个专门化器,该专门化器使用此特征来指导专门化过程。我们相信这项工作将扩大程序专门化的范围,并为构建更通用和通用的程序适应技术提供一个框架。
{"title":"Output-constraint specialization","authors":"Siau-Cheng Khoo, Kun Shi","doi":"10.1145/568173.568185","DOIUrl":"https://doi.org/10.1145/568173.568185","url":null,"abstract":"In component-based software development, gluing of two software components are usually achieved by defining an interface specification, and creating wrappers on the components to support the interface. We believe that interface specification provides useful information for specializing components. However, an interface may define constraints on a component's inputs, as well as on its outputs. In this paper, we propose a novel concept of program specialization with respect to output constraints. We define how an ideal specialized program should behave after such specialization, and consider a variant of partial evaluation to achieve it. In the process, we translate an output constraint into a characterization function for a component's input, and define a specializer that uses this characterization to guide the specialization process. We believe this work will broaden the scope of program specialization, and provide a framework for building more generic and versatile program adaptation techniques.","PeriodicalId":187828,"journal":{"name":"ASIA-PEPM '02","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131641434","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Unifying object-oriented programming with typed functional programming 统一面向对象编程和类型化函数式编程
Pub Date : 2002-09-12 DOI: 10.1145/568173.568186
H. Xi
The wide practice of object-oriented programming in current software construction is evident. Despite extensive studies on typing programming objects, it is still undeniably a challenging research task to design a type system for object-oriented programming that is both effective in capturing program errors and unobtrusive to program construction. In this paper, we present a novel approach to typing objects that makes use of a recently invented notion of guarded dependent datatypes. We show that our approach can address various difficult issues (e.g., handling "self" type, typing binary methods, etc.) in a simple and natural type-theoretical manner, remedying the deficiencies in many existing approaches to typing objects.
面向对象编程在当前软件构建中的广泛实践是显而易见的。尽管对类型化编程对象进行了广泛的研究,但不可否认,为面向对象编程设计一种既能有效捕获程序错误又不干扰程序构造的类型系统仍然是一项具有挑战性的研究任务。在本文中,我们提出了一种新的对象类型化方法,该方法利用了最近发明的受保护依赖数据类型的概念。我们表明,我们的方法可以用一种简单而自然的类型理论方式解决各种困难的问题(例如,处理“self”类型、键入二进制方法等),弥补了许多现有的键入对象方法的不足。
{"title":"Unifying object-oriented programming with typed functional programming","authors":"H. Xi","doi":"10.1145/568173.568186","DOIUrl":"https://doi.org/10.1145/568173.568186","url":null,"abstract":"The wide practice of object-oriented programming in current software construction is evident. Despite extensive studies on typing programming objects, it is still undeniably a challenging research task to design a type system for object-oriented programming that is both effective in capturing program errors and unobtrusive to program construction. In this paper, we present a novel approach to typing objects that makes use of a recently invented notion of guarded dependent datatypes. We show that our approach can address various difficult issues (e.g., handling \"self\" type, typing binary methods, etc.) in a simple and natural type-theoretical manner, remedying the deficiencies in many existing approaches to typing objects.","PeriodicalId":187828,"journal":{"name":"ASIA-PEPM '02","volume":"68 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125520575","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 5
Search-based binding time analysis using type-directed pruning 使用类型定向修剪的基于搜索的绑定时间分析
Pub Date : 2002-09-12 DOI: 10.1145/568173.568176
T. Sheard, Nathan Mishra-Linger
We introduce a new way of performing binding time analysis. Rather than analyzing the program using constraint solving or abstract interpretation, we use a method based on search. The search is guided by type information which significantly prunes the size of the search space, making the algorithm practical. Our claim is not that we compute new, or better information, but that we compute it in a new and novel way, which clarifies the process involved.The method is based upon a novel use of higher-order multi-stage types as a rich and expressive medium for the expression of binding-time specifications. Such types could be used as the starting point in any BTA. A goal of our work is to demonstrate that a single unified system which seamlessly integrates both manual staging and automatic BTA-based staging is possible.
介绍了一种进行绑定时间分析的新方法。我们使用基于搜索的方法来分析程序,而不是使用约束求解或抽象解释。该算法以类型信息为指导,极大地减少了搜索空间的大小,使算法具有实用性。我们的主张并不是说我们计算出了新的或更好的信息,而是说我们以一种新的、新颖的方式计算了信息,这种方式澄清了所涉及的过程。该方法基于对高阶多阶段类型的新颖使用,作为表达绑定时间规范的丰富而富有表现力的媒介。这些类型可以用作任何BTA的起点。我们工作的一个目标是证明一个单一的统一系统可以无缝地集成手动暂存和基于bta的自动暂存。
{"title":"Search-based binding time analysis using type-directed pruning","authors":"T. Sheard, Nathan Mishra-Linger","doi":"10.1145/568173.568176","DOIUrl":"https://doi.org/10.1145/568173.568176","url":null,"abstract":"We introduce a new way of performing binding time analysis. Rather than analyzing the program using constraint solving or abstract interpretation, we use a method based on search. The search is guided by type information which significantly prunes the size of the search space, making the algorithm practical. Our claim is not that we compute new, or better information, but that we compute it in a new and novel way, which clarifies the process involved.The method is based upon a novel use of higher-order multi-stage types as a rich and expressive medium for the expression of binding-time specifications. Such types could be used as the starting point in any BTA. A goal of our work is to demonstrate that a single unified system which seamlessly integrates both manual staging and automatic BTA-based staging is possible.","PeriodicalId":187828,"journal":{"name":"ASIA-PEPM '02","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125475203","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
Automatic generation of efficient string matching algorithms by generalized partial computation 基于广义部分计算的高效字符串匹配算法的自动生成
Pub Date : 2002-09-12 DOI: 10.1145/568173.568174
Y. Futamura, Z. Konishi, R. Glück
This paper shows that Generalized Partial Computation (GPC) can automatically generate efficient string matching algorithms. GPC is a program transformation method utilizing partial information about input data and auxiliary functions as well as the logical structure of a source program. GPC uses both a classical partial evaluator and an inference engine such as a theorem prover to optimize programs. First, we show that a Boyer-Moore (BM) type pattern matcher without the bad-character heuristic can be generated from a simple non-linear backward matcher by GPC. This sort of problems has already been discussed in the literature using offline partial evaluators. However, there was no proof that every generated matcher runs in the same way as the BM. In this paper we prove that the problem can be solved starting from a simple non-linear pattern matcher as a source program. We also prove that a Knuth-Morris-Pratt (KMP) type linear string matcher can be generated from a naive non-linear forward matcher by GPC.
本文证明了广义部分计算(GPC)可以自动生成高效的字符串匹配算法。GPC是一种利用输入数据的部分信息和辅助函数以及源程序的逻辑结构进行程序转换的方法。GPC使用经典的部分求值器和推理引擎(如定理证明器)来优化程序。首先,我们证明了一个不含坏字符启发式的Boyer-Moore (BM)型模式匹配器可以通过GPC从一个简单的非线性后向匹配器生成。这类问题已经在文献中使用离线部分评估器进行了讨论。但是,没有证据表明每个生成的匹配器都以与BM相同的方式运行。本文证明了这个问题可以从一个简单的非线性模式匹配器作为源程序开始解决。我们还证明了Knuth-Morris-Pratt (KMP)型线性字符串匹配器可以用GPC从一个朴素的非线性前向匹配器生成。
{"title":"Automatic generation of efficient string matching algorithms by generalized partial computation","authors":"Y. Futamura, Z. Konishi, R. Glück","doi":"10.1145/568173.568174","DOIUrl":"https://doi.org/10.1145/568173.568174","url":null,"abstract":"This paper shows that Generalized Partial Computation (GPC) can automatically generate efficient string matching algorithms. GPC is a program transformation method utilizing partial information about input data and auxiliary functions as well as the logical structure of a source program. GPC uses both a classical partial evaluator and an inference engine such as a theorem prover to optimize programs. First, we show that a Boyer-Moore (BM) type pattern matcher without the bad-character heuristic can be generated from a simple non-linear backward matcher by GPC. This sort of problems has already been discussed in the literature using offline partial evaluators. However, there was no proof that every generated matcher runs in the same way as the BM. In this paper we prove that the problem can be solved starting from a simple non-linear pattern matcher as a source program. We also prove that a Knuth-Morris-Pratt (KMP) type linear string matcher can be generated from a naive non-linear forward matcher by GPC.","PeriodicalId":187828,"journal":{"name":"ASIA-PEPM '02","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115506447","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Defying the speed of light:: a spatially-aware compiler for wire-exposed architectures 藐视光速::一个空间感知的编译器,适用于线路暴露的架构
Pub Date : 2002-09-12 DOI: 10.1145/568173.568181
Saman P. Amarasinghe
With the increasing miniaturization of transistors, wire delays are becoming a dominant factor in microprocessor performance. To address this issue, a number of emerging architectures contain replicated processing units with software-exposed communication between one unit and another (e.g., Raw, SmartMemories, TRIPS). However, for them to be effective, it is necessary to use languages that circumvent the von Neumann bottleneck, inherent in current programming languages such as C, C++ and Java.In the first part of the talk, I will introduce StreamIt, a streaming language that is ideally suited for wire-exposed architectures. StreamIt provides novel high-level representations to improve programmer productivity and program robustness within the streaming domain. At the same time, StreamIt exposes the inherent communication pattern of the program, allowing the compiler to aggressively optimize and effectively utilize wire-exposed architectures. .In the second part of the talk, I will describe our compiler from StreamIt to the Raw processor. Though StreamIt exposes the parallelism and communication patterns of stream programs, much analysis is needed to adapt a stream program to a wire-exposed processor. These include fission and fusion transformations that is used to adjust the granularity of a stream graph, a layout algorithm for mapping a stream graph to a given network topology, and a scheduling algorithm for generating a fine-grained static communication pattern for each computational element.
随着晶体管的日益小型化,线延迟正成为影响微处理器性能的主要因素。为了解决这个问题,许多新兴的架构包含了复制的处理单元,并在一个单元和另一个单元之间进行软件暴露通信(例如,Raw, SmartMemories, TRIPS)。然而,为了使它们有效,有必要使用绕过冯诺依曼瓶颈的语言,这是当前编程语言(如C、c++和Java)固有的。在演讲的第一部分,我将介绍StreamIt,这是一种非常适合于线暴露架构的流媒体语言。StreamIt提供了新颖的高级表示,以提高程序员的工作效率和流领域内的程序健壮性。同时,StreamIt暴露了程序固有的通信模式,允许编译器积极地优化和有效地利用线暴露的架构。在演讲的第二部分,我将描述我们的编译器从StreamIt到Raw处理器。虽然StreamIt暴露了流程序的并行性和通信模式,但是需要进行大量的分析才能使流程序适应于有线公开的处理器。其中包括用于调整流图粒度的裂变和融合转换,用于将流图映射到给定网络拓扑的布局算法,以及用于为每个计算元素生成细粒度静态通信模式的调度算法。
{"title":"Defying the speed of light:: a spatially-aware compiler for wire-exposed architectures","authors":"Saman P. Amarasinghe","doi":"10.1145/568173.568181","DOIUrl":"https://doi.org/10.1145/568173.568181","url":null,"abstract":"With the increasing miniaturization of transistors, wire delays are becoming a dominant factor in microprocessor performance. To address this issue, a number of emerging architectures contain replicated processing units with software-exposed communication between one unit and another (e.g., Raw, SmartMemories, TRIPS). However, for them to be effective, it is necessary to use languages that circumvent the von Neumann bottleneck, inherent in current programming languages such as C, C++ and Java.In the first part of the talk, I will introduce StreamIt, a streaming language that is ideally suited for wire-exposed architectures. StreamIt provides novel high-level representations to improve programmer productivity and program robustness within the streaming domain. At the same time, StreamIt exposes the inherent communication pattern of the program, allowing the compiler to aggressively optimize and effectively utilize wire-exposed architectures. .In the second part of the talk, I will describe our compiler from StreamIt to the Raw processor. Though StreamIt exposes the parallelism and communication patterns of stream programs, much analysis is needed to adapt a stream program to a wire-exposed processor. These include fission and fusion transformations that is used to adjust the granularity of a stream graph, a layout algorithm for mapping a stream graph to a given network topology, and a scheduling algorithm for generating a fine-grained static communication pattern for each computational element.","PeriodicalId":187828,"journal":{"name":"ASIA-PEPM '02","volume":"83 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122937772","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Compiling real time functional reactive programming 编译实时函数式响应式编程
Pub Date : 2002-09-12 DOI: 10.1145/568173.568183
Dana N. Xu, Siau-Cheng Khoo
Most of the past languages for reactive systems are based on synchronous dataflow. Recently, a new reactive language, called Real-Time Functional Reactive Programming (RT-FRP) [18] , has been proposed based on the functional paradigm. The unique feature of this language is the high-level abstraction provided in the form of behaviors for conti-nuous-time signals, and events for discrete-time signals. RT-FRP also features some performance guarantees in the form of bounded runtime and space usage for each reactive computation step.In this paper, we propose a new compilation scheme for RT-FRP. Our compilation scheme is based on two key stages. In the first stage, we translate RT-FRP program to an intermediate functional code. This code is deliberately kept at high level for two reasons. First, it is easier for us to validate its correctness. Second, it allows us to apply high-level source-to-source transformation to achieve further optimization. The second stage attempts to compile the intermediate code to a corresponding automata code. Our main novelty is the use of two high-level transformation techniques for this compilation. The first technique, partial evaluation, attempts to propagate constant values (wherever feasible) in order to perform more aggressive specialization. The second technique, tupling, combines mutually dependent automata together into a composite automaton whenever possible. Both techniques are needed for generating fast target code for RT-FRP.
过去大多数用于响应式系统的语言都是基于同步数据流的。最近,一种新的反应性语言,称为实时功能反应性编程(RT-FRP)[18],已经提出了基于功能范式。这种语言的独特之处在于,它以行为的形式为连续时间信号提供高级抽象,以事件的形式为离散时间信号提供高级抽象。RT-FRP还以每个响应式计算步骤的有限运行时间和空间使用的形式提供了一些性能保证。本文提出了一种新的RT-FRP编制方案。我们的编译方案基于两个关键阶段。在第一阶段,我们将RT-FRP程序翻译成中间功能代码。出于两个原因,故意将此代码保存在高层。首先,我们更容易验证其正确性。其次,它允许我们应用高级的源到源转换来实现进一步的优化。第二阶段尝试将中间代码编译成相应的自动机代码。我们的主要新颖之处在于为这个编译使用了两种高级转换技术。第一种技术,部分求值,试图传播常数值(只要可行),以便执行更积极的专门化。第二种技术是tupling,它尽可能地将相互依赖的自动机组合成一个复合自动机。这两种技术都需要快速生成RT-FRP目标代码。
{"title":"Compiling real time functional reactive programming","authors":"Dana N. Xu, Siau-Cheng Khoo","doi":"10.1145/568173.568183","DOIUrl":"https://doi.org/10.1145/568173.568183","url":null,"abstract":"Most of the past languages for reactive systems are based on synchronous dataflow. Recently, a new reactive language, called Real-Time Functional Reactive Programming (RT-FRP) [18] , has been proposed based on the functional paradigm. The unique feature of this language is the high-level abstraction provided in the form of behaviors for conti-nuous-time signals, and events for discrete-time signals. RT-FRP also features some performance guarantees in the form of bounded runtime and space usage for each reactive computation step.In this paper, we propose a new compilation scheme for RT-FRP. Our compilation scheme is based on two key stages. In the first stage, we translate RT-FRP program to an intermediate functional code. This code is deliberately kept at high level for two reasons. First, it is easier for us to validate its correctness. Second, it allows us to apply high-level source-to-source transformation to achieve further optimization. The second stage attempts to compile the intermediate code to a corresponding automata code. Our main novelty is the use of two high-level transformation techniques for this compilation. The first technique, partial evaluation, attempts to propagate constant values (wherever feasible) in order to perform more aggressive specialization. The second technique, tupling, combines mutually dependent automata together into a composite automaton whenever possible. Both techniques are needed for generating fast target code for RT-FRP.","PeriodicalId":187828,"journal":{"name":"ASIA-PEPM '02","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117062631","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
Using indexed data structures for program specialization 使用索引数据结构进行程序专门化
Pub Date : 2002-09-12 DOI: 10.1145/568173.568180
J. Park, Myong-Soon Park
Given a program and values of static (fixed) inputs, program specialization generates an optimized version of the program that only requires dynamic (run-time) inputs. It has been an useful tool for such areas as operating systems, multimedia applications, and scientific applications. However, the size of specialized code may grow up exponentially which makes program specialization impractical for many applications. In this paper, we present a mechanism to address this problem by using indexed data structures. Unlike traditional program specialization, which encodes the result of specialization only into run-time code, our method encodes the values of multi-valued static expressions into indexed data structures and single-valued static expressions into run-time code. Because the sizes of the indexed data structures are much smaller than that of program code, we can overcome the size problem of program specialization. With a preliminary implementation for Java, we achieved improvement in performance up to a factor of 3 with very low memory and space requirements and overheads.
给定一个程序和静态(固定)输入的值,程序专门化生成只需要动态(运行时)输入的程序的优化版本。它已成为操作系统、多媒体应用程序和科学应用程序等领域的有用工具。然而,专门化代码的大小可能呈指数级增长,这使得程序专门化对许多应用程序来说不切实际。在本文中,我们提出了一种通过使用索引数据结构来解决这个问题的机制。传统的程序专门化只将专门化的结果编码到运行时代码中,而我们的方法将多值静态表达式的值编码到索引数据结构中,并将单值静态表达式编码到运行时代码中。由于索引数据结构的大小比程序代码的小得多,我们可以克服程序专门化的大小问题。通过Java的初步实现,我们在非常低的内存和空间需求和开销的情况下实现了高达3倍的性能改进。
{"title":"Using indexed data structures for program specialization","authors":"J. Park, Myong-Soon Park","doi":"10.1145/568173.568180","DOIUrl":"https://doi.org/10.1145/568173.568180","url":null,"abstract":"Given a program and values of static (fixed) inputs, program specialization generates an optimized version of the program that only requires dynamic (run-time) inputs. It has been an useful tool for such areas as operating systems, multimedia applications, and scientific applications. However, the size of specialized code may grow up exponentially which makes program specialization impractical for many applications. In this paper, we present a mechanism to address this problem by using indexed data structures. Unlike traditional program specialization, which encodes the result of specialization only into run-time code, our method encodes the values of multi-valued static expressions into indexed data structures and single-valued static expressions into run-time code. Because the sizes of the indexed data structures are much smaller than that of program code, we can overcome the size problem of program specialization. With a preliminary implementation for Java, we achieved improvement in performance up to a factor of 3 with very low memory and space requirements and overheads.","PeriodicalId":187828,"journal":{"name":"ASIA-PEPM '02","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116173597","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 3
期刊
ASIA-PEPM '02
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1