| 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.
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.
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