Filters








3,811 Hits in 3.6 sec

Cameleer: A Deductive Verification Tool for OCaml [chapter]

Mário Pereira, António Ravara
2021 Lecture Notes in Computer Science  
We leverage on the recently proposed GOSPEL (Generic OCaml SPEcification Language) to attach rigorous, yet readable, behavioral specification to OCaml code.  ...  The formally-specified program is fed to our toolchain, which translates it into an equivalent one in WhyML, the programming and specification language of the Why3 verification framework.  ...  Consider, for instance the following piece of OCaml code: Other than the small syntactic differences, the generated WhyML program is identically to the original OCaml one.  ... 
doi:10.1007/978-3-030-81688-9_31 fatcat:hcnbecwpiffppjbhj5dyu6y2q4

Bidirectional Certified Programming

Daisuke Kinoshita, Keisuke Nakano
2017 European Joint Conferences on Theory And Practice of Software  
One way for certified programming with Coq is to define a function, give proofs for its properties in Coq, and then extract a program in OCaml.  ...  In our system, one can develop certified programs by modifying both Coq functions and OCaml programs alternatingly.  ...  Initial translation just generates an equivalent Coq script from the OCaml program.  ... 
dblp:conf/etaps/KinoshitaN17 fatcat:zhssoddmpfbn7jz4t5wr3dobnq

Chemoinformatics and structural bioinformatics in OCaml

Francois Berenger, Kam Y. J. Zhang, Yoshihiro Yamanishi
2019 Journal of Cheminformatics  
In our experience, OCaml is a programming language of choice for method development in chemoinformatics and structural bioinformatics.  ...  The parallelization of OCaml programs and their performance is also shown. Finally, tools and methods useful when prototyping scientific software in OCaml are given.  ...  FB thanks all participants in the OCaml opensource ecosystem for the many excellent libraries, tools and user support.  ... 
doi:10.1186/s13321-019-0332-0 pmid:30719579 pmcid:PMC6689879 fatcat:46vtz2gz35a57nngeqckfyg22i

Debootstrapping without Archeology

Nathanaëlle Courant, Julien Lepiller, Gabriel Scherer
2022 The Art, Science, and Engineering of Programming  
Context: It is common for programming languages that their reference implementation is implemented in the language itself.  ...  Inquiry: Debootstrapping generally combines a mix of two approaches.  ...  Their own programming language, of course! OCaml is implemented in OCaml, Haskell in Haskell, SML in SML, Scala in Scala, Rust in Rust, the list goes on and on.  ... 
doi:10.22152/programming-journal.org/2022/6/13 fatcat:tez5gd6fh5atfgq4zfeilivhra

Checking type safety of foreign function calls

Michael Furr, Jeffrey S. Foster
2005 SIGPLAN notices  
Our system uses representational types that can model multiple OCaml types, because C programs can observe that many OCaml types have the same physical representation.  ...  Our results show that programmers do misuse these interfaces, and our implementation has found several bugs and questionable coding practices in our benchmarks.  ...  In our experience, this is sufficient in practice.  ... 
doi:10.1145/1064978.1065019 fatcat:5kocytyg7je3pap65gjxsi6dv4

Static typing & JavaScript libraries

Benjamin Canou, Emmanuel Chailloux, Vincent Botbol
2013 Proceedings of the 22nd International Conference on World Wide Web - WWW '13 Companion  
As an example, we present Onyo [1], an advanced binding of the Enyo JS library for the OCaml language.  ...  In this paper, after relating a short history of the mostly unhappy relationship between static typing and JavaScript (JS), we explain a new attempt at conciliating them which is more respectful of both  ...  In the end, OCaml programs manage to be typesafe not only during pure OCaml execution but also when talking to JS libraries.  ... 
doi:10.1145/2487788.2487794 dblp:conf/www/CanouCB13 fatcat:fj366rt6bbhnreos672i4dlsqq

Implicitly Heterogeneous Multi-Stage Programming

Jason Eckhardt, Roumen Kaiabachev, Emir Pasalic, Kedar Swadi, Walid Taha
2007 New generation computing  
Previous work on semantics-based multi-stage programming (MSP) language design focused on homogeneous designs, where the generating and the generated languages are the same.  ...  This approach preserves the homogeneous "look" of multi-stage programs, and, more importantly, the static guarantees about the generated code.  ...  One of reviewers asked whether offshoring can be used to produce highly-optimized libraries such as those used in the SPIN model checker or in Andrew Goldberg's network optimization library.  ... 
doi:10.1007/s00354-007-0020-x fatcat:onihaihlu5deff2vygx6rsfhxu

Implicitly Heterogeneous Multi-stage Programming [chapter]

Jason Eckhardt, Roumen Kaiabachev, Emir Pašalić, Kedar Swadi, Walid Taha
2005 Lecture Notes in Computer Science  
Previous work on semantics-based multi-stage programming (MSP) language design focused on homogeneous designs, where the generating and the generated languages are the same.  ...  This approach preserves the homogeneous "look" of multi-stage programs, and, more importantly, the static guarantees about the generated code.  ...  One of reviewers asked whether offshoring can be used to produce highly-optimized libraries such as those used in the SPIN model checker or in Andrew Goldberg's network optimization library.  ... 
doi:10.1007/11561347_19 fatcat:krefuwsaerdypf4yk66uws2zue

ROTOR: A Tool for Renaming Values in OCaml's Module System

Reuben N.S. Rowe, Hugo Feree, Simon J. Thompson, Scott Owens
2019 2019 IEEE/ACM 3rd International Workshop on Refactoring (IWoR)  
In practice, this leads to a notion of dependency: renaming a function foo in module A (mutually) depends on renaming function foo in module B etc.  ...  This is a collection of related declarations in a program that must all be renamed at once.  ...  This extension thus provides a basis in OCaml for similar capabilities to those found in Haskell's SYB generic programming library [8] . D.  ... 
doi:10.1109/iwor.2019.00013 dblp:conf/icse/RoweFTO19 fatcat:savvenz775c6dnxwk4pqo3yd6m

Type-safe distributed programming for OCaml

John Billings, Peter Sewell, Mark Shinwell, Rok Strniša
2006 Proceedings of the 2006 workshop on ML - ML '06  
In this paper we put these ideas into practice, describing the HashCaml extension to the OCaml bytecode compiler, which supports type-safe and abstraction-safe marshalling, together with related naming  ...  Our contribution is threefold: (1) We show how to define globally meaningful runtime type names for key OCaml type constructs that were not covered in our previous work, dealing with the generativity issues  ...  In the current work we further develop these theoretical ideas and put them firmly into practice.  ... 
doi:10.1145/1159876.1159881 dblp:conf/ml/BillingsSSS06 fatcat:gn5y6wjperc5jdzem77yuusuxq

A functional language to implement the divide-and-conquer Delaunay triangulation algorithm

André L. Moura, José R. Camacho, Sebastião C. Guimarães, Carlos H. Salerno
2005 Applied Mathematics and Computation  
The programming language selected was OCaml-Objective Categorical Abstract Machine Language, taking as a base the good results obtained in other computational mathematics research works.  ...  The expectation is that the code written in OCaml can solve the triangulation in less time and more efficiently than the C written code.  ...  : (i) to be sure of the morphologic correspondence between codes to facilitate its depuration in case of errors; (ii) our research does not have as an aim to practice with the functional programming style  ... 
doi:10.1016/j.amc.2004.08.033 fatcat:l6bilr4mx5dsfbw7ea2z3th77i

A Simple and Practical Linear Algebra Library Interface with Static Size Checking

Akinori Abe, Eijiro Sumii
2015 Electronic Proceedings in Theoretical Computer Science  
Most linear algebra libraries (in most programming languages) do not statically guarantee consistency of the dimensions of vectors and matrices, causing runtime errors.  ...  changes to existing languages and application programs, or tricky type-level programming.  ...  In practice, however, doing so introduced too many type parameters in the OCaml-GPR library. We reduced the number by unifying parameters known to be equal. Other changes had to be made manually.  ... 
doi:10.4204/eptcs.198.1 fatcat:cvagb2jnavfwpmqqkxkalt3rhe

Reconciling Abstraction with High Performance: A MetaOCaml approach

Oleg Kiselyov
2018 Foundations and Trends® in Programming Languages  
BER MetaOCaml is a conservative extension of OCaml for "writing programs that generate programs".  ...  Eventually it comes to MetaOCaml, to generate code in OCaml or (with offshoring) C or LLVM. This ideal is attainable!  ... 
doi:10.1561/2500000038 fatcat:j6kktvojp5bsjfcpvdcxxrsquq

Declarative Foreign Function Binding Through Generic Programming [chapter]

Jeremy Yallop, David Sheets, Anil Madhavapeddy
2016 Lecture Notes in Computer Science  
In contrast, approaching the design of a foreign function interface as a generic programming problem allows foreign function specifications to be written declaratively, with easy switching between a wide  ...  Foreign function interfaces are typically organised monolithically, tying together the specification of each foreign function with the mechanism used to make the function available in the host language  ...  However, such situations appear rare in practice.  ... 
doi:10.1007/978-3-319-29604-3_13 fatcat:yuygfno4avhllcssapho5r7lmi

Building reliable, high-performance networks with the Nuprl proof development system

CHRISTOPH KREITZ
2004 Journal of functional programming  
Can the support they offer be useful in practice?  ...  We describe reasoning strategies for generating verifiably correct fast-path optimizations of application configurations that substantially reduce end-to-end latency in Ensemble.  ...  This work is supported in part by ARPA/RADC grants F30602-98-2-0198 and F30602-99-1-0532, and ARPA/ONR grant N00014-01-0765.  ... 
doi:10.1017/s0956796803004854 fatcat:luufbvrfsfb6bcnaaat5lpizxy
« Previous Showing results 1 — 15 out of 3,811 results