| Saraswat, V.M., Kahn, K., and Levy, J. 1990. \Janus: A Step towards Distributed Constraint Programming", In North American Conf. on LP, MIT Press, October, pp.431-446. |
....languages, test predicates are further restricted to predefined ones. Later development of concurrent logic languages can be phrased as devolution as evolution [26] 32] in the sense that it focused on high performance, compiler based implementation of flat languages. Strand [9] KL1 and Janus [19] all belong to this category. Accordingly, there was less work on meta interpreters for the last 10 years. Huntbach [11] shows a meta interpreter that implements ask using match 2, a special primitive discussed in detail in Sect. 3.3. Although using match 2 to implement ask is a natural idea, ....
Saraswat, V. A., Kahn, K. and Levy, J., Janus: A Step Towards Distributed Constraint Programming. In Proc.
.... are not interleaved with structural type information, or (iii) with a different meaning: Modes have described the instantiation state of procedure arguments (such as ground, non ground, free) directly before or before and after application [4, 11, 35] or guaranteed point to point communication [17, 33, 38] In concurrent functional languages, synchronization based on futures [14] or I structures [2] in Id comes close to data driven synchronization based on logic variables. In contrast to futures, logic variables are created independently from the thread that will bind it. In contrast to logic ....
V. A. Saraswat, K. Kahn, and J.-J. Levy. Janus: A step towards distributed constraint programming. In North American Conference on Logic Programming, 1990.
....communicating processes, can be thought of as a form of compile time garbage collection [41] 40] Another technique related to compile time garbage collection is process fusion by unfold fold transformation [38] which should have some relationship with deforestation of functional programs. Janus [27] establishes the linearity property by allowing each variable to occur only twice. In Janus, a reserved unary constructor is used to give a variable occurrence an output capability. Our technique allows both linear and nonlinear variables and distinguishes between them by static analysis, and ....
Saraswat, V. A., Kahn, K. and Levy, J., Janus: A Step Towards Distributed Constraint Programming. In Proc.
....this requires that each of the variables A, I, B, and J be instantiated, the instantiation component of the demand is given by p(d, d, d, d) In addition, the array elements A.I, B.J, and (A.I) B.J) must be instantiated. The demand corresponding to the array reference A. I is described by aref([1], 2] where [1] refers to the first argument position in the top level goal, i.e. the variable A, and [2] refers to the second argument position, i.e. the variable I. Similarly, the demand for the array reference B.J is described by aref( 3] 4] and that for (A.I) B.J) by aref(aref( 1] ....
....each of the variables A, I, B, and J be instantiated, the instantiation component of the demand is given by p(d, d, d, d) In addition, the array elements A.I, B.J, and (A.I) B.J) must be instantiated. The demand corresponding to the array reference A. I is described by aref( 1] 2] where [1] refers to the first argument position in the top level goal, i.e. the variable A, and [2] refers to the second argument position, i.e. the variable I. Similarly, the demand for the array reference B.J is described by aref( 3] 4] and that for (A.I) B.J) by aref(aref( 1] 2] aref( 3] ....
[Article contains additional citation context not shown here]
V. Saraswat, K. Kahn, and J. Levy, `Janus: a step towards distributed constraint programming', Proc. 1990 North American Conference on Logic Programming, Austin, TX, October 1990, pp. 431--446. MIT Press.
....linearity systems were later designed for GHC [13] A lot of implementation e#orts and techniques have been accumulated. Concurrent logic programming was generalized to concurrent constraint programming that allowed data domains other than finite trees, and a concurrent constraint language Janus [11] chose multisets (also called bags) as an important data domain. Another important generalization was Constraint Handling Rules (CHR) 7] that allowed multisets of atomic formulae in clause heads. CHR was designed as a language for defining constraint solvers, but at the same time it is one of the ....
Saraswat, V. A., Kahn, K. and Levy, J., Janus: A Step Towards Distributed Constraint Programming. In Proc.
....there are many connections between the system described here and much recent work in that area. In contrast, my work on state appears to be almost unique. 7.1.1 Linear naming There are some programming languages that have adopted a linear restriction on the way that variables can be used. Janus [SKL90] is a concurrent logic programming language where only two occurrences of any given variable are allowed in any clause. When one occurrence is used to constrain the value of the variable, the other occurrence can be used to read that value. This is the logic programming equivalent of the notion ....
....no real advantage in this, given that naming in an Actor language is no more or less linear than it is in Scheme. It would also be possible to to accomplish the same goal at the low level by building hardware that treated local memory addresses and remote references on an equal footing. Janus [SKL90] is also intended as a language for distributed computing with the requisite unified naming system. Furthermore its authors are aware of the benefits of linearity, and so Janus only supports linear naming. Janus is also a good candidate as a source language in place of Scheme but I wanted to ....
Vijay A. Saraswat, Ken Kahn, and Jacob Levy. Janus: A step towards distributed constraint programming. In Proc. North American Logic Programming Conference, pages 431--446. MIT Press, October 1990.
....nseat(4) client req(spec,time,4) agency . criterion(time) Figure 7: Simulation of an airline reservation system 15 Also, there is no notion of consistency (and failure) in a IAM, whereas the Concurrent Constraint framework does not preclude it a priori (some syntactic restrictions [16] may however ensure that the store of constraints always remain consistent) The traditional logic programming notion of global inconsistency, which makes inconsistency in one branch of the computation responsible for the inconsistency of the whole computation tree appears undesirable and ....
K. Kahn, J. Levy, and V.A. Saraswat. Janus: A step towards distributed constraint programming. In Proc. of NACLP'90, Austin, Tx, U.S.A, 1990. 17
....constraints that may require generate and test search. However, they are rather exceptional and our solution is not to implement generate and test search but let programmers declare the modes of predicate arguments involving such variables. Concurrent languages Doc [5] A 0 UM [16] and Janus [8] attempt to ensure well modedness by allowing each variable to occur only twice and letting programmers distinguish between input and output occurrences using annotations. These annotations can be regarded as mode declarations and contribute to readability and or ease of compilation, but they are ....
Saraswat, V. A., Kahn, K. and Levy, J., Janus: A Step Towards Distributed Constraint Programming. In Proc.
....goes chaotic once its binding environment becomes inconsistent. Of course, it is most desirable that such insecurity be detected at compile time. The main reason for the insecurity is that two or more processes sharing a variable may try to instantiate it non cooperatively. Doc [5] and Janus [17] introduced annotations (attached to occurrences of variables) to syntactically guarantee that only one process can instantiate a variable. On the other hand, Ueda and Morita [25] showed that simple mode analysis can be used to guarantee the same property. The mode system provides a uni ed ....
Saraswat, V., Kahn K. and Levy J., Janus: A Step Towards Distributed Constraint Programming. SSL 89-108, System Sciences Lab., Xerox PARC, 1989.
....goal must still check if the left hand side is a variable. In our framework, the assignment primitive can be considered as identical to unification except that it implicitly declares that m(h: 1i) out and (consequently) m(h: 2i) in . Concurrent languages Doc [7] A 0 UM [26] and Janus [13] attempt to simplify the implementation of concurrent logic languages by allowing each variable to occur only twice and letting programmers distinguish between 36 input and output occurrences using annotations. Again, these annotations can be regarded as mode declarations, the consistency ....
Saraswat, V. A., Kahn, K. and Levy, J., Janus: A Step Towards Distributed Constraint Programming. In Proc.
....reference bit) for each pointer was designed for Flat GHC [1] and adopted in a KL1 implementation on a Parallel Inference Machine. 5] Roughly speaking, linearity analysis proposed in this paper tries to compile away MRBs and related operations by analyzing the value of MRBs statically. Janus [6] establishes the linearity property by allowing each variable to occur only twice. Our technique allows both linear and nonlinear variables and distinguishes between them by static analysis. Various techniques for the distributed implementation of concurrent logic languages were proposed, 5] ....
Saraswat, V. A., Kahn, K. and Levy, J., Janus: A Step Towards Distributed Constraint Programming. In Proc.
....2.4: VLP Definition of Factorial 19 Figure 2.5: Pictorial Janus most of the occurrences of a shared variable are typically located. Cube overcomes this problem by moving into 3D. Figure 2.4 shows a VLP definition of the factorial predicate. Pictorial Janus [35] is a visual notation for Janus [72], a concurrent constraint logic language. It offers a powerful and elegant visual metaphor for the underlying resolution process: diagram rewriting. Predicate definitions, clauses, and subgoals are represented as closed contours (such as circles) Whenever one particular clause is selected to ....
....the first two arguments to produce the third one, or the last two to produce the first one. The multidirectionality of predicate applications thus complements nicely the bidirectionality of dataflow in Cube. Cube is not as powerful as a constraint logic language, such as CLP (R) 34] or Janus [72]. It binds variables to values, rather than associating them with constraints. So, in order for an addition to be performed, at least two of its arguments must be known (there is one exception, namely if the first or second argument is 0) As long as not enough arguments are known, the addition is ....
Vijay A. Saraswat, Ken Kahn, and Jacob Levy. Janus: A Step towards Distributed Constraint Programming. In North American Conference on Logic Programming, pages 431 -- 446, 1990.
....captures completely the needed functionality. 3. 2 Translating languages with non atomic unification The group of languages with non atomic unification includes (among others) Fleng (Nilsson and Tanaka 1986) Parlog (Gregory 1987) GHC (Ueda 1986) Strand (Foster and Taylor 1990) and Janus (Saraswat et al. 1990). Consider the definition of the predicate member add#X;L;Lb;Le#, adding an element X into the difference list Lb=Le if it is a member of the list L (Foster and Taylor 1990) member add#X; #X1 j #; Lb;Le#: X= X1 j Lb =#XjLe#: member add#X; #X1 j L#;Lb;Le#: X=n=X1jmember add#X;L;Lb;Le#: member ....
Saraswat, V.A., Kahn, K. and Levy, J. (1990) Janus: a step towards distributed constraint programming, in NACLP90, Austin, USA, 29 October--1 November, MIT Press, Cambridge, MA, pp. 431--46.
....its memory reuse decisions whenever possible. The next example illustrates the situation where a structure that is available for compile time reuse is large enough to be used to construct more than one new data structure. Example 2. 2 Consider the following clause for a quicksort program in Janus [13] 2 , where E denotes the size of the array E and denotes array concatenation: qs(E, K, B) 0 K, K E qs(E[0. K] C) qs(E[ K 1) E 1) D) B = C D. Here, the input array E is split into two parts: the first, E[0. K] containing the first K 1 elements, and the ....
....producer to satisfy the requirements of a particular consumer. This suggests the following definition of a memory reuse problem: Definition 2. 1 A memory reuse problem is a 5 tuple hP; C; choices; cost; newcosti, where: 2 The Janus syntax given here is a flattened version of that used in [13]. P is a set of producers; C is a set of consumers; choices : P Gamma ( C) is a function that maps each producer to a set of sets of consumers. Intuitively, given a producer u 2 P , the memory produced by u can be used for any one of the elements of choices(u) each element of ....
V. Saraswat, K. Kahn, and J. Levy, "Janus: A step towards distributed constraint programming", in Proc. 1990 North American Conference on Logic Programming, Austin, TX, Oct. 1990, MIT Press, Cambridge, pp. 431-446.
....by communicating channels and functions instead of ports. The idea of communicating names (ports) was inspired by [MPW92a, MPW92b] The action structures [Mil92] are also related to our model. The idea of associating an access right with each channel in order to control interference was taken from [SKL90]. The semantic model of [SRP91] has also some similarities to our model. However, the intentions are complementary. SRP91] aims at generality. We, on the other hand, have developed a particular model based on traditional stream processing functions. In [SRP91] inconsistencies can only be avoided ....
V. A. Saraswat, K. Kahn, and J. Levy. Janus: A step towards distributed constraint programming. In Proc. North American Conference on Logic Programming, 1990.
....is a similar one of grain size tuning, but under much more difficult circumstances where little synchronization and data reference information may be available at compile time. Concurrent logic programming approaches, particularly those based on the committed choice The Concert System 18 model [40, 17, 33, 32] are similar to concurrent object oriented languages. However, they have little support for encapsulation and parallel collections. In committed choice languages, the emphasis is on task parallelism which is often expressed as operations on a stream. While some degree of grain size tuning can be ....
V. Saraswat, K. Kahn, and J. Levy. Janus: A step towards distributed constraint programming. In Proceedings of the North American Conference on Logic Programming, Austin, Texas, October 1990.
....containing a variable intended for back communication will be accessed by all readers of the original variable set to that structure without distinction. To overcome this, Saraswat et al. proposed a language, Janus, in which logic variables had exactly one reader as well as exactly one writer [Sara 90]. We propose a model which is less restrictive than this, so multicasting is not lost. We also avoid the introduction of additional constructs such as the cells and procedure references of Oz [Hari 99] which are not describable using logic variables and the logic programming model. So we develop ....
V.A.Saraswat, K.Kahn and J.Levy. Janus: a step towards distributed constraint programming. In Proc. North American Conf. on Logic Programming,. S.Debray and M.Hermenegildo (eds), MIT Press, pp.431-446.
....similar to ours. First, the compiler for the MasPar MP 1[6] lumps together operations on a number of array elements and allocates these chunks of work to individual processors. Second, efficient execution of concurrent logic languages has been obtained by grouping successive elements of a stream[14]. The first approach is typical to data parallel programming languages, while our approach and the stream approach can work with more general heterogenous data structures. Grain size tuning is an issue even in shared memory machines[1] since large grains are required to achieve reasonable ....
V. Saraswat, K. Kahn, and J. Levy. Janus: A step towards distributed constraint programming. In Proceedings of the North American Conference on Logic Programming, Austin, Texas, October 1990.
....logic, before specifying the syntax and semantics of Pictorial Janus in the logic. We conclude by discussing how a spatial simulator might be used to animate the semantics. 2 An overview of Pictorial Janus Pictorial Janus [11] is a visual form of the concurrent constraint based language Janus [19]. Janus itself is a simple, general purpose language in which asynchronous program agents communicate by message passing on point to point directed channels. Typically, messages consist of data (constants, arrays, functions, other channels etc. or constraints on channel access rights. An agent ....
V A Saraswat, K M Kahn, and J Levy. Janus --- a step towards distributed constraint programming. In Proc. North American Logic Programming Conference. MIT Press, 1990.
....using generalised propagation. Generalised propagation can be seen as an example of the relaxed tell operation of [HD91] which is discussed in more detail in section 6.3, below. Approximation constraints are extracted from the propagation constraint and they are told to the store. However 2 In [SKL90] each store is viewed as a set. However this second view can only treat distinct tokens of information which are logically independent. 9 propagation is a continuing process which goes on until an answer to the propagation constraint has been found. In general propagation will continue ....
Vijay A. Saraswat, Ken Kahn, and Jacob Levy. Janus: A step towards distributed constraint programming. In Proceedings of the 1990 North American Conference on Logic Programming [NAC90], pages 431--446.
....logic before showing how the syntax of Janus can be described. We finish by giving a brief description of how the procedural semantics of the language is defined within RCC. 2 An overview of Pictorial Janus Pictorial Janus [8] is a visual form of the concurrent constraint based language Janus [11]. Concurrent languages are particularly suited to representation in pictorial form as diagrammatic information makes the relationships between the various processes easy to see. Janus Email: fgooday,agcg scs.leeds.ac.uk. Phone: 44 (113) 233 5430. The support of the EPSRC under grants GR G36852, ....
V A Saraswat, K M Kahn, and J Levy. Janus --- a step towards distributed constraint programming. In Proc. North American Logic Programming Conference. MIT Press, 1990. 10
....language semantics, is not well suited to visual languages as it does not naturally capture their spatial dimension. RCC, on the other hand, is ideal for this task. In (Cohn and Gooday 1994) we showed how RCC could provide a formal description of the syntax and semantics of Pictorial Janus (Saraswat, Kahn and Levy 1990). Using continuity networks we were able to give a full account of the procedural semantics of the language and it is planned to use this in conjunction with QSSIM to simulate the execution of Pictorial Janus Programs. Our approach is intended to provide a method for the rapid prototyping of ....
Saraswat, V. A., Kahn, K. M. and Levy, J.: 1990, Janus --- a step towards distributed constraint programming, Proc. North American Logic Programming Conference, MIT Press.
....universe) As a prerequisite to this, we will first cover the formal background to concurrent constraint languages and discuss methods of disjunctive and hypothetical reasoning already investigated in logic languages. CHAPTER 1. INTRODUCTION 4 1. 1 Background Concurrent constraint languages [58, 32, 61, 60, 62] grew out of a formalization of concurrent logic languages 2 [46, 65, 72, 66] The concept of programming with constraints is taken from the work on constraint logic programming [30, 31, 39, 29, 12, 13, 22] which itself is a generalization of Prolog [36, 9, 69] 1.1.1 Terminology For the sake ....
Vijay A. Saraswat, Ken Kahn, and Jacob Levy. Janus: A step towards distributed constraint programming. In Debray and Hermenegildo [15], pages 431--446.
....we do not make many assumptions about the source language, except that it is dynamically typed. This covers a wide variety of languages, e.g. functional programming languages such as Lisp and Scheme (e.g. see [18] logic programming languages such as Prolog [3] Strand [6] GHC [19] and Janus [11, 15], imperative languages such as Icon [10] and SETL [16] and object oriented languages such as Smalltalk [9] and SELF [5] The optimization we discuss is likely to be most beneficial for languages and programs where procedure calls are common, and which are therefore liable to benefit significantly ....
....our heuristics, i.e. the quality of their solutions compared to the optimal; and (ii) the efficacy of the optimization, i.e. the performance improvements resulting from it. The numbers presented reflect the performance of jc [11] an implementation of a logic programming language called Janus [15] on a Sparcstation 1. 4 This system is currently available by anonymous FTP from cs.arizona.edu. Table 1 gives, for each benchmark, the number of machine instructions that would be executed over all call sites for the entry actions in the procedures only, using (i) no call forwarding; ii) call ....
V. Saraswat, K. Kahn, and J. Levy, "Janus: A step towards distributed constraint programming ", in Proc. 1990 North American Conference on Logic Programming, Austin, TX, Oct. 1990, pp. 431-446. MIT Press.
....a call to a procedure typically involves executing a set of idempotent entry actions. This covers a wide variety of dynamically typed languages, e.g. functional programming languages such as Lisp and Scheme (e.g. see [15] logic programming languages such as Prolog [4] GHC [17] and Janus [11, 13], imperative languages such as SETL [14] and object oriented languages such as Smalltalk [10] and SELF [6] The optimization we discuss is likely to be most beneficial for languages and programs where procedure calls are common, and which are therefore liable to benefit significantly from ....
....of greedy algorithm, i.e. the quality of its solutions compared to the optimal; and (ii) the efficacy of the optimization, i.e. the performance improvements resulting from it. The numbers presented reflect the performance of jc [11] an implementation of a logic programming language called Janus [13] on a Sparcstation 1. 3 This system is currently available by anonymous FTP from cs.arizona.edu. Table 1 gives, for each benchmark, the number of machine instructions that would be executed over all call sites for the entry actions in the procedures only, using (i) no call forwarding; ii) ....
V. Saraswat, K. Kahn, and J. Levy, "Janus: A step towards distributed constraint programming", in Proc. 1990 North American Conference on Logic Programming, Austin, TX, Oct. 1990, pp. 431-446. MIT Press.
....this requires that each of the variables A, I, B, and J be instantiated, the instantiation component of the demand is given by p(d, d, d, d) In addition, the array elements A.I, B.J, and (A.I) B.J) must be instantiated. The demand corresponding to the array reference A. I is described by aref([1], 2] where [1] refers to the first argument position in the top level goal, i.e. the variable A, and [2] refers to the second argument position, i.e. the variable I. Similarly, the demand for the array reference B.J is described by aref( 3] 4] and that for (A.I) B.J) by aref(aref( 1] ....
....that each of the variables A, I, B, and J be instantiated, the instantiation component of the demand is given by p(d, d, d, d) In addition, the array elements A.I, B.J, and (A.I) B.J) must be instantiated. The demand corresponding to the array reference A. I is described by aref( 1] 2] where [1] refers to the first argument position in the top level goal, i.e. the variable A, and [2] refers to the second argument position, i.e. the variable I. Similarly, the demand for the array reference B.J is described by aref( 3] 4] and that for (A.I) B.J) by aref(aref( 1] 2] aref( 3] ....
[Article contains additional citation context not shown here]
V. Saraswat, K. Kahn, and J. Levy, "Janus: A step towards distributed constraint programming", in Proc. 1990 North American Conference on Logic Programming, Austin, TX, Oct. 1990, pp. 431-446. MIT Press.
....communicating channels and functions instead of ports. The idea of communicating names (ports) was inspired by [MPW92a, MPW92b] The action structures [Mil92] are also related to our model. The idea of associating an access right with each channel in order to control interference was taken from [SKL90] Our semantic conditions which assure point to point communication were also inspired by the syntactic conditions given in that paper. The semantic model of [SRP91] has also many similarities to our model. However, the intentions are complementary. SRP91] aims at generality. We, on the other ....
V. A. Saraswat, K. Kahn, and J. Levy. Janus: A step towards distributed constraint programming. In Proc. North American Conference on Logic Programming, 1990.
.... is introduced. In a second step, we provide some guidelines for the extension of our system, and show how new solvers can be integrated. 3 One should note that the same constraint may be dispatched to different solvers. Local stores do therefore not represent a distributed store as in Janus [SKL90] 3 Nelson and Oppen [NO79] first proposed a method for combining decision procedures for several theories into a single decision procedure. In their system, each satisfiability procedure deduces and propagates to the other satisfiability procedures all equalities between variables entailed by ....
Vijay A. Saraswat, Kenneth M. Kahn, and Jacob Levy. Janus: A step towards distributed constraint programming. In Proceedings North American Conference on Logic Programming, 1990.
....the body occurrence with output mode) It is this fact which makes demand driven execution possible, thus, we limit our attention to FM in this paper. This paper illustrates a new technique for demand driven execution of FM programs, applicable to languages such as Strand, FGHC [12] and Janus [11]. The significance of the work is that it is the first specification of a purely demand driven mechanism for CCLs (see discussion of related work by Ueda and Morita in Section 4) If successful, this mechanism can lead to a quantum performance improvement and will facilitate reactive programming. ....
V. A. Saraswat, K. Kahn, and J. Levy. Janus: A Step Towards Distributed Constraint Programming. In North American Conference on Logic Programming, pages 431--446. Austin, MIT Press, October 1990.
....indicate that the performance of our approach is uniformly better than that of plausible alternative schemes. 1 Introduction There has been a great deal of research, in recent years, on the design and implementation of concurrent logic and constraint programming languages (see, for example, [12, 13, 14, 15, 17]) Much of the implementation effort in this context has focussed on the so called flat versions of these languages: here, a procedure definition consists of alternatives, each alternative preceded by a guard that consists of a set of ask actions or primitive tests. An alternative can be ....
V. Saraswat, K. Kahn, and J. Levy, "Janus: A step towards distributed constraint programming", in Proc. 1990 North American Conf. on Logic Programming, Austin, TX, Oct. 1990, pp. 431--446. MIT Press.
....already placed in the store, and an agent by performing a blocking ask will suspend until the constraint is entailed by the store. Atomic Herbrand was designed with the goal (among others) to correct some design flaws in (Flat) Concurrent Prolog [156] Janus, another concurrent constraint language [150], was designed to address some shortcomings of committed choice logic programming languages for distributed programming. Janus is a member of the dc family of distributed constraint programming languages, a subset of the cc family. dc languages are failure free , which is essential if they are to ....
....processing. Higher order constraint systems has also been recently studied in [149] Constraint data structures suitable for concurrent constraint languages has been studied at length in [148] and experience has been gained in implementing the Janus Technical Annex PE7195 ACCLAIM 43 system [150, 61]. Constraint solving over finite domains has been investigated in the CHIP programming language, together with implementation techniques, and applications to many combinatorial problems [84] Limitations of the initial design are now well understood and work is in progress to overcome them. ....
Vijay A. Saraswat, Ken Kahn, and Jacob Levy. Janus: A step towards distributed constraint programming. In Proceedings of the North American Conference on Logic Programming, October 1990.
....languages. Several research groups have been concentrating on fi nding other more powerful logic languages such as G odel [70] Escher [87] Multi Prolog [12] languages based on equation relational sets [77] languages based on temporal and modal logics, concurrent constraintbased languages [104], higher order languages, and so forth. However Prolog is the simplest and most effi cient logic programming language implemented. In the nextsection we give an introduction to the Prolog language, and show some program examples. 2.2 Prolog Prolog is a computer programming language [24, 115] ....
Vijay A. Saraswat, Ken Kahn, and Jacob Levy. Janus: A step towards distributed constraint programming. In Proceedings of the 1990 North American Conference on Logic Programming, pages 431-- 446, 1990.
....is assignment of the same value. Our use of a choose predicate is intended to get round it by ensuring that a variable has only a single writer: we leave it to the programmer to keep the single writer property. Some logic languages enforce each variable to have a single writer by syntactic means [Saraswat et al. 90]. Our solution could be criticised for resulting in the need to construct and maintain a structure of choose goals. The maintenance of atomic unification in Flat Concurrent Prolog (FCP) has been defended because it offers a solution to this problem through mutual exclusion techniques [Codish ....
. V.A.Saraswat, K.Kahn and J.Levy. Janus --- a step towards distributed constraint programming. In Proc. North American Logic Programming Conference, MIT Press, pp.431-446.
....a rule which makes it true, then the corresponding attribute is returned. 1. There is a certain body of work in distributed logic programming etc. which is looking into how to transform rule systems in order to minimize communication overhead (e.g. Wolfson and Silberschatz [233] Saraswat et al. [234]) However, these works generally do not consider constraints pertaining to boundaries of authority ownership and privacy of the locally owned rules, that is, limitations as to which processors can be trusted for what. A Network Centric Architecture for Managing Control Information A ....
Saraswat, V., K. Kahn, and J. Levy (1990). Janus: A Step towards Distributed Constraint Programming. Proceedings of the 1990 North American Conference on Logic Programming. Austin, TX. pp. 431-46. MIT Press.
....It is not difficult to see that if either p 2 or q 2 returns either of its outputs in registers, at least one of the clauses defining p 2 will have to give up tail call optimization. 2 2. 2 Interactions with Procedure Suspension Committed choice languages such as Parlog [6] GHC [22] and Janus [19] typically require that if a procedure activation cannot make progress because its inputs are not adequately instantiated, it should suspend until its inputs are available. Many modern Prolog systems also provide facilities whereby an activation can be made to suspend until certain of its ....
....a structure. Both of these optimizations have been implemented in the system described in the remainder of the paper. 5 Output Value Placement in jc We have implemented the output value placement algorithm described above in the jc system [12] a sequential implementation of a variant of Janus [19, 12]. The algorithm assumes that information about input output modes, suspension behavior, and relative execution frequencies has been computed separately, and also that machine level costs for various low level operations have been supplied. The program dependent information is obtained from ....
V. Saraswat, K. Kahn, and J. Levy, "Janus: A step towards distributed constraint programming", in Proc. 1990 North American Conference on Logic Programming, Austin, TX, Oct. 1990, pp. 431-446. MIT Press.
....the program to completion from the point at which the snapshot was taken. The most significant visual language whose semantics is based on completely visual principles is Pictorial Janus [10] which was originally designed to model the execution of the constraint logic programming language Janus [13] but whose execution semantics may be derived from graphical rules applied to the visual representation. For more information on Janus and Pictorial Janus, the reader is referred to the appropriate references. 4 Although a program in Pictorial Janus maps directly into a program in textual Janus, ....
V. Saraswat, K. M. Kahn & J. Levy (1990) JANUS: A step towards distributed constraint programming. In: North American Logic Programming Conference Austin, TX, 431-446.
....Gudeman 1 , Koenraad De Bosschere 2 , Saumya K. Debray 1 1. Department of Computer Science 2. Electronics Laboratory The University of Arizona Rijksuniversiteit Gent Tucson, AZ 85721, USA B 9000 Gent, Belgium Abstract: Janus is a language designed for distributed constraint programming [12]. This paper describes jc, an efficient and portable sequential implementation of Janus, which compiles Janus programs down to C code. Careful attention to the C code generated, together with some simple local optimizations, allows the system to have fairly good performance despite the lack (at ....
....of Janus, which compiles Janus programs down to C code. Careful attention to the C code generated, together with some simple local optimizations, allows the system to have fairly good performance despite the lack (at this time) of global flow analysis and optimization. 1 Introduction Janus [12] is an instance of a concurrent constraint programming language [11] This report describes jc, an efficient and portable sequential implementation of Janus that compiles down to C. A Janus program is a set of flat guarded clauses defining its procedures. It is in many respects similar to Strand ....
[Article contains additional citation context not shown here]
V. Saraswat, K. Kahn, and J. Levy, "Janus: A step towards distributed constraint programming", in Proc. 1990 North American Conference on Logic Programming, Austin, TX, Oct. 1990, pp. 431-446. MIT Press.
....on the global information. We benefit from restricting ourselves to subset of the CLP family that allows full mode information to be derived. Our choice is Fully Moded Flat Guarded Horn Clauses (FGHC) defined by Ueda and Morita [19] representing a class of languages such as Strand [5] and Janus [14]. We call this language FM for short. The essential idea of FM is that the input output structure of corresponding clause arguments of a procedure is required to be identical. Thus, for example, the procedure p(a(X) b(Y ) X : Y 1: p(a(X) b(Y ) Y : X 1: is not moded, since the ....
V. A. Saraswat, K. Kahn, and J. Levy. Janus: A Step Towards Distributed Constraint Programming. In North American Conference on Logic Programming, pages 431--446. Austin, MIT Press, October 1990.
....this, observe that when considering downward closed observables a failed computation has to be interpreted as the program may fail , meaning that anything can happen. Also consider that there are CC languages explicitly designed to statically avoid the possibility of a failing computation (see [25] for a discussion of this topic in the distributed programming context) From now on, Omega and 9 x will denote the additive extensions of Omega and 9 x over H(C) Thus, for all S; T 2 P#(C) we have S Omega T = U Phi :fc Omega dg: fi fi c 2 S; d 2 T; c Omega d 2 C Psi 9 x S ....
V. A. Saraswat, K. Kahn, and J. Levy. Janus: A step towards distributed constraint programming. In S. K. Debray and M. Hermenegildo, editors, Proc. North American Conf. on Logic Programming'90, pages 431--446. The MIT Press, Cambridge, Mass., 1990.
No context found.
Vijay Saraswat, Kenneth Kahn, and Jacob Levy. Janus: A step towards distributed constraint programming. In North American Logic Programming Conference, October 1990.
....language ideas could be found in the Lisp language. The design of ToonTalk is based upon the belief that the best programming language ideas can be found in concurrent logic programming and concurrent constraint programming languages like Janus, Linear Janus, FGHC, Vulcan, DOC, AKL, and Oz [4,5,6]. These languages, in turn, borrow heavily from earlier languages like Concurrent Prolog and Parlog that in turn grew out of research on Prolog. While these languages have many desirable aspects they are powerful, elegant, theoretically well grounded, and expressive they are not generally ....
Vijay A. Saraswat, Kenneth Kahn, and Jacob Levy. Janus--A step towards distributed constraint programming. In Proceedings of the North American Logic Programming Conference. The MIT Press, October 1990.
....before taking some action. Furthermore, for certain kinds of constraint systems (see the discussion on cc(Herbrand) in Section 6) we show that even inconsistency can be localized to the concerned variables, thus greatly simplifying the conception of distributed cc programming languages (cf. [SKL90]) 1.2 Comparison with related work The notion that lattice models of the calculus have something to do with concurrency is part of the folklore of domain theory (see, e.g. Mey88] Blo90] However, to our knowledge the appropriate notions of concurrent computation has not been worked out in ....
Vijay A. Saraswat, Ken Kahn, and Jacob Levy. Janus: A step towards distributed constraint programming. In Proceedings of the North American Conference on Logic Programming, October 1990.
....is achieved by suspending ask agents until enough information is available to conclusively answer the query; the query is answered affirmatively if it is entailed by the constraints accumulated hitherto. Such a framework for concurrent computation is proving fruitful in several investigations (Saraswat et al. 1990), Hentenryck et al. 1992) Janson Haridi (1991) Smolka et al. 1994) Kaci (1993) with applications in areas ranging from modeling physical systems, to combinatorial exploration and natural language analysis. There are however some fundamental limitations to this monotonic accumulation ....
Saraswat, V. A., Kahn, K., Levy, J. (1990). Janus: A step towards distributed constraint programming.
....to the store. Search non determinism is introduced by allowing computation to fork into two distinct branches, preserving only the (possibly disjunctive) information obtained on both. While simple, these ideas are being used for the design of both programming languages for distributed systems [SKL90] and very powerful languages for symbolic reasoning [HS91,HJ90] From a computational perspective, the cc paradigm may be seen to generalize (and arose out of) the areas of concurrent logic programming and constraint logic programming. But where are the logical foundations of the (very ....
....in which messages (here, p) are delivered to methods (here, p Gammaffi r, and p Gammaffi q) Indeed linear asks and tells allow for a direct, powerful form of communication. An example should suffice to convey the flavor. A natural way to model Actor style languages within the cc framework (see [SKL90,KS90]) is to represent actor mailboxes as logical variables equated to bags of values. Sending a message, say 5, to an actor with associated channel X , then, corresponds to posting the constraint 5 2 X . The actor suspends, asking whether there is a message on X; when activated, it pops a message off ....
Vijay A. Saraswat, Ken Kahn, and Jacob Levy. Janus: A step towards distributed constraint programming. In Proceedings of the North American Conference on Logic Programming, October 1990.
No context found.
Saraswat, V.M., Kahn, K., and Levy, J. 1990. \Janus: A Step towards Distributed Constraint Programming", In North American Conf. on LP, MIT Press, October, pp.431-446.
No context found.
V.A. Saraswat, K. Kahn, and J. Levy. Janus: a step towards distributed constraint programming. In proc. of the North American Conference on Logic Programming, 1990. 5
No context found.
Saraswat, V.M., Kahn, K., and Levy, J. 1990. \Janus: A Step towards Distributed Constraint Programming", In North American Conf. on LP, MIT Press, October, pp.431-446.
No context found.
Saraswat, V. A., Kahn, K. and Levy, J., Janus: A Step Towards Distributed Constraint Programming. In Proc.
No context found.
V. A. Saraswat, K. Kahn, and J. Levy. Janus: A step towards distributed constraint programming. In Proc. North American ConferenceonLogic Programming, 1990.
No context found.
V. A. Saraswat, K. Kahn, and J. Levy, "Janus: A step towards distributed constraint programming", in Proc. 1990 North American Conference on Logic Programming, Austin, TX, Oct. 1990, pp. 431-446. MIT Press.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC