| Didier R emy and J er ome Vouillon. Objective ML: A simple objectoriented extension of ML. In Proceedings of the 24th ACM Symposium on Principles of Programming Languages, pages 40--53. ACM Press, 1997. |
.... rewriting and operations on terms, and we present implementations of the modules for domains with frequent applications of substitution (like type theory) and for domains with frequent applications of uni cation (like rst order logic) MetaPRL, our testbed, is implemented in Objective Caml [19]. It includes logics like rst order logic, the NuPRL type theory, and Aczel s CZF set theory [1] We include performance measurements that compare MetaPRL s performance with NuPRL 4 on the NuPRL type theory. In our measurements, we also show how particular module implementations change the ....
Didier Remy and Jer^ome Vouillon. Objective ML: A simple object{oriented extension of ML. In ACM Symposium on Principles of Programming Languages, pages 40-53, 1997. 15
....casts. 6 Related work Fisher and Mitchell [10] use extensible objects to model Javalike class constructs. Our encoding does not rely on extensible objects as primitives, but it may be viewed as an implementation of some of their properties in terms of simpler constructs. R emy and Vouillon [28] use row polymorphism in Objective ML for both class types and type inference on unordered records. Our calculus is explicitly typed, but we use ordered rows to represent the open type of self. Our object representation is superficially similar to several of the classic encodings in F# based ....
Didier R emy and J er ome Vouillon. Objective ML: A simple object-oriented extension of ML. In Proc. ACM pages 40--53, Paris, January 1997. ACM.
....argument and produces a contract similar to mixin contract , except that the contract guarantees that input to the function is a class that implements the given interface. Although the mixin contract is, in principle, checkable by a type system, no such type system is currently implemented. OCaml [18, 19, 26] and OML [26] are rich enough to express mixins, but typechecking fails for any interesting use of mixins [7] since the type system does not allow subsumption for imported classes. This contract is an example where the expressiveness of contracts leads to an opportunity to improve existing type ....
....a contract similar to mixin contract , except that the contract guarantees that input to the function is a class that implements the given interface. Although the mixin contract is, in principle, checkable by a type system, no such type system is currently implemented. OCaml [18, 19, 26] and OML [26] are rich enough to express mixins, but typechecking fails for any interesting use of mixins [7] since the type system does not allow subsumption for imported classes. This contract is an example where the expressiveness of contracts leads to an opportunity to improve existing type systems. ....
R emy, D. and J. Vouillon. Objective ML: A simple objectoriented extension of ML. In Proceedings of ACM Conference Principles of Programming Languages, pages 40--53, January 1997.
....Advanced FIR optimizations are fairly easy to implement, and the mcc6u column lists performance numbers using an optimizer under development that implements alias analysis and partial redundancy elimination. Naml benchmarks are similar, and include numbers for the INRIA OCaml compiler [20], version 3.04. The speci c benchmarks include the following. The fib program computes the n Fibonacci number (using the naive algorithm) This benchmark is highly recursive, and the performance numbers re ect the use of continuationpassing style. The mcc programs allocate an exponential ....
Didier Remy and Jer^ome Vouillon. Objective ML: A simple object{oriented extension of ML. In ACM Symposium on Principles of Programming Languages, pages 40-53, 1997.
....formal system, which is used to express FIR optimizations and other formal operations. Phobos allows the definition of domainspecific languages as an extension to one of the general purpose languages, or as a formal language defined directly in MetaPRL. The entire system is written in the OCaml [22] programming language. MetaPRL uses a term language to represent program syntax, while the Mojave compiler uses its own internal representation. The FIR#MetaPRL links are responsible for converting between the Mojave FIR and MetaPRL FIR representations. Finally, the back end generates object code, ....
Didier Remy and Jerome Vouillon. Objective ML: A simple object--oriented extension of ML. In ACM Symposium on Principles of Programming Languages, pages 40--53, 1997.
....designed as a Logical Programming Environment (LPE) where programs, type systems, proofs, and speci cations can all be de ned and related to one another. One of the problems with the MetaPRL design is that it is a layered architecture. The theorem prover is layered above the OCaml compiler [16], and the connection is unidirectional. Any task (such as parsing, type inference, and scoping) that is assigned to the compiler is not available to the formal system, hindering e ective formal software development. In another related e ort, we used the NuPRL system to optimize communication ....
Didier Remy and Jer^ome Vouillon. Objective ML: A simple object{oriented extension of ML. In ACM Symposium on Principles of Programming Languages, pages 40-53, 1997.
....formal system, which is used to express FIR optimizations and other formal operations. Phobos allows the definition of domainspecific languages as an extension to one of the general purpose languages, or as a formal language defined directly in MetaPRL. The entire system is written in the OCaml [20] programming language. MetaPRL uses a term language to represent program syntax, while the Mojave compiler uses its own internal representation. The FIR#MetaPRL links are responsible for converting between the Mojave FIR and MetaPRL FIR representations. Finally, the back end generates object code, ....
Didier Remy and Jerome Vouillon. Objective ML: A simple object--oriented extension of ML. In ACM Symposium on Principles of Programming Languages, pages 40--53, 1997.
....declarations as general as our polymorphic subtype axioms, and variance based depth subtyping. Objective Caml (Objective ML) conservatively extends ML with subtype inference and a powerful type abbreviation mechanism that achieves much of the succinctness we obtain by using name inequivalence [RV97] However, the type system of Objective Caml is based on extensible records (in contrast to extensible record types) and does not support subsumption. Many of the systems mentioned allow subtype constraints to be recursive [Kae92, AW93, EST95, RV97, MW97, OW97] thus facilitating certain ....
....we obtain by using name inequivalence [RV97] However, the type system of Objective Caml is based on extensible records (in contrast to extensible record types) and does not support subsumption. Many of the systems mentioned allow subtype constraints to be recursive [Kae92, AW93, EST95, RV97, MW97, OW97] thus facilitating certain objectoriented programming idioms not otherwise expressible [BCC 96] Our system does not currently support recursively constrained types, although a generalization that would allow such constraints to be checked (just as ordinary constraints can be ....
Didier Remy and Jerome Vouillon. Objective ML: A simple object-oriented extension of ML. In ACM Principles of Programming Languages, Paris, France, January 1997.
....Tofte and Thorup ( 40] showed how the existential type model could be coded in Standard ML, using explicit coercions in place of subtyping. The encoding machinery is heavy, but some simple type system extensions and syntactic sugar might make this encoding usable. The Ocaml dialect of ML ([34]) added an object class system based on the existential model but using R emy s row polymorphism as a substitute for true subtyping. As a consequence, explicit coercions are required in places where subsumption would normally apply. More recently, Fisher and Reppy have been developing a ....
Didier R'emy and Jrme Vouillon. Objective ML: A simple object-oriented extension of ML. In Proceedings of the 24th ACM Conference on Principles of Programming Languages, pages 40--53, January 1997.
....for # link , and verify the type safety of this calculus. App. C provides the details of the translation from # mod into # link . 2. REVIEW OF ISSUES In this section we briefly review the issues that are addressed by this work. 2. 1 Review of a Module Language The Objective ML language [Remy and Vouillon 1997] provides a reasonable example of a state of the art module language. Module interfaces are termed signatures in Objective ML. The following example defines the interface for implementations of ordered sets. Such a set has a witness type t and a comparison operation #: module type ORDSET = sig ....
R emy, D. and Vouillon, J. 1997. Objective ML: A simple object-oriented extension of ML. In Proceedings of ACM Symposium on Principles of Programming Languages. ACM Press, Paris, France.
....Tofte and Thorup ( 39] showed how the existential type model could be coded in Standard ML, using explicit coercions in place of subtyping. The encoding machinery is heavy, but some simple type system extensions and syntactic sugar might make this encoding usable. The Ocaml dialect of ML ([33]) added an object class system based on the existential model but using R emy s row polymorphism as a substitute for true subtyping. As a consequence, explicit coercions are required in places where subsumption would normally apply. More recently, Fisher and Reppy have been developing a ....
Didier R'emy and Jrme Vouillon. Objective ML: A simple objectoriented extension of ML. In Proceedings of the 24th ACM Conference on Principles of Programming Languages, pages 40--53, January 1997. http://pauillac.inria.fr/ remy/publications.html.
....of the class incr bu er . This means that all the body of incr must be rewritten, which is indeed an anomaly. 5 Types and privacy The static semantics of our calculus is inspired by those of the core join calculus for concurrency and synchronization [10] and of Objective Caml for the class layer [18]. We develop a polymorphic type system that prevents various dynamic errors. First, it guarantees type safety, that is, no label will ever carry a tuple of messages of the wrong type. Then, it avoids message not understood errors, that is, no message can be sent to an object with a label that is ....
D. Remy and J. Vouillon. Objective ML: A simple objectoriented extension to ML. In Proceedings of POPL '97, Jan. 1997. 32 Available electronically at ftp://ftp.inria.fr/INRIA/Projects/ cristal/Didier.Remy/objective-ml!tapos98.ps.gz.
....duplicating an indirection to the closure that implements P . 4 Static semantics Our type system for the objective join calculus appears in appendix B. It is inspired by the type systems of the plain join calculus for concurrency and synchronization [10] and of Objective Caml for the class layer [19]. Class and object types are records of labels paired with their types. Types are polymorphic: they include variables, whose scope is controlled at the class level. As regards polymorphism, the generalization rule (rules Object and Class) corresponds to the one implemented in JoCaml [14] It is ....
D. Remy and J. Vouillon. Objective ML: A simple object-oriented extension to ML. In Proceedings of POPL '97, Jan. 1997. Available electronically at ftp://ftp.inria.fr/ INRIA/Projects/cristal/Didier.Remy/objective-ml!tapos98.ps.gz.
....solutions for typing and inheritance. ffl We design a convenient class language to assemble partial definitions in a declarative manner, before turning them into objects. Precisely: ffl We equip the objective join calculus with an expressive, polymorphic type system in the style of [10] and [17] that addresses both inheritance and concurrency. In particular, we are interested in the smooth integration of a functional classbased language and of the objective join calculus. We plan to do so in Jocaml, our join calculus implementation as an extension of Objective Caml [13] The paper is ....
....along . As a consequence of the confluence and termination property, the evaluations x and are determinate. Furthermore normal forms of processes without free class names are objective join calculus processes because otherwise they could furtherly be simplified. 5. 4 Types As in Ocaml [17], the type of an object is the record of the types of its methods. We built types out of a set b of basic object types and a countable set of variable types ranged over by ff. We also assume a countable collection of row variables, ranged over by . Types , row types ae and type schema oe are ....
D. R'emy and J. Vouillon. Objective ML: A simple object-oriented extension to ML. In Proceedings of POPL '97, Jan. 1997.
....with frequent applications of unification (like first order logic) fl Syntax definitions Rewrite definitions Inference rules Theorems Proof editor Logic definition Refiner Tactic interface Fig. 1. General tactic prover architecture MetaPRL, our testbed, is implemented in Objective Caml [17]. It includes logics like first order logic, the Nuprl type theory, and Aczel s CZF set theory [1] We include performance measurements that compare MetaPRL s performance with Nuprl4 on the Nuprl type theory. In our measurements, we also show how particular module implementations change the ....
Didier R'emy and J'erome Vouillon. Objective ML: A simple object--oriented extension of ML. In ACM Symposium on Principles of Programming Languages, pages 40--53, 1997. 15
....uses unification to solve constraints involving unbound type variables. However, this greedy algorithm solves all constraints, including those on variables in the assumption environment, at the earliest stage possible, thus its behaviour can sometimes appear quite unpredictable. Objective ML [RV97] conservatively extends ML with subtype inference and a powerful type abbreviation mechanism that achieves much of the succinctness we obtain by using name inequivalence. The type system of Objective ML is based on extensible records, though, and does not support subsumption. Many of the systems ....
....mechanism that achieves much of the succinctness we obtain by using name inequivalence. The type system of Objective ML is based on extensible records, though, and does not support subsumption. Many of the systems mentioned allow subtype constraints to be recursive [Kae92, EST95, AW93, RV97, MW97] thus facilitating certain object oriented programming idioms not otherwise expressible [BCC 96] Our system does not currently support recursively constrained types, although a generalization that would allow such constraints to be checked (just as ordinary constraints can be checked ....
Didier R'emy and J'erome Vouillon. Objective ML: A simple object-oriented extension of ML. In ACM Principles of Programming Languages, Paris, France, January 1997.
....at run time. It may be possible to address this issue by giving a syntactic account of polymorphism that allows the use of recursive types to define objects. We are using the interpretation in the Nuprl Light system [12] to implement a formal module layer on top of the Objective Caml module system [22]. ....
Didier R'emy and J'erome Vouillon. Objective ML: A simple object--oriented extension of ML. In ACM Symposium on Principles of Programming Languages, pages 40--53, 1997.
No context found.
D. Remy and J. Vouillon. Objective ML: A simple object-oriented extension to ML. In Proceedings of POPL '97, Jan. 1997. Available electronically at ftp://ftp.inria.fr/INRIA/Projects/cristal/ Didier.Remy/objective-ml!tapos98.ps.gz.
No context found.
Didier R emy and J er ome Vouillon. Objective ML: A simple objectoriented extension of ML. In Proceedings of the 24th ACM Symposium on Principles of Programming Languages, pages 40--53. ACM Press, 1997.
No context found.
Didier Remy and Jerome Vouillon. Objective ML: A simple object-oriented extension of ML. In Conference Record of POPL 97: The 24TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California, pages 40--53, New York, NY, 1997.
No context found.
Didier Remy and Jerome Vouillon. Objective ML: A simple object--oriented extension of ML. In ACM Symposium on Principles of Programming Languages, pages 40--53, 1997.
No context found.
D. R emy and J. Vouillon. Objective ML: A simple object-- oriented extension of ML. In ACM Symposium on Principles of Programming Languages, pages 40--53, 1997.
No context found.
Didier Remy and Jerome Vouillon. Objective ML: A simple object-oriented extension of ML. In Proceedings of ACM Symposium on Principles of Programming Languages, Paris, France, January 1997. ACM Press.
No context found.
Didier R#emy and J#erome Vouillon. Objective ML: A simple object#oriented extension of ML. In ACM Symposium on Principles of Programming Languages, pages 40#53, 1997.
No context found.
Ocaml Didier R'emy and J'erome Vouillon, Objective ML: A simple objectoriented extension of ML, Proceedings of the 24th ACM Conference on Principles of Programming Languages, January, 1997, pages 40--53, !http://pauillac.inria.fr/ remy/publications.html?.
First 50 documents
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