Results 1  10
of
11
Predicting the Drape of Woven Cloth Using Interacting Particles
, 1994
"... We demonstrate a physicallybased technique for predicting the drape of a wide variety of woven fabrics. The approach exploits a theoretical model that explicitly represents the microstructure of woven cloth with interacting particles, rather than utilizing a continuum approximation. By testing a cl ..."
Abstract

Cited by 119 (5 self)
 Add to MetaCart
We demonstrate a physicallybased technique for predicting the drape of a wide variety of woven fabrics. The approach exploits a theoretical model that explicitly represents the microstructure of woven cloth with interacting particles, rather than utilizing a continuum approximation. By testing a cloth sample in a Kawabata fabric testing device, we obtain data that is used to tune the model's energy functions, so that it reproduces the draping behavior of the original material. Photographs, comparing the drape of actual cloth with visualizations of simulation results, show that we are able to reliably model the unique largescale draping characteristics of distinctly different fabric types. iii Figure 1.1: Draping cloth objects 1 Introduction The vast number of uses for cloth are mirrored in the extraordinary variety of types of woven fabrics. These range from the most exquisite fine silks, to the coarsest of burlaps, and are woven from such diverse fibers as natural wool and synth...
The Polymorphic Picalculus: Theory and Implementation
, 1995
"... We investigate whether the πcalculus is able to serve as a good foundation for the design and implementation of a stronglytyped concurrent programming language. The first half of the dissertation examines whether the πcalculus supports a simple type system which is flexible enough to provide a su ..."
Abstract

Cited by 95 (0 self)
 Add to MetaCart
We investigate whether the πcalculus is able to serve as a good foundation for the design and implementation of a stronglytyped concurrent programming language. The first half of the dissertation examines whether the πcalculus supports a simple type system which is flexible enough to provide a suitable foundation for the type system of a concurrent programming language. The second half of the dissertation considers how to implement the πcalculus efficiently, starting with an abstract machine for πcalculus and finally presenting a compilation of πcalculus to C. We start the dissertation by presenting a simple, structural type system for πcalculus, and then, after proving the soundness of our type system, show how to infer principal types for πterms. This simple type system can be extended to include useful typetheoretic constructions such as recursive types and higherorder polymorphism. Higherorder polymorphism is important, since it gives us the ability to implement abstract datatypes in a typesafe manner, thereby providing a greater degree of modularity for πcalculus programs. The functional computational paradigm plays an important part in many programming languages. It is wellknown that the πcalculus can encode functional computation. We go further and show that the type structure of λterms is preserved by such encodings, in the sense that we can relate the type of a λterm to the type of its encoding in the πcalculus. This means that a πcalculus programming language can genuinely support typed functional programming as a special case. An efficient implementation of πcalculus is necessary if we wish to consider πcalculus as an operational foundation for concurrent programming. We first give a simple abstract machine for πcalculus and prove it correct. We then show how this abstract machine inspires a simple, but efficient, compilation of πcalculus to C (which now forms the basis of the Pict programming language implementation).
HigherOrder Concurrent Programs with Finite Communication Topology (Extended Abstract)
, 1994
"... Concurrent ML (CML) is an extension of the functional language Standard ML (SML) with primitives for the dynamic creation of processes and channels and for the communication of values over channels. Because of the powerful abstraction mechanisms the communication topology of a given program may be v ..."
Abstract

Cited by 63 (12 self)
 Add to MetaCart
Concurrent ML (CML) is an extension of the functional language Standard ML (SML) with primitives for the dynamic creation of processes and channels and for the communication of values over channels. Because of the powerful abstraction mechanisms the communication topology of a given program may be very complex and therefore an efficient implementation may be facilitated by knowledge of the topology. This paper presents an analysis for determining when a bounded number of processes and channels will be generated. The analysis proceeds in two stages. First we extend a polymorphic type system for SML to deduce not only the type of CML programs but also their communication behaviour expressed as terms in a new process algebra. Next we develop an analysis that given the communication behaviour predicts the number of processes and channels required...
Implicit typing `a la ML for the joincalculus
 Proceedings of the 8th International Conference on Concurrency Theory, volume 1243 of Lecture Notes in Computer Science
, 1997
"... We adapt the DamasMilner typing discipline to the joincalculus. The main result is a new generalization criterion that extends the polymorphism of ML to joindefinitions. We prove the correctness of our typing rules with regard to a chemical semantics. We also relate typed extensions of the core j ..."
Abstract

Cited by 47 (12 self)
 Add to MetaCart
We adapt the DamasMilner typing discipline to the joincalculus. The main result is a new generalization criterion that extends the polymorphism of ML to joindefinitions. We prove the correctness of our typing rules with regard to a chemical semantics. We also relate typed extensions of the core joincalculus to functional languages. 1 Introduction The distributed implementation of concurrent calculi with message passing raises the problem of implementing communication channels, which finally reduces to the specification of channel managers. In order to reflect this need in the language itself, a new formalism has been recently introduced : the joincalculus [2]. This calculus is similar to Milner's asynchronous ßcalculus, except that the operations of restriction, reception and replication are all combined into a single receptor definition. Such a combination yields better control over communication. In [2, 3], we relied on this locality property to model realistic distributed sys...
Reasoning about HigherOrder Processes
, 1994
"... We address the specification and verification problem for process calculi such as Chocs, CML and Facile where processes or functions are transmissible values. Our work takes place in the context of a static treatment of restriction and of a bisimulationbased semantics. As a paradigmatic and simple ..."
Abstract

Cited by 17 (8 self)
 Add to MetaCart
We address the specification and verification problem for process calculi such as Chocs, CML and Facile where processes or functions are transmissible values. Our work takes place in the context of a static treatment of restriction and of a bisimulationbased semantics. As a paradigmatic and simple case we concentrate on (Plain) Chocs. We show that Chocs bisimulation can be characterized by an extension of HennessyMilner logic including a constructive implication, or function space constructor. This result is a nontrivial extension of the classical characterization result for labelled transition systems. In the second part of the paper we address the problem of developing a proof system for the verification of process specifications. Building on previous work for CCS we present an infinitary sound and complete proof system for the fragment of the calculus not handling restriction. Keywords: Higherorder process calculi; Bisimulation; Modal logics; Program specification; Program verif...
Constraints for Polymorphic Behaviours of Concurrent ML
 IN PROC. CCL'94. SLNCS 845
, 1994
"... ..."
A Polymorphic Type and Effect System for Detecting Mobile Functions
, 1999
"... We introduce the language Mobile which supports mobile computation by combining a functional core with constructs for transmitting and receiving values across remote sites. Mobile agents have a natural representation as function closures in Mobile. We develop a static type and effect system where ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We introduce the language Mobile which supports mobile computation by combining a functional core with constructs for transmitting and receiving values across remote sites. Mobile agents have a natural representation as function closures in Mobile. We develop a static type and effect system where the types are annotated to reveal the flow of functions and channels. We present an analysis of types which conservatively estimates the potentially mobile functions and channels. The paper also includes the specification of the dynamic semantics of Mobile in relational style, proofs for the consistency of static and dynamic semantics and the soundness of our analysis.
Inferring Effect Types in an Applicative Language with Asynchronous Concurrency
 In Proceedings of Second ACM SIGPLAN Workshop on State in Programming Languages (SIPL 95
, 1996
"... this paper we consider inda, a concurrent applicative language based on a rather different concurrency paradigm, namely the Linda concept of Gelernter and Bernstein [GB82], and give a type system where effects are described by expressions in a process calculus. The type inference system proposed in ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
this paper we consider inda, a concurrent applicative language based on a rather different concurrency paradigm, namely the Linda concept of Gelernter and Bernstein [GB82], and give a type system where effects are described by expressions in a process calculus. The type inference system proposed in this paper introduces a novel combination of two previous solutions that have been used to deal with a problem peculiar to applicative programming languages, that of determining the polymorphic effect type of functions. Should one use subtyping or effect polymorphism? We argue that a combination is needed. We give a sound type reconstruction algorithm based around our idea. Proofs of all results stated in the paper are found in [KJH94]. 2 inda
Mechanized Reasoning about Concurrent Functional Programs
"... . Various mechanisms have been used for adapting functional languages to parallel machines, ranging from semanticspreserving annotations to concurrent language extensions. Concurrent extensions are applicable to both lazy and strict languages, and give the programmer full control over parallel eva ..."
Abstract
 Add to MetaCart
. Various mechanisms have been used for adapting functional languages to parallel machines, ranging from semanticspreserving annotations to concurrent language extensions. Concurrent extensions are applicable to both lazy and strict languages, and give the programmer full control over parallel evaluation; however, they complicate the proofs of program correctness. This paper pursues the concurrent extension approach to parallel functional programming, and addresses the question of proving parallel programs correct with respect to sequential specifications. The paper presents an extension of a lazy functional language with concurrency primitives, allowing the dynamic creation of processes and pointtopoint interprocess communication. The primitives are given an operational semantics, and an observational equivalence between processes is defined. The equivalence has been implemented in a theorem prover for concurrent functional programs. As an illustration, the derivation of a para...
Periodic Progress Report
"... Machines, G'erard Boudol from INRIA SophiaAntipolis and Ugo Montanari from University of Pisa prepared the area report on Calculi, Rajagopal Nagarajan from Imperial College did the area report on Logics for Concurrency and the calculus, Benjamin Pierce from Edinburgh University (and Cambridge) and ..."
Abstract
 Add to MetaCart
Machines, G'erard Boudol from INRIA SophiaAntipolis and Ugo Montanari from University of Pisa prepared the area report on Calculi, Rajagopal Nagarajan from Imperial College did the area report on Logics for Concurrency and the calculus, Benjamin Pierce from Edinburgh University (and Cambridge) and Bent Thomsen from ECRC wrote the area report on Programming Languages. 3 4 CHAPTER 1. OVERVIEW Chapter 2 Executive summary The overall objective of the CONFER action is to create both the theoretical foundations and the technology for combining the expressive power of the functional and the concurrent computational models. The action is organised around four main areas: ffl Foundational Models and Abstract Machines ffl Calculi ffl Logics for Concurrency and the calculus ffl Programming Languages The objectives for the third year of CONFER put forth at the end of Year 2 of CONFER have been achieved at the end of Year 3. Significant results beyond these objectives have also been obt...