首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
Monad作为构造纯函数式语言的工具,能构造出诸如错误处理、状态、IO等非纯函数式语言的特征。该文通过组合状态转换Monad和异常处理Monad来定义纯函数式语言通道系统操作,给出了通道系统操作的操作语义。  相似文献   

2.
Compilers and optimizers for declarative query languages use some form of intermediate language to represent user-level queries. The advent of compositional query languages for orthogonal type systems (e.g., OQL) calls for internal query representations beyond extensions of relational algebra. This work adopts a view of query processing which is greatly influenced by ideas from the functional programming domain. A uniform formal framework is presented which covers all query translation phases, including user-level query language compilation, query optimization, and execution plan generation. We pursue the type-based design—based on initial algebras—of a core functional language which is then developed into an intermediate representation that fits the needs of advanced query processing. Based on the principle of structural recursion we extend the language by monad comprehensions (which provide us with a calculus-style sublanguage that proves to be useful during the optimization of nested queries) and combinators (abstractions of the query operators implemented by the underlying target query engine). Due to its functional nature, the language is susceptible to program transformation techniques that were developed by the functional programming as well as the functional data model communities. We show how database query processing can substantially benefit from these techniques.  相似文献   

3.
Monad作为构造纯函数式语言的工具,能构造出诸如错误处理、状态、I/O等非纯函数式语言的特征.本文通过组合状态转换Monad和异常处理Monad来定义纯函数式LazyI/O操作,既保持了纯函数式语言的特征,又融入了非纯函数式语言的特征.  相似文献   

4.
一种基于模块单子语义的动态程序切片方法   总被引:2,自引:0,他引:2  
提出一种基于程序模块单子语义的新动态切片方法--模块单子动态切片.首先通过单子转换器,将切片这一类计算抽象成独立于具体语言的实体:切片单子转换器.然后,将该切片转换器作为模块加载到实际程序中,并给出相应的模块单子动态切片算法.据此,可直接在抽象语法结构上计算动态切片,不必记录程序执行历史;相应单子切片器也无需显式地构造诸如依赖图的中间结构.这种模块化抽象机制使得文中的动态切片算法具有很强的可扩展性和重用性.  相似文献   

5.
状态、输入和输出是Z规范的基础,引入Monad的纯函数式语言特别适合用来实现用Z规范说明的系统.通过将状态、输入和输出封装在一个Monad内,提出一种基于Z规范的纯函数式程序设计方法.  相似文献   

6.
Infinite trees form a free completely iterative theory over any given signature—this fact, proved by Elgot, Bloom and Tindell, turns out to be a special case of a much more general categorical result exhibited in the present paper. We prove that whenever an endofunctor H of a category has final coalgebras for all functors H( _ )+X, then those coalgebras, TX, form a monad. This monad is completely iterative, i.e., every guarded system of recursive equations has a unique solution. And it is a free completely iterative monad on H. The special case of polynomial endofunctors of the category is the above mentioned theory, or monad, of infinite trees.

This procedure can be generalized to monoidal categories satisfying a mild side condition: if, for an object H, the endofunctor H_+I has a final coalgebra, T, then T is a monoid. This specializes to the above case for the monoidal category of all endofunctors.  相似文献   


7.
This paper examines the feasibility of developing an “artificially intelligent econometrician” as an active decision support system (ADSS) in the sense articulated by [Manheim, 1988]. We review the system components of an ADSS and then relate them to a modeling system for econometric analysis that we have implemented. We present the query language of the PERM (Progressive EconometRic Modeling) system and offer an extension to the language based on process-oriented constructs for model integration. The query language and its extension correspond to the ADSS's user-directed and computer-directed process managers, respectively. Schemas representing statistical strategies are stored as processes in the extended language and serve as the econometric knowledge base. We suggest an approach to building an inference processor for this system based on experiments to record user query protocols and relate them to the schemas in the knowledge base. The connection between user processes and schemas is implemented by demon constructs in the extended language. Finally, we examine the extent to which our proposed system constitutes an ADSS.  相似文献   

8.
We present the call-by-push-value (CBPV) calculus, which decomposes the typed call-by-value (CBV) and typed call-by-name (CBN) paradigms into fine-grain primitives. On the operational side, we give big-step semantics and a stack machine for CBPV, which leads to a straightforward push/pop reading of CBPV programs. On the denotational side, we model CBPV using cpos and, more generally, using algebras for a strong monad. For storage, we present an O’Hearn-style “behaviour semantics’’ that does not use a monad. We present the translations from CBN and CBV to CBPV. All these translations straightforwardly preserve denotational semantics. We also study their operational properties: simulation and full abstraction. We give an equational theory for CBPV, and show it equivalent to a categorical semantics using monads and algebras. We use this theory to formally compare CBPV to Filinski’s variant of the monadic metalanguage, as well as to Marz’s language SFPL, both of which have essentially the same type structure as CBPV. We also discuss less formally the differences between the CBPV and monadic frameworks.  相似文献   

9.
This paper presents a layered verification technique, called LVT, for the verification of distributed computing systems with multiple component layers. Each lower layer in such a system provides services in support of functionality of the higher layer. By taking a very general view of programming languages as interfaces of systems, LVT treats each layer in a distributed computing system as a distributed programming language. Each relatively higher‐level language in the computing system is implemented in terms of a lower‐level language. The verification of each layer in a distributed computing system can then be viewed as the verification of implementation correctness for a distributed language. This paper also presents the application of LVT to the verification of a distributed computing system, which has three layers: a small high‐level distributed programming language; a multiple processor architecture consisting of an instruction set and system calls for inter‐process message passing; and a network interface. Programs in the high‐level language are implemented by a compiler mapping from the language layer to the multiprocessor layer. System calls are implemented by network services. LVT and its application demonstrate that the correct execution of a distributed program, most notably its inter‐process communication, is verifiable through layers. The verified layers guarantee the correctness of (1) the compiled code that makes reference to operating system calls, (2) the operating system calls in terms of network calls, and (3) the network calls in terms of network transmission steps. The specification and verification involved are carried out by using the Cambridge Higher Order Logic (HOL) theorem proving system. Copyright © 1999 John Wiley & Sons, Ltd.  相似文献   

10.
11.
Study on translating Chinese into Chinese sign language   总被引:1,自引:0,他引:1       下载免费PDF全文
Sign language is a visual-gestural language mainly used by hearingimpaired people to communicate with each other.Gesture and facial expression are important grammar parts of sign language.In this paper,a text-based transformation method of Chinese-Chinese sign language machine translation is proposed.Gesture and facial expression models are createwd.And a practical system is implemented.The input of the system is Chinese text.The output of the system is “graphics person“ who can gesticulate Chinese sign algnuage accompained by facial expression that corresponds to the Chinese text entered so as to realize automatic translation from Chinese text to Chinese sign language.  相似文献   

12.
13.
A system structure supporting parallel processing in general and parallel logic programming and expert system applications in particular is described. It is not based on special hardware but has rather been designed as an evolutionary extension to most existing machine architectures. It is aimed at parallel processing support for e.g. PROLOG as well as for expert system (shells) implemented in a general purpose language. A layered structure consisting of an extended machine interface and a macro language is chosen to support a range of various applications.  相似文献   

14.
15.
This paper describes VP2, a system that has been implemented to tutor nonnative speakers in English. This system differs from many tutoring systems by employing an explicit grammar of its user's native language. This grammar enables VP2 to customize its responses by addressing problems due to interference of the native language. The system focuses on the acquisition of English verb-particle and verb-prepositional phrase constructions. Its correction strategy is based upon comparison of the native language grammar with an English grammar. VP2 is a modular system: its grammar of a user's native language can easily be replaced by a grammar of another language. The problems and solutions presented in this paper are related to the more general question of how modelling previous knowledge facilitates instruction in a new skill.  相似文献   

16.
An efficient means of accessing indexed hierarchical databases using a relational query language is presented. The purpose is to achieve an effective sharing of heterogeneous distributed databases. Translation of hierarchical data to an equivalent relational data definition, translation of a relational query language statement to an equivalent program that can be processed by a hierarchical database management system, and automatic selection of secondary indexes of hierarchical databases are investigated. A major portion of the result has been implemented, and the performance of the implemented system is analyzed. The performance of the system is satisfactory for a wide range of test data and test queries. It is shown that the utilization of the secondary index significantly enhances the efficiency in accessing hierarchical databases  相似文献   

17.
This paper presents two grammars for reading numbers of classical andmodern Arabic language. The grammars make use of the structured Arabiccounting system to present an accurate and compact grammar that can beeasily implemented in different platforms. Automating the process ofreading numbers from its numerical representation to its sentential formhas many applications. Inquiring about your bank balance over the phone,automatically writing the amount of checks (from numerical form toletter form), and reading for the blind people are some of the fieldsthat automated reading of numbers can be of service. The parsing problemof sentential representation of numbers in the Arabic language is alsoaddressed. A grammar to convert from sentential representation to thenumerical representation is also presented. Grammars presented can beused to translate from the sentential Arabic numbers to sententialEnglish numbers, and vice versa, by using the common numericalrepresentation as an intermediate code. Such methodology can be used toaid the automatic translation between the two natural languages. Allgrammars described in this paper have been implemented on a UNIX system.Examples of different number representations and the output of theimplementation of the grammars are given as part of the paper.  相似文献   

18.
Marketing research and corporate planning are enhanced by an effective decision support system. A system developed and implemented in an insurance company is used to illustrate how computer cartography and statistical procedures can be combined as powerful analytical tools. It also demonstrates how a nonprocedural language (SAS with SASGRAPH) can be used to create modules of systems that are efficiently implemented and easily maintained by analysts with limited programming capabilities.  相似文献   

19.
A new interactive command language was developed to implement integrated computer-aided design in computer control applications. It is intended to operate at the supervisory level in a real-time hierarchical system.The integrated approach is based on convolution algebra and provides a unified conceptual framework for studying the behaviour of practical systems in the time domain. Consequently, as an alternative to choosing fixed system structures and design procedures, the user may evaluate experimental procedures suggested by the underlying theory.The language has been implemented on a minicomputer at Bradford University and applied to industrial control problems. The highly flexible and practical aspects of the language are demonstrated.  相似文献   

20.
We give a systematic treatment of distributivity for a monad and a comonad as arises in incorporating category theoretic accounts of operational and denotational semantics, and in giving an intensional denotational semantics. We do this axiomatically, in terms of a monad and a comonad in a 2-category, giving accounts of the Eilenberg-Moore and Kleisli constructions. We analyse the eight possible relationships, deducing that two pairs are isomorphic, but that the other pairs are all distinct. We develop those 2-categorical definitions necessary to support this analysis.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号