.
This commit is contained in:
parent
7154bcd65f
commit
37e0ff0453
1 changed files with 16 additions and 6 deletions
22
Technology
22
Technology
|
@ -139,19 +139,29 @@ unikernel, the TCP/IP stack natively implemented in OCaml is being used.
|
||||||
A MirageOS developer does not need to reason about compilation targets, just about the
|
A MirageOS developer does not need to reason about compilation targets, just about the
|
||||||
module interface.
|
module interface.
|
||||||
|
|
||||||
### Semantics and security
|
### Verification
|
||||||
|
|
||||||
Parts of the semantics of the OCaml language have been
|
A large subset of the OCaml semantics has been
|
||||||
[formalized](http://www.cl.cam.ac.uk/~so294/ocaml/) and its soundness has been
|
[mechanized](http://www.cl.cam.ac.uk/~so294/ocaml/) in a theorem prover, and
|
||||||
proven in a mechanized way.
|
this metatheory is verified.
|
||||||
|
|
||||||
The OCaml runtime system has been reviewed regarding its security by the National Cybersecurity Agency of France, the [report](http://www.ssi.gouv.fr/agence/publication/lafosec-securite-et-langages-fonctionnels/) influenced some language changes, one of them is that strings are no longer mutable.
|
OCaml is the implementation language of the well-known proof assistant
|
||||||
|
[Coq](https://coq.inria.fr). Development in Coq can be extracted to OCaml code,
|
||||||
|
as demonstrated by [compcert](http://compcert.inria.fr/), a formally verified
|
||||||
|
optimizing C compiler, in order to be compiled and executed. The other
|
||||||
|
direction is also possible: OCaml code can be translated into Coq definitions
|
||||||
|
(using [Coq of OCaml](https://github.com/clarus/coq-of-ocaml/)).
|
||||||
|
|
||||||
|
The National Cybersecurity Agency of France reviewed the implementation of the
|
||||||
|
OCaml runtime system, [their
|
||||||
|
report](http://www.ssi.gouv.fr/agence/publication/lafosec-securite-et-langages-fonctionnels/)
|
||||||
|
altered some language modifications, such as that strings are no longer mutable.
|
||||||
|
|
||||||
### Modern dialects and compile targets
|
### Modern dialects and compile targets
|
||||||
|
|
||||||
OCaml is a mature programming language that is used both in
|
OCaml is a mature programming language that is used both in
|
||||||
industry (Facebook, Jane Street Capital, Docker, ahrefs,
|
industry (Facebook, Jane Street Capital, Docker, ahrefs,
|
||||||
simcorp, lexifi) and academia (the [Coq proof assistant](https://coq.inria.fr/), the formally verified optimizing C compiler [compcert](http://compcert.inria.fr/)).
|
simcorp, lexifi) and academia.
|
||||||
|
|
||||||
In 2016, Facebook developed [reason](https://reasonml.github.io/), a dialect of
|
In 2016, Facebook developed [reason](https://reasonml.github.io/), a dialect of
|
||||||
OCaml which syntax is closer to JavaScript, and easier to comprehend for
|
OCaml which syntax is closer to JavaScript, and easier to comprehend for
|
||||||
|
|
Loading…
Reference in a new issue