@@ -21,17 +21,76 @@ Directory structure
21
21
[ COPYING] ( COPYING ) :
22
22
CakeML Copyright Notice, License, and Disclaimer.
23
23
24
+ [ basis] ( basis ) :
25
+ Contains the beginnings of a standard basis library for CakeML,
26
+ similar to the standard basis library of SML.
27
+
24
28
[ build-instructions.sh] ( build-instructions.sh ) :
25
29
This script installs Poly/ML, HOL and CakeML.
26
30
31
+ [ candle] ( candle ) :
32
+ Verification of a HOL theorem prover, based on HOL Light
33
+ (http://www.cl.cam.ac.uk/~jrh13/hol-light/ ), implemented in CakeML.
34
+
35
+ [ characteristic] ( characteristic ) :
36
+ A verified CakeML adaption of Arthur Charguéraud's "Characteristic
37
+ Formulae for the Verification of Imperative Programs"
38
+
39
+ [ compiler] ( compiler ) :
40
+ A verified compiler for CakeML, including:
41
+ - parsing: lexer and PEG parser
42
+ - inference: type inferencer
43
+ - backend: compilation to ASM assembly language
44
+ - targets: code generation to x86, ARM, and more
45
+
46
+ [ developers] ( developers ) :
47
+ This directory contains scripts for automating routine tasks, e.g. for
48
+ running regression tests.
49
+
27
50
[ developers] ( developers ) :
28
51
This directory contains scripts for automating routine tasks, e.g. for
29
52
running regression tests.
30
53
54
+ [ documentation] ( documentation ) :
55
+ Work-in-progress documentation regarding the CakeML language.
56
+
57
+ [ explorer] ( explorer ) :
58
+ Tools for stepping through execution of the compiler from one
59
+ intermediate language to the next, and pretty-printing the
60
+ intermediate results. An instance is available on the CakeML website.
61
+
62
+ [ flame] ( flame ) :
63
+ The start of a set theory formalisation that has net yet been used.
64
+
65
+ [ lem_lib_stub] ( lem_lib_stub ) :
66
+ Empty versions of the Lem libraries (which we don't use, but building
67
+ with Lem requires)
68
+
69
+ [ lib.lem] ( lib.lem ) :
70
+ Extensions to Lem's built-in library to target things we need in HOL.
71
+
31
72
[ miscScript.sml] ( miscScript.sml ) :
32
73
Miscellaneous definitions and minor lemmas used throughout the
33
74
development.
34
75
35
76
[ mlstringScript.sml] ( mlstringScript.sml ) :
36
77
Small theory of wrapped strings, so the translator can distinguish
37
78
them from char lists and can target CakeML strings directly.
79
+
80
+ [ semantics] ( semantics ) :
81
+ The definition of the CakeML language. The definition is (mostly)
82
+ expressed in Lem (http://www.cs.kent.ac.uk/~sao/lem ), but the
83
+ generated HOL is also included. The directory includes definitions of:
84
+ - the concrete syntax
85
+ - the abstract syntax
86
+ - small step semantics
87
+ - big step semantics (both functional and relational)
88
+ - semantics of FFI calls
89
+ - a type system
90
+
91
+ [ translator] ( translator ) :
92
+ A proof-producing translator from HOL functions to CakeML.
93
+
94
+ [ unverified] ( unverified ) :
95
+ Various unverified tools, e.g. tools for converting OCaml to CakeML
96
+ and an SML version of the CakeML register allocator.
0 commit comments