符号代数系统的运算符实现

G. Gonnet
{"title":"符号代数系统的运算符实现","authors":"G. Gonnet","doi":"10.1145/32439.32487","DOIUrl":null,"url":null,"abstract":"In this paper we propose a design and implementation of operators and their associated functionality for symbolic algebra systems. We believe that operators should blend harmoniously (syntactically and semantically) with the underlying language, in such a way that users will find them convenient and appealing to use. It is “vox populi” that operators are needed in a symbolic algebra system, although there is little consensus on what these should be, what the semantics should be, allowable operations, syntax, etc. All of these ideas, and examples, have been implemented and work as described in our current version of Maple Cha85.\nDuring the first Maple retreat83 we established a basic design for operators. The implementation of this design was delayed until some remaining crucial details were finally solved during the 1985 Maple retreat (Sept 1985). In this sense, this paper is the result of the collective work of all the participants of these two retreats.\nWhat is an operator? We would like to define an operator to be an abstract data type which describes (at various possible degrees: totally, partially or minimally) an operation to be performed on its arguments. This abstract data type is closely associated with the operations of application and composition, but will also allow most (or all) of the other algebraic operations.\nWe it found useful to have some “witness” examples that we want to solve in an elegant and general form. The two main examples were:\n(a) How to represent the first derivative of ƒ(x) at 0, i.e. ƒ′(0) (the above really boils down to an effective representation of the differentiation operator)\n(b) How to represent and to operate with a non-communative multiplication operator, for example matrix multiplication.\nOf course many systems solve the above problems, but in some cases (in particular for the first example) as an ad-hoc solution. By an ad-hoc solution we mean that, for the differentiation example, this operator cannot be written in terms of the primitives given by the language.\nIt is important to note that there are three issues to resolve:a purely representational/syntactic argument: how to input/output these operators.\na purely functional argument: how to perform all the operations we want performed.\nan integrational argument: how to join operators harmoniously with a symbolic algebra system.\n","PeriodicalId":314618,"journal":{"name":"Symposium on Symbolic and Algebraic Manipulation","volume":"25 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1986-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":"{\"title\":\"An implementation of operators for symbolic algebra systems\",\"authors\":\"G. Gonnet\",\"doi\":\"10.1145/32439.32487\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"In this paper we propose a design and implementation of operators and their associated functionality for symbolic algebra systems. We believe that operators should blend harmoniously (syntactically and semantically) with the underlying language, in such a way that users will find them convenient and appealing to use. It is “vox populi” that operators are needed in a symbolic algebra system, although there is little consensus on what these should be, what the semantics should be, allowable operations, syntax, etc. All of these ideas, and examples, have been implemented and work as described in our current version of Maple Cha85.\\nDuring the first Maple retreat83 we established a basic design for operators. The implementation of this design was delayed until some remaining crucial details were finally solved during the 1985 Maple retreat (Sept 1985). In this sense, this paper is the result of the collective work of all the participants of these two retreats.\\nWhat is an operator? We would like to define an operator to be an abstract data type which describes (at various possible degrees: totally, partially or minimally) an operation to be performed on its arguments. This abstract data type is closely associated with the operations of application and composition, but will also allow most (or all) of the other algebraic operations.\\nWe it found useful to have some “witness” examples that we want to solve in an elegant and general form. The two main examples were:\\n(a) How to represent the first derivative of ƒ(x) at 0, i.e. ƒ′(0) (the above really boils down to an effective representation of the differentiation operator)\\n(b) How to represent and to operate with a non-communative multiplication operator, for example matrix multiplication.\\nOf course many systems solve the above problems, but in some cases (in particular for the first example) as an ad-hoc solution. By an ad-hoc solution we mean that, for the differentiation example, this operator cannot be written in terms of the primitives given by the language.\\nIt is important to note that there are three issues to resolve:a purely representational/syntactic argument: how to input/output these operators.\\na purely functional argument: how to perform all the operations we want performed.\\nan integrational argument: how to join operators harmoniously with a symbolic algebra system.\\n\",\"PeriodicalId\":314618,\"journal\":{\"name\":\"Symposium on Symbolic and Algebraic Manipulation\",\"volume\":\"25 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1986-10-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"6\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Symposium on Symbolic and Algebraic Manipulation\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/32439.32487\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Symposium on Symbolic and Algebraic Manipulation","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/32439.32487","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6

摘要

本文提出了符号代数系统中算子及其相关功能的设计与实现。我们认为操作符应该(在语法和语义上)与底层语言和谐地融合在一起,以使用户发现它们使用起来方便和有吸引力。符号代数系统中需要操作符,这是“流行的”,尽管对于这些操作符应该是什么、语义应该是什么、允许的操作、语法等几乎没有共识。所有这些想法,和例子,已经实现和工作描述在我们当前版本的Maple Cha85。在第一次Maple撤退期间,我们为操作员建立了一个基本设计。这个设计的实施被推迟,直到一些关键的细节在1985年枫叶静修(1985年9月)期间最终得到解决。从这个意义上说,这篇论文是这两次静修的所有参与者共同努力的结果。什么是算子?我们希望将操作符定义为一种抽象数据类型,它描述(在不同可能的程度上:全部、部分或最低限度)对其参数执行的操作。这种抽象数据类型与应用程序和组合的操作密切相关,但也允许大多数(或全部)其他代数操作。我们发现有一些“见证”示例很有用,我们希望以优雅和通用的形式解决这些示例。两个主要的例子是:(a)如何表示f (x)在0处的一阶导数,即f '(0)(以上实际上归结为微分算子的有效表示)(b)如何表示和操作非交换乘法算子,例如矩阵乘法。当然,许多系统都可以解决上述问题,但在某些情况下(特别是第一个示例)作为临时解决方案。我们所说的特别解是指,对于微分例子,这个运算符不能用语言给出的原语来表示。需要注意的是,有三个问题需要解决:纯粹的表示/语法参数:如何输入/输出这些操作符。一个纯函数参数:如何执行我们想要执行的所有操作。一个积分论证:如何与符号代数系统和谐地连接算子。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
An implementation of operators for symbolic algebra systems
In this paper we propose a design and implementation of operators and their associated functionality for symbolic algebra systems. We believe that operators should blend harmoniously (syntactically and semantically) with the underlying language, in such a way that users will find them convenient and appealing to use. It is “vox populi” that operators are needed in a symbolic algebra system, although there is little consensus on what these should be, what the semantics should be, allowable operations, syntax, etc. All of these ideas, and examples, have been implemented and work as described in our current version of Maple Cha85. During the first Maple retreat83 we established a basic design for operators. The implementation of this design was delayed until some remaining crucial details were finally solved during the 1985 Maple retreat (Sept 1985). In this sense, this paper is the result of the collective work of all the participants of these two retreats. What is an operator? We would like to define an operator to be an abstract data type which describes (at various possible degrees: totally, partially or minimally) an operation to be performed on its arguments. This abstract data type is closely associated with the operations of application and composition, but will also allow most (or all) of the other algebraic operations. We it found useful to have some “witness” examples that we want to solve in an elegant and general form. The two main examples were: (a) How to represent the first derivative of ƒ(x) at 0, i.e. ƒ′(0) (the above really boils down to an effective representation of the differentiation operator) (b) How to represent and to operate with a non-communative multiplication operator, for example matrix multiplication. Of course many systems solve the above problems, but in some cases (in particular for the first example) as an ad-hoc solution. By an ad-hoc solution we mean that, for the differentiation example, this operator cannot be written in terms of the primitives given by the language. It is important to note that there are three issues to resolve:a purely representational/syntactic argument: how to input/output these operators. a purely functional argument: how to perform all the operations we want performed. an integrational argument: how to join operators harmoniously with a symbolic algebra system.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
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学术官方微信