首页 > 最新文献

Computer Languages最新文献

英文 中文
Generating optimal contiguous evaluations for expression DAGs 生成表达dag的最优连续评估
Pub Date : 1995-07-01 DOI: 10.1016/0096-0551(95)00005-O
Christoph W. Keβler , Thomas Rauber

We consider the NP-complete problem of generating contiguous evaluations for expression DAGs with a minimal number of registers. We present two algorithms that generate optimal contiguous evaluation for a given DAG. The first is a modification of a complete search algorithm that omits the generation of redundant evaluations. The second algorithm generates only the most promising evaluations by splitting the DAG into trees with import and export nodes and evaluating the trees with a modified labeling scheme. Experiments with randomly generated DAGs and large DAGs from real application programs confirm that the new algorithms generate optimal contiguous evaluations quite fast.

我们考虑用最小寄存器数生成连续求值表达式dag的np完全问题。我们提出了两种算法,为给定DAG生成最优连续评估。第一种是对完整搜索算法的修改,它省略了冗余求值的生成。第二种算法通过将DAG划分为具有导入和导出节点的树,并使用修改的标记方案对树进行评估,从而仅生成最有希望的评估。对随机生成的dag和实际应用程序中的大型dag进行的实验证实,新算法可以快速生成最优的连续评估。
{"title":"Generating optimal contiguous evaluations for expression DAGs","authors":"Christoph W. Keβler ,&nbsp;Thomas Rauber","doi":"10.1016/0096-0551(95)00005-O","DOIUrl":"10.1016/0096-0551(95)00005-O","url":null,"abstract":"<div><p>We consider the NP-complete problem of generating contiguous evaluations for expression DAGs with a minimal number of registers. We present two algorithms that generate optimal contiguous evaluation for a given DAG. The first is a modification of a complete search algorithm that omits the generation of redundant evaluations. The second algorithm generates only the most promising evaluations by splitting the DAG into trees with import and export nodes and evaluating the trees with a modified labeling scheme. Experiments with randomly generated DAGs and large DAGs from real application programs confirm that the new algorithms generate optimal contiguous evaluations quite fast.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"21 2","pages":"Pages 113-127"},"PeriodicalIF":0.0,"publicationDate":"1995-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/0096-0551(95)00005-O","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89732721","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
Gras: A general framework for combining automatic code generation and register allocation Gras:结合自动代码生成和寄存器分配的通用框架
Pub Date : 1995-07-01 DOI: 10.1016/0096-0551(95)00004-N
Kelvin S. Bryant , Jon Mauney

We present a system for producing retargetable code generators containing coloring-based register allocators. The compiler writer specifies the overall register characteristics of the target machine, as well as the specific register requirements of individual assembly instructions. A Code Generator Prepass processes the specific instruction requirements so that they can be considered during register allocation. We also present our notion of “generic” coloring algorithms which simplify the retargeting of register allocators to different architectures. The system is suitable for RISC and CISC architectures

我们提出了一个包含基于颜色的寄存器分配器的生成可重目标代码生成器的系统。编译器编写器指定目标机器的总体寄存器特征,以及各个汇编指令的特定寄存器要求。代码生成器预传处理特定的指令要求,以便在分配寄存器时考虑它们。我们还提出了“通用”着色算法的概念,该算法简化了寄存器分配器到不同体系结构的重定向。该系统适用于RISC和CISC体系结构
{"title":"Gras: A general framework for combining automatic code generation and register allocation","authors":"Kelvin S. Bryant ,&nbsp;Jon Mauney","doi":"10.1016/0096-0551(95)00004-N","DOIUrl":"https://doi.org/10.1016/0096-0551(95)00004-N","url":null,"abstract":"<div><p>We present a system for producing retargetable code generators containing coloring-based register allocators. The compiler writer specifies the overall register characteristics of the target machine, as well as the specific register requirements of individual assembly instructions. A Code Generator Prepass processes the specific instruction requirements so that they can be considered during register allocation. We also present our notion of “generic” coloring algorithms which simplify the retargeting of register allocators to different architectures. The system is suitable for RISC and CISC architectures</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"21 2","pages":"Pages 101-112"},"PeriodicalIF":0.0,"publicationDate":"1995-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/0096-0551(95)00004-N","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91591818","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
I+: A multiparadigm language for object-oriented declarative programming I+:面向对象声明式编程的多范式语言
Pub Date : 1995-07-01 DOI: 10.1016/0096-0551(95)00003-M
K.W. Ng , C.K. Luk

This paper presents a multiparadigm language I+ which is an integration of the three major programming paradigms: object-oriented, logic and functional. I+ has an object-oriented framework in which the notions of classes, objects, methods, inheritance and message passing are supported. Methods may be specified as clauses or functions, thus the two declarative paradigms are incorporated at the method level of the object-oriented paradigm. In addition, two levels of parallelism may be exploited in I+ programming. Therefore I+ is a multiparadigm language for object-oriented declarative programming as well as parallel programming.

本文提出了一种集面向对象、逻辑和函数式三种主要编程范式于一体的多范式语言I+。i+有一个面向对象的框架,其中支持类、对象、方法、继承和消息传递等概念。方法可以被指定为子句或函数,因此这两种声明性范例被合并在面向对象范例的方法级别。此外,在I+编程中可以利用两层并行性。因此,i+是一种面向对象声明性编程和并行编程的多范式语言。
{"title":"I+: A multiparadigm language for object-oriented declarative programming","authors":"K.W. Ng ,&nbsp;C.K. Luk","doi":"10.1016/0096-0551(95)00003-M","DOIUrl":"https://doi.org/10.1016/0096-0551(95)00003-M","url":null,"abstract":"<div><p>This paper presents a multiparadigm language <em>I</em><sup>+</sup> which is an integration of the three major programming paradigms: object-oriented, logic and functional. <em>I</em><sup>+</sup> has an object-oriented framework in which the notions of classes, objects, methods, inheritance and message passing are supported. Methods may be specified as clauses or functions, thus the two declarative paradigms are incorporated at the method level of the object-oriented paradigm. In addition, two levels of parallelism may be exploited in <em>I</em><sup>+</sup> programming. Therefore <em>I</em><sup>+</sup> is a multiparadigm language for object-oriented declarative programming as well as parallel programming.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"21 2","pages":"Pages 81-100"},"PeriodicalIF":0.0,"publicationDate":"1995-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/0096-0551(95)00003-M","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91748265","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}
引用次数: 11
A grammatical specification of human-computer dialogue 人机对话的语法规范
Pub Date : 1995-04-01 DOI: 10.1016/0096-0551(94)00016-J
Albert Nymeyer

The Seeheim Model of human-computer interaction partitions an interactive application into a user-interface, a dialogue controller and the application itself. One of the formal techniques of implementing the dialogue controller is based on context-free grammars and automata. In this work, we modify an off-the-shelf compiler generator (YACC) to generate the dialogue controller. The dialogue controller is then integrated into the popular X-window system, to create an interactive-application generator. The actions of the user drive the automaton, which in turn controls the application.

Seeheim人机交互模型将交互式应用程序划分为用户界面、对话控制器和应用程序本身。实现对话控制器的一种正式技术是基于上下文无关的语法和自动机。在这项工作中,我们修改一个现成的编译器生成器(YACC)来生成对话控制器。然后将对话控制器集成到流行的x窗口系统中,以创建交互式应用程序生成器。用户的操作驱动自动机,而自动机又控制应用程序。
{"title":"A grammatical specification of human-computer dialogue","authors":"Albert Nymeyer","doi":"10.1016/0096-0551(94)00016-J","DOIUrl":"https://doi.org/10.1016/0096-0551(94)00016-J","url":null,"abstract":"<div><p>The Seeheim Model of human-computer interaction partitions an interactive application into a user-interface, a dialogue controller and the application itself. One of the formal techniques of implementing the dialogue controller is based on context-free grammars and automata. In this work, we modify an off-the-shelf compiler generator (YACC) to generate the dialogue controller. The dialogue controller is then integrated into the popular X-window system, to create an interactive-application generator. The actions of the user drive the automaton, which in turn controls the application.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"21 1","pages":"Pages 1-16"},"PeriodicalIF":0.0,"publicationDate":"1995-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/0096-0551(94)00016-J","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89993110","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}
引用次数: 6
Scheduling expression trees with reusable registers on delayed-load architectures 在延迟加载架构中使用可重用寄存器调度表达式树
Pub Date : 1995-04-01 DOI: 10.1016/0096-0551(95)00001-K
R. Venugopal, Y.N. Srikant

In this paper, we look at the problem of scheduling expression trees with reusable registers on delayed load architectures. Reusable registers come into the picture when the compiler has a data-flow analyzer which is able to estimate the extent of use of the registers. Earlier work considered the same problem without allowing for register variables. Subsequently, Venugopal considered non-reusable registers in the tree. We further extend these efforts to consider a much more general form of the tree. We describe an approximate algorithm for the problem. We formally prove that the code schedule produced by this algorithm will, in the worst case, generate one interlock and use just one more register than that used by the optimal schedule. Spilling is minimized. The approximate algorithm is simple and has linear complexity.

在本文中,我们研究了在延迟加载架构中使用可重用寄存器调度表达式树的问题。当编译器具有能够估计寄存器的使用范围的数据流分析器时,可重用寄存器就出现了。早期的工作在不考虑寄存器变量的情况下考虑了同样的问题。随后,Venugopal考虑了树中不可重用的寄存器。我们进一步扩展这些努力来考虑树的更一般的形式。我们描述了这个问题的近似算法。我们正式证明了由该算法产生的代码调度在最坏的情况下会产生一个联锁,并且只比最优调度多使用一个寄存器。最小化溢出。近似算法简单,具有线性复杂度。
{"title":"Scheduling expression trees with reusable registers on delayed-load architectures","authors":"R. Venugopal,&nbsp;Y.N. Srikant","doi":"10.1016/0096-0551(95)00001-K","DOIUrl":"10.1016/0096-0551(95)00001-K","url":null,"abstract":"<div><p>In this paper, we look at the problem of scheduling expression trees with reusable registers on delayed load architectures. Reusable registers come into the picture when the compiler has a data-flow analyzer which is able to estimate the extent of use of the registers. Earlier work considered the same problem without allowing for register variables. Subsequently, Venugopal considered non-reusable registers in the tree. We further extend these efforts to consider a much more general form of the tree. We describe an approximate algorithm for the problem. We formally prove that the code schedule produced by this algorithm will, in the worst case, generate one interlock and use just one more register than that used by the optimal schedule. Spilling is minimized. The approximate algorithm is simple and has linear complexity.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"21 1","pages":"Pages 49-65"},"PeriodicalIF":0.0,"publicationDate":"1995-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/0096-0551(95)00001-K","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79589655","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
Extracting program structure for packaging in a component-based environment 提取程序结构,以便在基于组件的环境中打包
Pub Date : 1995-04-01 DOI: 10.1016/0096-0551(94)00013-G
James M. Purtilo, Thomas M. Swiss, Elizabeth White L.

The development of a large-scale software application naturally lends itself to a top-down development process where the problem is divided into smaller problems that are dispersed among multiple people or teams. Once these sub-problems have been solved, the software components or modules implementing these solutions are integrated into the whole for a final solution. In a component-based environment, large applications are constructed by combining software components in a variety of ways. In such an environment, the components may be implemented in different languages and be distributed across different machines. Alternately, these modules may be different parts of a program running in a single address space. These options (and the many options in between) require different techniques for integration. Software packaging is an important method for assisting in the process of assembling large programs from separate pieces, especially over a heterogeneous environment (an environment consisting of different machines, architecture, languages or operating systems). A software packager is a tool that takes a description of the modules of a program, the available connection methods, and the final desired connection geometry, and creates the integration methods to create the application.

大型软件应用程序的开发自然地适合于自顶向下的开发过程,在这种开发过程中,问题被分成更小的问题,分散在多个人员或团队中。一旦这些子问题得到解决,实现这些解决方案的软件组件或模块就被集成到整体中,形成最终的解决方案。在基于组件的环境中,大型应用程序是通过以各种方式组合软件组件来构建的。在这样的环境中,组件可以用不同的语言实现,并分布在不同的机器上。或者,这些模块可以是在单个地址空间中运行的程序的不同部分。这些选项(以及介于两者之间的许多选项)需要不同的集成技术。软件打包是一种重要的方法,可以帮助从不同的部分组装大型程序,特别是在异构环境(由不同的机器、体系结构、语言或操作系统组成的环境)中。软件包是一种工具,它获取程序模块的描述、可用的连接方法和最终所需的连接几何形状,并创建集成方法来创建应用程序。
{"title":"Extracting program structure for packaging in a component-based environment","authors":"James M. Purtilo,&nbsp;Thomas M. Swiss,&nbsp;Elizabeth White L.","doi":"10.1016/0096-0551(94)00013-G","DOIUrl":"https://doi.org/10.1016/0096-0551(94)00013-G","url":null,"abstract":"<div><p>The development of a large-scale software application naturally lends itself to a top-down development process where the problem is divided into smaller problems that are dispersed among multiple people or teams. Once these sub-problems have been solved, the software components or <em>modules</em> implementing these solutions are integrated into the whole for a final solution. In a component-based environment, large applications are constructed by combining software components in a variety of ways. In such an environment, the components may be implemented in different languages and be distributed across different machines. Alternately, these modules may be different parts of a program running in a single address space. These options (and the many options in between) require different techniques for integration. Software packaging is an important method for assisting in the process of assembling large programs from separate pieces, especially over a heterogeneous environment (an environment consisting of different machines, architecture, languages or operating systems). A software packager is a tool that takes a description of the modules of a program, the available connection methods, and the final desired connection geometry, and creates the integration methods to create the application.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"21 1","pages":"Pages 39-48"},"PeriodicalIF":0.0,"publicationDate":"1995-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/0096-0551(94)00013-G","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91603566","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
Semantic issues in the design of languages for debugging 调试语言设计中的语义问题
Pub Date : 1995-04-01 DOI: 10.1016/0096-0551(94)00015-I
Richard H. Crawford, Ronald A. Olsson, W.Wilson Ho, Christopher E. Wee

The design of debugging tools is often ad hoc, with tools tailor-made for specific target languages and operating systems. Consequently, no unified theory of debugger design has emerged. Especially neglected is the design of languages to control debugging activities—and fundamental issues that arise in the implementation and use of such languages. We introduce GDL, a powerful low-level debugging language whose primitives capture the intuitive, informal semantics used in imperative debugging. GDL can be extended to incorporate higher-level constructs, hence we use it as our vehicle to examine central semantic issues that confront designers and implementors of debugging languages.

We gauge the efficiency of various GDL constructs on typical architectures and highlight semantic issues arising from the integration of those mechanisms. Our exploration of semantic issues is intended to provide guidance for designers of debugging languages, to ensure all high-level language features can be mapped cleanly and efficiently onto underlying architectural hooks, without endangering the semantic integrity of those high-level constructs.

调试工具的设计通常是特别的,使用为特定的目标语言和操作系统量身定制的工具。因此,没有统一的调试器设计理论出现。特别被忽视的是控制调试活动的语言设计,以及在实现和使用这些语言时出现的基本问题。我们介绍GDL,这是一种功能强大的低级调试语言,其原语捕获了命令式调试中使用的直观、非正式语义。GDL可以扩展到包含更高级的结构,因此我们使用它作为工具来检查调试语言的设计者和实现者所面临的中心语义问题。我们衡量了典型架构上各种GDL构造的效率,并强调了这些机制集成所产生的语义问题。我们对语义问题的探索旨在为调试语言的设计人员提供指导,以确保所有高级语言特性都可以清晰有效地映射到底层架构挂钩上,而不会危及这些高级结构的语义完整性。
{"title":"Semantic issues in the design of languages for debugging","authors":"Richard H. Crawford,&nbsp;Ronald A. Olsson,&nbsp;W.Wilson Ho,&nbsp;Christopher E. Wee","doi":"10.1016/0096-0551(94)00015-I","DOIUrl":"https://doi.org/10.1016/0096-0551(94)00015-I","url":null,"abstract":"<div><p>The design of debugging tools is often <em>ad hoc</em>, with tools tailor-made for specific target languages and operating systems. Consequently, no unified theory of debugger design has emerged. Especially neglected is the design of languages to control debugging activities—and fundamental issues that arise in the implementation and use of such languages. We introduce GDL, a powerful low-level debugging language whose primitives capture the intuitive, informal semantics used in imperative debugging. GDL can be extended to incorporate higher-level constructs, hence we use it as our vehicle to examine central semantic issues that confront designers and implementors of debugging languages.</p><p>We gauge the efficiency of various GDL constructs on typical architectures and highlight semantic issues arising from the integration of those mechanisms. Our exploration of semantic issues is intended to provide guidance for designers of debugging languages, to ensure all high-level language features can be mapped cleanly and efficiently onto underlying architectural hooks, without endangering the semantic integrity of those high-level constructs.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"21 1","pages":"Pages 17-37"},"PeriodicalIF":0.0,"publicationDate":"1995-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/0096-0551(94)00015-I","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91603567","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
Algebraic tools for language processing 语言处理的代数工具
Pub Date : 1994-11-01 DOI: 10.1016/0096-0551(94)90005-1
Teodor Rus, Tom Halverson

A language space provides a unified framework to deal with the properties of language constructs by associating them with their specification rules. The concrete syntax is represented by segments of the language space. The semantics is given by derived operations of the algebras where these constructs are interpreted by the processing tools operating on the language space. We examine in this paper only processing tools that collect syntactic information over the language space. Tools involved in semantics processing such as translators and interpreters are also integrated in the language space but are not discussed here.

语言空间提供了一个统一的框架,通过将语言构造的属性与其规范规则相关联来处理这些属性。具体语法由语言空间的片段表示。语义是由代数的派生操作给出的,这些构造由操作在语言空间上的处理工具解释。在本文中,我们只研究在语言空间中收集语法信息的处理工具。涉及语义处理的工具,如翻译器和口译器也集成在语言空间中,但不在这里讨论。
{"title":"Algebraic tools for language processing","authors":"Teodor Rus,&nbsp;Tom Halverson","doi":"10.1016/0096-0551(94)90005-1","DOIUrl":"10.1016/0096-0551(94)90005-1","url":null,"abstract":"<div><p>A language space provides a unified framework to deal with the properties of language constructs by associating them with their specification rules. The concrete syntax is represented by segments of the language space. The semantics is given by derived operations of the algebras where these constructs are interpreted by the processing tools operating on the language space. We examine in this paper only processing tools that collect syntactic information over the language space. Tools involved in semantics processing such as translators and interpreters are also integrated in the language space but are not discussed here.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"20 4","pages":"Pages 213-238"},"PeriodicalIF":0.0,"publicationDate":"1994-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/0096-0551(94)90005-1","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81551760","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}
引用次数: 25
Parallel arithmetic expression evaluation on reconfigurable meshes 可重构网格的并行算法表达式求值
Pub Date : 1994-11-01 DOI: 10.1016/0096-0551(94)90008-6
B. Pradeep , C. Siva Ram Murthy

In this paper we present an O(log n) time parallel algorithm for arithmetic expression evaluation, on an n × n processor array with reconfigurable bus system, where n is the sum of the number of operators and constants in the expression. The basic technique involved here is leaves-cutting (rake operation), as in the case of PRAM model algorithms available in the literature for this problem. The input to our algorithm is assumed to be the binary tree associated with a given expression (also known as expression tree with n number of nodes). Our algorithm is faster compared to the previous best time for expression evaluation on mesh connected computers which is O(√n).

本文在具有可重构总线系统的n × n处理器阵列上,给出了一种O(log n)时间的算术表达式求值并行算法,其中n为表达式中算子数和常数数之和。这里涉及的基本技术是叶片切割(耙操作),就像文献中可用的PRAM模型算法一样。我们算法的输入假定是与给定表达式(也称为具有n个节点的表达式树)相关联的二叉树。我们的算法比之前在网格连接的计算机上计算表达式的最佳时间(O(√n))要快。
{"title":"Parallel arithmetic expression evaluation on reconfigurable meshes","authors":"B. Pradeep ,&nbsp;C. Siva Ram Murthy","doi":"10.1016/0096-0551(94)90008-6","DOIUrl":"10.1016/0096-0551(94)90008-6","url":null,"abstract":"<div><p>In this paper we present an <em>O</em>(log <em>n</em>) time parallel algorithm for arithmetic expression evaluation, on an <em>n</em> × <em>n</em> processor array with reconfigurable bus system, where <em>n</em> is the sum of the number of operators and constants in the expression. The basic technique involved here is leaves-cutting (rake operation), as in the case of PRAM model algorithms available in the literature for this problem. The input to our algorithm is assumed to be the binary tree associated with a given expression (also known as expression tree with <em>n</em> number of nodes). Our algorithm is faster compared to the previous best time for expression evaluation on mesh connected computers which is <em>O</em>(√<em>n</em>).</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"20 4","pages":"Pages 267-277"},"PeriodicalIF":0.0,"publicationDate":"1994-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/0096-0551(94)90008-6","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87129127","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
A practical minimum distance method for syntax error handling 一个实用的最小距离语法错误处理方法
Pub Date : 1994-11-01 DOI: 10.1016/0096-0551(94)90006-X
J.A. Dain

We present a method for recovering from syntax errors encountered during parsing. The method provides a form of minimum distance repair, has linear time complexity, and is completely automatic. A formal method is presented for evaluating the performance of error recovery methods, based on global minimum-distance error correction. The minimum-distance error recovery method achieves a theoretically best performance on 80% of Pascal programs in the weighted Ripley-Druseikis collection. Comparisons of performance with other error recovery methods are given.

我们提出了一种从解析过程中遇到的语法错误中恢复的方法。该方法提供了一种最小距离修复形式,具有线性时间复杂度,并且是完全自动的。提出了一种基于全局最小距离误差校正的误差恢复方法性能评价的形式化方法。最小距离误差恢复方法在加权Ripley-Druseikis集合中对80%的Pascal程序实现了理论上的最佳性能。并与其他错误恢复方法进行了性能比较。
{"title":"A practical minimum distance method for syntax error handling","authors":"J.A. Dain","doi":"10.1016/0096-0551(94)90006-X","DOIUrl":"10.1016/0096-0551(94)90006-X","url":null,"abstract":"<div><p>We present a method for recovering from syntax errors encountered during parsing. The method provides a form of minimum distance repair, has linear time complexity, and is completely automatic. A formal method is presented for evaluating the performance of error recovery methods, based on global minimum-distance error correction. The minimum-distance error recovery method achieves a theoretically best performance on 80% of Pascal programs in the weighted Ripley-Druseikis collection. Comparisons of performance with other error recovery methods are given.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"20 4","pages":"Pages 239-252"},"PeriodicalIF":0.0,"publicationDate":"1994-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/0096-0551(94)90006-X","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84077019","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
期刊
Computer Languages
全部 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