| X. Leroy. The Objective Caml System, Release 3.00. Institut National de Recherche en Informatique et Automatique (INRIA), 2000. Available at http://caml.inria.fr. |
....interesting programs, but limited enough to prevent harmful programs; e.g. all PLAN programs are guaranteed to terminate. In both systems the Node PPI is trusted at some level, and, for maximum flexibility, is implemented in a general purpose (but type safe) language (Java for ANTS, and OCaml [8], an ML dialect, for PLANet ) In this way, the more expressionlimited packet programs act as scripts that glue together noderesident services. This architecture allows users to customize the processing of their packets, but leaves most of the task of network service evolution to trusted Node ....
....difficult to determine that the set of class libraries to which capsules have access are safe. On the other hand, the furious pace of improvements to Java is obtained for free. PLANet uses a domain specific capsule language, PLAN, for its packet programs, and a functional language, OCaml [8], to implement its node PPI. The benefits of these decisions are essentially a mirror image of the drawbacks of ANTS use of Java. Because PLAN was designed as a limited language, it is straightforward to provide specialized, efficient runtime support. Furthermore, as mentioned earlier, some local ....
Xavier Leroy, The Objective Caml System, Release 3.04, Institut National de Recherche en Informatique et Automatique (INRIA), 2002, Available at http://caml.inria.fr/.
....them is a tedious and error prone process. We solve this problem in FFTW by means of metaprogramming. Rather than being written by hand, FFTW s codelets are generated automatically by a special purpose compiler called genfft. Written in the Objective Caml dialect of the functional language ML [99], genfft is a sophisticated program that first produces a representation of the codelet in the form of a data flow graph, and then optimizes the codelet. In this optimization phase, genfft applies well known transformations such as constant folding, and some DFT specific tricks (see Section ....
X. LEROY, The Objective Caml system release 2.00, Institut National de Recherche en Informatique at Automatique (INRIA), August 1998.
....MLj is an extension of the SML language (and a compiler for the extended language) which offers integration with Java . Information about the implementation and semantics of MLj can be found in [BKR98, BK99, MKB00] Another variant of ML is Caml, information on which can be found in [Ler97, LRVD99] Apart from the variants of ML, Haskell is a Hindley Milner based language . This language differs from ML in that it is lazy and pure. This creates very slightly different requirements for type errors (for example there is no need to consider imperative features) but everything discussed in ....
....widening functions in the standard library. The type system should be intuitive type inference should not surprise the (SML) programmer. It is also important to note two non aims. The MLj language is not attempting to provide a full object oriented extension to ML (like Objective Caml [LRVD99] Java s subtyping is not extended to all ML types, and there is no general subsumption rule. Subtyping is applied only to inter operability features, and only on the subset of ML types that match with Java. Type inference for MLj is not type inference for Java, which could have a different ....
Xavier Leroy, Didier Remy, Jerome Vouillon, and Damien Doligez. The Objective Caml System, Documentation and User's Guide. Institut National de Recherche en Informatique et Automatique, 2.02 edition, March 1999. Available from http: //pauillac.inria.fr/ocaml/htmlman/.
....[BRTT93] MLj is an extension of the SML language (and a compiler for the extended language) which offers integration with Java . Information about the implementation and semantics of MLj can be found in [BKR98, BK99, MKB00] Another variant of ML is Caml, information on which can be found in [Ler97, LRVD99] Apart from the variants of ML, Haskell is a Hindley Milner based language . This language differs from ML in that it is lazy and pure. This creates very slightly different requirements for type errors (for example there is no need to consider imperative features) but everything ....
Xavier Leroy. The Caml Light System, Documentation and User's Guide. Institut National de Recherche en Informatique et Automatique, 0.74 edition, December 1997. Available from http://caml.inria.fr/man-caml/index.html.
....only with them) Lamping s technique becomes really competitive with respect to more traditional implementation techniques. We shall give some evidence of this fact, comparing bohm s performance with two fully developed and largely diffused implementations: Caml Light and Yale Haskell. Caml Light [LM92] is a small, portable implementation of a dialect of the ML language (about 100K for the runtime system, and another 100K of bytecode for the compiler, versions for the Macintosh and the IBM PC are also available) developed at the Institut National de Recherche en Informatique et Automatique ....
X. Leroy, M. Mauny. The Caml Light system, release 0.5. Documentation and user's manual. Technical Report, Institut National de Recherche en Informatique et Automatique (INRIA), Rocquencourt, France. September 1992.
....[41] 2.6.2 A functional language implementation Within the scope of the present work an implementation of the process algebra was developed as a testbed particularly for investigating relations between processes other than the testing preorders and equivalence. The Caml Light dialect [34] of the strongly typed functional language ML was used as a programming framework which is particularly suited to the rapid prototyping of systems. The functional nature of the language is also well matched to the algebraic nature of the process framework. The interface of this process algebra ....
....P and M # N where M,N are sorts of Q, P respectively, then Q # P = P . 4. 3 Implementing the constrains relation The constrains relation defined in the previous section has been implemented within the experimental Nova implementation of the Circal process algebra using the Caml Light dialect [34] of the ML functional programming language, which is described in Section 2.6.2 with details in Appendix A. 4.3.1 Need for failure diagnostics The constrains relation as defined in Section 4.2.3 is a predicate on a pair of processes. In practice, the usefulness of such a predicate is increased by ....
[Article contains additional citation context not shown here]
X. Leroy. The Caml Light System, Release 0.73: Documentation and User's Manual. Institut National de Recherche en Informatique et Automatique, Rocquencourt, France, Jan. 1997. ftp://ftp.inria.fr/lang/caml-light/cl73refman.ps.gz.
.... In the PCC Touchstone system, for example, dynamic linking has only been performed in an ad hoc manner, entirely within the TCB [35] and the current Java to PCC compiler, Special J, does not support dynamic linking [6] Most general purpose languages support dynamic linking [3] 9] 13] [27], 36] 37] so if we are to compile such languages to PCC, then it must provide some support for implementing dynamic linking. We believe this support should meet three important criteria: 1. Security. It should only minimally expand the TCB, improving confidence in the system s security. ....
....version of DLopen has performance comparable to the standard ELF implementation [40] and has the added benefit of safety. Furthermore, we can program many other dynamic linking approaches within our framework, including Java classloaders [23] Windows DLLs and COM [7] Objective Caml s Dynlink [27], 37] Flatt and Felleisen s Units [13] and SPIN s domains [38] among others. The remainder of this paper is organized as follows. In the next section we motivate and present our framework, which we call TAL Load. In Section 3 we describe a type safe version of DLopen programmed using ....
[Article contains additional citation context not shown here]
X. Leroy. The Objective Caml System, Release 3.00. Institut National de Recherche en Informatique et Automatique (INRIA), 2000. Available at http://caml.inria. fr.
....is an object oriented language influenced by C but which greately improves on the type system of the latter. On the other hand, languages which have formally specified semantics and which do have good type systems are having object oriented features added to them. For example Objective CAML [Leroy 97] is an object oriented version of ML. The remainder of the Introduction concentrates on objects, type systems and formal methods. In section 1.2 the benefits of object oriented programming are described in more detail. In section 1.3 the advantages and disadvantages of type systems are ....
Xavier Leroy. The Objective Caml system, documentation and user's guide Release 1.05. Institut National de Recherche en Informatique et Automatique, 1997
....This calculus is meant to approximate an implementation of dynamic loading in Typed Assembly Language, and so the language provides references and named types, in addition to load and lambda terms. Here is a small example of the use of load. Consider the following program (using OCaml style [5] syntax) let f f2 = let x = 1 in (3, f2 x) 1 By closed, we mean that there are no free value variables; there may be free type labels, as we describe shortly. 1 Assuming f2 has type int # int, then f has type (int # int) # int int. We could load this (closed) program in another ....
Xavier Leroy. The Objective Caml System, Release 3.00. Institut National de Recherche en Informatique et Automatique (INRIA), 2000. Available at http: //caml.inria.fr.
....for safety, and verifies that the linking process is safe (the theoretical details of link checking can be found in [GM99] The two Popcorn compilers consist of a simple, bootstrap compiler, and more sophisticated, optimizing compiler. The bootstrap compiler is written in Objective Caml (OCaml) Ler00] a descendant of the functional language ML. This compiler is largely unoptimized, in particular lacking a register allocator, and so it uses the stack heavily. A newer, more sophisticated version of the 27 compiler is written in Popcorn itself. This version implements register allocation as ....
....As mentioned above, C definitions declared to be static should not be 41 available when linking a loaded module since these symbols are considered local to the module in which they are defined. In addition, symbols may be precluded from linking for security concerns. In Objective Caml (OCaml) Ler00] program modules define a safe interface that is a subset of the actual module interface; only the safe interface is made available during dynamic linking. This approach is taken one step further in ALIEN [AHI 00, Ale98] in which each symbol s availability depends on the privilege of the ....
[Article contains additional citation context not shown here]
Xavier Leroy. The Objective Caml System, Release 3.00. Institut National de Recherche en Informatique et Automatique (INRIA), 2000. Available at http://caml.inria.fr.
....le langage et son mode d evaluation r epartie par une s erie de courts programmes donn es en annexe. 2 DPML par l exemple La pr esentation qui suit suppose une compr ehension pratique de ML et le lecteur qui ne serait pas familier avec ce langage peut consulter le tutoriel de Caml Light dans [21]. La premi ere sous section d ecrit la syntaxe. Puisque la localisation des processus est explicite, on d ecrit ensuite comment acc eder a celle ci a l aide des constantes de localisation. On introduit dans la troisi eme sous section le couple sync get qui sont des constructeurs de termes ....
....de la CAM : la DPCAM. La CAM est une machine a pile, la DPCAM est un r eseau statique de machines a pile. Nous nous limitons dans ce qui suit a enoncer les propri et es formelles de la s emantique qui sont pr esentement exploit ees par un simulateur tournant sur Suns ecrit en Caml Light [20, 21], ce dernier etant pr esentement en cours de modification pour obtenir la DPZAM. 15 On trouve une description compl ete de la s emantique de DPML et une d erivation syst ematique de son implantation dans la th ese de Christian Foisy [10] 3.1 Implantation La DPCAM est implant ee par un ....
X. Leroy and M. Mauny, The Caml Light system, release 0.5. documentation and user's manual, tech. rep., INRIA, Institut National de Recherche en Informatique et Automatique, September 1992.
....This calculus is meant to approximate an implementation of dynamic loading in Typed Assembly Language, and so the language provides references and named types, in addition to load and lambda terms. Here is a small example of the use of load. Consider the following program (using OCaml style [2] syntax) let f f2 = let x = 1 in (3, f2 x) Assuming f2 has type int int, then f has type (int int) int int. We could load this (closed) program in another program. Assuming that the binary representation of this program is stored in the le f : let g ( let load succ f = f (function ....
X. Leroy. The Objective Caml System, Release 2.02. Institut National de Recherche en Informatique et Automatique (INRIA), 1999. Available at http://paulliac.inria.fr/ocaml.
....them is a tedious and error prone process. We solve this problem in FFTW by means of metaprogramming. Rather than being written by hand, FFTW s codelets are generated automatically by a special purpose compiler called genfft. Written in the Objective Caml dialect of the functional language ML [99], genfft is a sophisticated program that first produces a representation of the codelet in the form of a data flow graph, and then optimizes the codelet. In this optimization phase, genfft applies well known transformations such as constant folding, and some DFT specific tricks (see Section ....
X. LEROY, The Objective Caml system release 2.00, Institut National de Recherche en Informatique at Automatique (INRIA), August 1998.
....of the codelets, but writing and optimizing them is a tedious and error prone process. For this reason, we found it convenient to generate the codelets automatically by means of a special purpose compiler. FFTW s codelet generator, written in the Caml Light dialect of the functional language ML [5], is a sophisticated program that first produces a representation of the codelet in the form of abstract C syntax tree, and then optimizes the codelet by applying well known transformations such as constant folding and algebraic identities. The main advantages of generating code are that it is ....
....generator contains other rules that are not shown here. The codelet generator accepts as input an integer N and produces a normal or a twiddle codelet that computes the Fourier transform of size N (either the forward or backward transform) The generator is written in the Caml Light dialect of ML [5]. Caml is an applicative, polymorphic, and strongly typed functional language with first class functions, algebraic data types, and pattern matching. The generator operates on a subset of the abstract syntax tree (AST) of the C language. First, the generator produces an AST for a nave program that ....
X. Leroy, The Caml Light system release 0.71. Institut National de Recherche en Informatique at Automatique (INRIA) , Mar. 1996.
....Through the planner, FFTW adapts itself to the architecture of the machine it is running on. In this way, FFTW is a single program that performs efficiently on a variety of architectures. Third, the codelets are automatically generated by a codelet generator written in the Caml Light dialect of ML [4]. The codelet generator produces long, optimized, unreadable code, which is nevertheless easy to modify via simple changes to the generator. Despite its internal complexity, FFTW is easy to use. See Figure 1. The user interacts with FFTW only through the planner and the executor; the codelet ....
....and 27 slower on the UltraSPARC. The Fortran code was never faster than FFTW. We will give more results for native Fortran software in the final paper. 3 The codelet generator In this section we describe the codelet generator, that produces optimized C codelets. It is written in Caml Light [4] because it is easy to express symbolic manipulations in that language. Because of this automatic generation process, it is easy to produce and experiment with long straight line code. The generator performs many optimizations such as constant folding and minus sign propagation. The codelet ....
[Article contains additional citation context not shown here]
X. Leroy, The Caml Light system release 0.71. Institut National de Recherche en Informatique at Automatique (INRIA), Mar. 1996.
....for the case of powers of two. See [FJ97] for additional experimental results. FFTW was compiled with Sun s C compiler (WorkShop Compilers 4.2 30 Oct 1996 C 4. 2) which amounts to 95 of the total code) was generated automatically by a special purpose compiler written in Objective Caml [Ler98] This paper explains how this compiler works. FFTW does not implement a single DFT algorithm, but it is structured as a library of codelets sequences of C code that can be composed in many ways. In FFTW s lingo, a composition of codelets is called a plan. You can imagine the plan as a sort of ....
Xavier Leroy. The Objective Caml system release 2.00. Institut National de Recherche en Informatique at Automatique (INRIA), August 1998.
....of the belief that a simpler system is generally easier to analyze and make correct. In order to develop an initial understanding and intuition about the correct model, we have built a prototype system that provides a simple learning bridge functionality. The system is written in Objective Caml [Ler96] and uses their byte code language as the medium of transmission across the network. On top of their dynamic linking facilities, we built a simple loader capable of adding functions to a symbol table, executing functions from that symbol table, and removing functions from the symbol table. On top ....
Xavier Leroy. The Objective Caml system release 1.03. Institut National de Recherche en Informatique et Automatique, October 1996.
....types, array types, and procedure types, the subtype relationship for objects is defined by inheritance. There is no construct for specifying class interfaces. 68 Modula 3 has first class functions (closures) but does not have class objects or multimethods. 4. 8 Objective Caml Objective Caml [Ler96] is a dialect of the functional language ML [MTH90, MT91] Like ML, Objective Caml provides modules (structures) parameterized modules (functors) module interfaces (signatures) and first class functions. Modules are higher order and, therefore, cannot be used as singleton objects. Both ....
Xavier Leroy. The Objective Caml System, Documentation and User's Guide. Institut National de Recherche en Informatique et Automatique (INRIA), Rocquencourt, France, release 1.01 edition, 1996. Available from http://pauillac.inria.fr/ocaml/.
....recursion is necessary to make good use of first class polymorphism (otherwise all type arguments are statically predetermined) but it is also useful in other contexts [79] 1.1. 2 Comparison During the time I was developing KML, Xavier Leroy and his colleagues released the Objective CAML system [64]. Objective CAML shares many of the same goals as KML, in particular the goals of providing support for object oriented programming and a more expressive module system. However, Objective CAML does not support first class polymorphism and possesses no formal semantics or definition. The greatest ....
....feasible type inference, which is prohibitively difficult for KML. Moreover, in many cases the practical benefits of subtyping are obtained in Objective CAML by quantification over row variables that extend object types to unspecified supertypes (details appear in R emy and Vouillon [85] and Leroy [64]) 1.1.3 The Role of Type Theory in the Design In order to produce an elegant and coherent design for KML, I allowed type theoretic considerations to drive the design. In order to convey the flavor of this interaction, I briefly describe two design points that were informed by type theory. In a ....
[Article contains additional citation context not shown here]
Xavier Leroy. The Objective Caml System, Release 1.00. Institut National de Recherche en Informatique et Automatique (INRIA), 1996.
....[42] However, in each of these cases, the type theories used were not sufficiently rich to form a foundation for mathematical reasoning; for example, they were unable to express equality or induction principles. On the other hand, Kreitz [34] gave an embedding of a fragment of Objective CAML [37] into the foundational type theory of Nuprl. However, this fragment omitted some important constructs, such as recursion and modules. This material is based on work supported in part by ARPA AF grant F30602 95 1 0047, NSF grant CCR 9244739, and AASERT grant N00014 95 1 0985. Any opinions, ....
Xavier Leroy. The Objective Caml System, Release 1.00. Institut National de Recherche en Informatique et Automatique (INRIA), 1996. Available at http://pauillac.inria.fr/ocaml.
No context found.
X. Leroy. The Objective Caml System, Release 3.00. Institut National de Recherche en Informatique et Automatique (INRIA), 2000. Available at http://caml.inria.fr.
No context found.
Xavier Leroy. The Objective Caml System, Release 3.06. Institut National de Recherche en Informatique et Automatique (INRIA), 2002.
No context found.
X. Leroy, D. Doligez, J. Garrigue, D. Remy, and J. Vouillon. The Objective Caml system release 3.00 -- Documentation and user's manual. Institut National de Recherche en Informatique et Automatique, 2000. http://caml.inria.fr/ocaml/htmlman/.
No context found.
X. Leroy. The Objective Caml System, Release 3.00. Institut National de Recherche en Informatique et Automatique (INRIA), 2000. Available at http://caml.inria.fr.
No context found.
Xavier Leroy, Didier Remy, Jerome Vouillon, and Damien Doligez. The Objective Caml system, documentation and user's guide, Release 2.02. Institut National de Recherche en Informatique et Automatique, Rocquencourt, 1999.
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