bookmarks  17

  •  

     
  •  

     
  •  

    Standard ML is often used to implement another language L, for example, the syntax of the HOL logic in hol90 or the syntax of CCS for the Concurrency Workbench. Typically, one defines the abstract syntax of L by a datatype declaration. Then useful functions over the datatype can be defined (such as finding the free variables of a formula when L is a logic). Soon afterwards, one concludes that concrete syntax is easier for humans to read than abstract syntax, and so writes a parser and prettyprinter for L. In the situation just outlined, ML is called the metalanguage, and L is called the object language, or OL. (Edinburgh/INRIA/Cambridge ML, the precursor to Standard ML, was originally a programming metalanguage for a particular object language, the LCF logic.) The purpose of a quotation/antiquotation mechanism is to allow one to embed expressions in the object language's concrete syntax inside of ML programs, and to mix the object language expressions with ML expressions.
    7 years ago by @draganigajic
     
      metaprogrammingmlsml
      (0)
       
       
    •  

      This document formally specifies the semantics of local modules and packages - dynamically typed modules that are first-class values - as an extension to the functional programming language Standard ML. The language thus defined is a substantial subset of a larger extension of Standard ML, a language known as Alice ML. Packages are the central feature of Alice ML that enables support for typed open programming.
      7 years ago by @draganigajic
       
        alicemodulespapersml
        (0)
         
         
      •  

         
      •  

        HaMLet "To Be Or Not To Be Standard ML" ;-) HaMLet is a faithful implementation of the Standard ML programming language (SML'97). It aims to be * an accurate reference implementation of the language specification, * a platform for experimentation with the language semantics or extensions to it, * a useful tool for educational purposes. The implementation is intended to be direct a translation of the language found in the Definition of Standard ML * implements complete Standard ML, * closely follows the structure of the Definition, with lots of cross references, * conforms to the latest version of the Standard ML Basis Library * is written entirely in Standard ML, with the ability to bootstrap, * may readily be compiled with SML/NJ, MLton, Moscow ML, Poly/ML, Alice ML, or the ML Kit, or SML#. HaMLet can perform different phases of execution - like parsing, elaboration (type checking), and evaluation - selectively.
        7 years ago by @draganigajic
        (0)
         
         
      •  

        succML as impl in hamlet
        7 years ago by @draganigajic
         
          mlsml
          (0)
           
           
        •  

          Whole-program optimization is a compilation technique in which optimizations operate over the entire program. This allows the compiler many optimization opportunities that are not available when analyzing modules separately (as with separate compilation). Most of MLton's optimizations are whole-program optimizations. Because MLton compiles the whole program at once, it can perform optimization across module boundaries. As a consequence, MLton often reduces or eliminates the run-time penalty that arises with separate compilation of SML features such as functors, modules, polymorphism, and higher-order functions. MLton takes advantage of having the entire program to perform transformations such as: defunctorization, monomorphisation, higher-order control-flow analysis, inlining, unboxing, argument flattening, redundant-argument removal, constant folding, and representation selection. Whole-program compilation is an integral part of the design of MLton and is not likely to change.
          7 years ago by @draganigajic
          (0)
           
           
        •  

          comparison of OCaml and SML * SML has a formal Definition * SML has a number of compilers * OCaml has built-in support for oop comparison of OCaml and MLton * Performance o Both have excellent performance o MLton performs extensive WholeProgramOptimization, which provides improvements in modular programs o MLton uses native types, like 32-bit integers, without any penalty due to tagging or boxing. OCaml uses 31-bit integers with a penalty due to tagging, and 32-bit integers with a penalty due to boxing o MLton represents records compactly by reordering and packing the fields o In MLton, polymorphic and monomorphic code have the same performance o In MLton, module boundaries have no impact on performance * MLton's ForeignFunctionInterface is simpler * Tools o OCaml has a debugger, MLton does not. o OCaml supports separate compilation, MLton does not o OCaml compiles faster than MLton. o MLton supports profiling of both time and allocation
          7 years ago by @draganigajic
          (0)
           
           
        •  

           
        •  

          * supports for all of Standard ML, including modules, pattern matching, higher-order functions, generative exceptions, etc. * Standard ML Basis Library support * SMLtoJs supports calling JS functions and for executing plain JS. Standard ML functions may be exported and called by JavaScript code. * Simple DOM access. Simple DOM access and support for installing Standard ML functions as DOM event handlers and timer call back functions. * Optimization. All Standard ML module language constructs, including functors, functor applications, and signature constraints, are eliminated at compile time. SMLtoJs performs a series of compile time optimizations, so it generates fairly efficient JS code * Reactive Web Programming. SMLtoJs has library support for Reactive Web Programming. See the rwp_ex1 example. The simple library API captures the basic notions of behaviors and event streams as well as the concepts of behavior transformers and event stream transformers.
          7 years ago by @draganigajic
          (0)
           
           
        •  

          SMLserver is a Web server plugin for the Apache Web server. SMLserver makes it possible to write dynamic Web applications using your favorite programming language without sacrificing efficiency and scalability of your Web service. SMLserver includes the possibility of accessing a variety of different relational database management systems (RDBMSs), such as Oracle and Postgresql. Main Features of SMLserver Standard ML '97 The Definition of Standard ML SMLserver supports all of Standard ML '97, as defined in the Definition of Standard ML. In particular, SMLserver supports the use of Standard ML Modules and most of the Standard ML Basis Library. SMLserver is based on the MLKit. Web Server API SMLserver provides an SML interface to much of the Apache API, thereby giving the SML programmer access to the following features:
          7 years ago by @draganigajic
           
            apachefpmlserversml
            (0)
             
             
          •  

            vector expressions and patterns or-patterns first class continuations quote/antiquote higher order modules
            7 years ago by @draganigajic
             
              mlsmlsmlnj
              (0)
               
               
            •  

              extensible records, views, 1st class modules ho functors
              7 years ago by @draganigajic
               
                fpmlsml
                (0)
                 
                 
              •  

                ML modules provide hierarchical namespace management, as well as fine-grained control over the propagation of type information, but they do not allow modules to be broken up into separately compilable, mutually recursive components. Mixin modules facilitate recursive linking of separately compiled components, but they are not hierarchically composable and typically do not support type abstraction. We synthesize the complementary advantages of these two mechanisms in MixML. A MixML module is like an ML structure with some components specified but not defined unifing the ML structure and signature languages into one. MixML seamlessly integrates hierarchical composition, translucent MLstyle data abstraction, and mixin-style recursive linking.Tthe design of MixML is minimalist emphasizing how all the interesting features of the ML module system can be understood simply as stylized uses of a small set of orthogonal underlying constructs, with mixin composition playing a central role.
                7 years ago by @draganigajic
                (0)
                 
                 
              •  

                The ML Basis system extends Standard ML to support programming-in-the-very-large, namespace management at the module level, separate delivery of library sources, and more. While Standard ML modules are a sophisticated language for programming-in-the-large, it is difficult, if not impossible, to accomplish a number of routine namespace management operations when a program draws upon multiple libraries provided by different vendors. The ML Basis system is a simple, yet powerful, approach that builds upon the programmer's intuitive notion of the top-level environment (a basis). Here are some of the key features of the ML Basis system: 1. Explicit file order 2. Implicit dependencies 3.Scoping and renaming: The ML Basis system provides mechanisms for limiting the scope of (i.e, hiding) and renaming identifiers. 4.No naming convention for finding the file that defines a module. To import a module, its defining file must appear in some ML Basis file.
                7 years ago by @draganigajic
                 
                  mlmodulessml
                  (0)
                   
                   
                •  

                  Metis is an automatic theorem prover for first order logic with equality. Features of Metis * Coded in Standard ML (SML), with an emphasis on keeping the code as simple as possible. * Compiled using MLton to give respectable performance on standard benchmarks. * Reads in problems in the standard .tptp file format of the TPTP problem set. * Outputs detailed proofs in TSTP format, where each proof step is one of 6 simple rules. * Outputs saturated clause sets when input problems are discovered to be unprovable. Project Status Metis is being actively developed
                  7 years ago by @draganigajic
                  (0)
                   
                   
                • ⟨⟨
                • 1
                • ⟩⟩

                publications  

                  No matching posts.
                • ⟨⟨
                • ⟩⟩