眼镜的包装设计外文翻译资料

 2022-10-28 16:25:18

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


包装设计原理

贝特朗·梅耶

1,介绍

几年来,我们EDF中的一些人一直在用一般适用性工具编写软件,这个软件工作室已经用来形容我们团队的活动,已建成和分发的工具,其性质和利用方式有很大的不同。一个重要的类别是子程序包。子程序包是一组程序,可以称为任何程序,其目的是提供一种手段,执行任务在某些领域的应用程序可用的编程语言不直接地址。

在过去三年中我们开发的子程序包的例子包括图1所列,在这些软件包的工作,我们已经获得了各种见解。我们的目的是传达一些其他从业者可能面临的类似问题。没有突破的;我们的技术都是标准。然而,我们认为,他们的介绍和讨论的软件工程方法中使用的设计,我们的包可能是有帮助的实践程序员工作在“工业”的环境。

在第2节中,我们描述了我们的环境,一个大型的科学计算中心,并强调需要子程序包相关的其他类型的软件工具。第3节是外部设计标准的详细讨论,即包装应该如何出现在外部世界。第4节介绍了我们的内部设计方法,即实施,以满足前面部分的要求;我们的方法的要点是,它考虑一个包装实现一个或多个抽象数据类型。第5节总结了我们的经验范围的一些思考。

由于命名惯例是我们讨论的重要组成部分,我们在整个文本中,翻译的法语单词和缩写出现在子程序名。包装名称本身已被保存。

2,为什么有子程序包装

为什么子程序包,这里提出的想法肯定在某种程度上反映了这样的事实:我们的计算中心是面向科学,主要是Fortran编程;和,在较小的一个,它使用了三台ibm(370-168,3033,3081)下的MV,它最近被添加。

第一个问题,读者可能会问的是为什么我们专注于收藏的子程序。我们的目标是扩展现有语言所提供的设施范围。至少有四个其他解决方案:

(1)说服用户切换到

更好或更强大的语言;

(2)写JCL程序;

(3)编写会话程序;

(4)专用处理器设计。

计算实践

简单地说,我们将讨论为什么这些选择并不总是令人满意的。解决方案(1)肯定是理想的。然而,可悲的事实是,大多数程序员在行业使用第一代语言,不太可能尝试另一个。如果你的目标是生产使用的工具,你最好遵从多数法则。(一个更可悲的事实,当我们见到4条,是该工具的作家往往是因为技术的限制,禁止使用现代语言)。

解决方案(2)和(3)(批处理或会话程序)是足够的用于“最终用户”的工具,但不是由程序启动其执行的任务。

解决方案(4)(预处理器)似乎有吸引力,但也有许多缺点。一是它可能会导致为不同的目的服务的预处理器的增殖,这不,作为一项规则,相互兼容。作为一个例子,考虑的情况下,FORTRAN程序员谁希望使用的控制结构“结构化编程。他的程序输出结果到各种图形设备,他们需要

某些数组具有动态边界(即在开始处理之前,在文件上读取边界)。许多预处理,如RATFOR [ 5 ],可为第一目的;其他,如FORTRAN 3d [ 11 ],服务的第二个(注,但是,后者产品的当前版本使用子程序包公式),还有其他存在的第三个要求。这些预处理器的输入语言,在一般情况下,使用完全不同的习俗。他们对待错误不会相同。他们中的一些人,在生成FORTRAN代码时,会删除注释,而另一些人会在某个预定义的语法中识别注释作为指令。因此,他们的组合使用将非常困难,在许多情况下,不可能。

此外,应该指出的是,只有添加表面预处理对FORTRAN的改进。他们通常不提供补救措施语言固有的局限性方面的数据结构,动态分配、指针变量、内部和跨例程类型检查、递归等。

子程序包不存在这些缺陷,虽然,无可否认,他们提出的其他问题在下节讨论。对于潜在的用户,他们提供了一种非常简洁的方法,用新的指令来丰富现有的编程语言,实现子程序调用。

三.外部的设计标准

一个子程序包是一组相互关联的子程序。 他们应该如何“相互关联”对方将在4节更详细的研究。那一刻,我们把一个重要的问题:如何应对这些子程序被提交给他们的潜在用户?这个问题是至关重要的,特别是鉴于程序员 常常不愿意投入必要的努力去学习一种新的方法论。他们不会被诱惑使用我们的包,除非一些非常有吸引力的论据说服他们这样做。

在下面的章节中,我们将列出我们的包应该具备的那些可取的品质,并解释这些设计标准,即简单性、自我约束性、易用性、同质性、安全性等。

3.1整体简洁

在简单的领域中,我们的中心论点是,大多数程序员不会使用子程序包,如果它需要一个参考手册的不断依赖。虽然我们坚持认为用户至少阅读过一部分手册,但我们的理想是,他们可以在没有任何书面文件的情况下,使用标准程序包。实际上,我们并没有完全达到这个目标,而是然而,我们成功地把所有必要的信息集中在一页的正常使用上。我们认为这是强制性要求。例如,看到包gescran如图2所示的参考表。

我们的方法的最重要的方面是,我们不尝试编写复杂的包提供了广泛的服务和满足所有用户的幻想。相反,我们专注于仔细研究用户的需求,并努力提供简单和有效的答案,其中最重要的。当然,决定哪些问题是最重要的一个设计决策往往用户的需求是不表达或表达,如果,需要很多工作要转化为现实的规范。

3.2自我约束

我们的程序被其他程序或子程序:他们是没有直接关系的解决“有趣”的问题,而是执行通用任务。应用程序/子程序包/系统层次图如图3所示,其他级别当然可以存在。我们是指我们的子程序调用应用程序的程序;另一方面,用户将是那些运行应用程序的个人(或程序)。(这些术语,尤其是后者,是数据处理中误用最多的两个术语,我们将力求准确地使用它们。)自我约束是必要的,至少有一个层面,是一个应用程序,用户和我们的子程序之间。因此,后者必须是无形的用户尽可能。这是特别重要的错误(第3.5节)。

3.3易用

文档

文档组织的简单性,易用性和同质性。所有的包都用相同的手册记录结构,如图4所示。

参数顺序

易于使用的一个关键是设计的一致性。这个标准变得更加重要新产品使用和可用的子程序的数量增长。它要求对所有分布式产品严格遵守一组规则的、连贯的约定。

计算,实践

需要均匀的政策的一个重要领域是参数顺序。在不提供关键字参数传输的语言环境中,任何子程序的实际参数必须在与子程序的形式参数相匹配的固定顺序。包装用户必须知道这个订单;这种约束往往成为烦恼和错误的来源。因此,包装设计师必须遵守一些惯例。例如,在文本包,它允许字符串

使用出现在编译器中的伪字符串变量的操作作为整数变量(见第4.6节),一些典型的调用的语法将是下面的框中看到的,iText是,flext和ktext伪变量,i和j的整数。

这里决定的参数顺序如下:在赋值中,目标总是在源之前。这与大多数编程语言的语法是一致的:

A :=f(B, C .... )

此外,由于包的目的是提供一个“字符串”数据类型作为它的存在,说等效,PL/I,选择命令旨在模仿这确实提供了操作这种语言的语法;例如,叫cncttx(iText,FLEXt,ktext)如下的PL /我模式iText = FLEXt 11 ktext。

一致性的顺序参数的规则可能会与其他,同样重要的标准有关的同质性设计。例如,在axrdir包直接存取文件的管理,有一个常规读谁的电话有以下形式

电话reafda(文件ID,目标,记录数,误差指标)

这符合“目的地”的规则,虽然在目标文件identifiercomes与包的其余部分一致性的原因。然而,对于写例程,我们选择了语法

电话wrifda(文件ID、源、记录数,误差指标)

因为我们认为这将是很容易记住,相应的参数占据完全相同的位置在这两个操作,“目标”

用于读和写对称的“源”。目的地第一法则因此,违反了wrifda。

3.4均匀性

参数数(操作数和参数)

参数的问题涉及简单性和同质性,不仅参数应该出现在一个精心挑选的顺序,但它们的数量应该是小的,如果程序员要记住调用序列。

所有的子程序图1上市,百分之71有零,一个,或两个参数,小于百分之4的有四多个(一个被视为自变量的函数的结果)。参数的最大数目是六。

要求短的参数列表有一个直接的后果:由于任何应用程序之间的数据传输和包子程序以外的参数传递(如明确的公共块共享)被禁止,每个子程序只能执行一个明确定义的单任务。在我们的例子中,这个属性成为了要求短参数列表的另一个动机,而不是这个要求的结果。它确实是我们设计哲学的整体(见第4节)。

这种方法有有趣的实际后果区分我们的包从许多市售的。让一个子程序,比如说,被用来实现一个具有一定数目的操作,比如n,操作数。通常情况下,几种操作模式是可用的,所描述的一定数量,如M,参数或选项。通常,n是小的,但M可能是大的,并会随着用户要求新的改进。

在这一点上,读者可以要求一个精确的定义的区别参数与操作数之间。虽然区别在许多情况下

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[137641],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版