Skip to content

Commit

Permalink
Add diagrams and cleanup compiler
Browse files Browse the repository at this point in the history
  • Loading branch information
Fraccaman authored and Acentelles committed Nov 3, 2021
1 parent 352cf41 commit d22972b
Show file tree
Hide file tree
Showing 36 changed files with 78 additions and 44 deletions.
3 changes: 2 additions & 1 deletion docs/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ myst-parser
sphinx_proof
sphinxcontrib-tikz
sphinxcontrib-bibtex
sphinx-autobuild
sphinx-autobuild
rtd-tikz
3 changes: 0 additions & 3 deletions docs/source/backends/berkeley-packet-filter.md

This file was deleted.

4 changes: 0 additions & 4 deletions docs/source/backends/cuda.md

This file was deleted.

4 changes: 0 additions & 4 deletions docs/source/backends/evm.md

This file was deleted.

3 changes: 0 additions & 3 deletions docs/source/backends/fpga.md

This file was deleted.

6 changes: 0 additions & 6 deletions docs/source/backends/fusion.md

This file was deleted.

3 changes: 0 additions & 3 deletions docs/source/backends/wasm.md

This file was deleted.

File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,3 @@ circuit
llvm
michelson
```

## Non-Supported Backends
```{toctree}
---
maxdepth: 1
---
berkeley-packet-filter
cuda
evm
fpga
fusion
wasm
```

File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,15 @@ This phase is the direct manipulation of the S-expression construct we left off

This function ([Desugar.op](https://github.com/anoma/juvix/blob/develop/library/Translate/src/Juvix/Desugar.hs)) desugars the frontend syntax from the original frontend s-exp representation to a form without modules, conditions, guards, etc. This pass thus does all transformations that do not requires a context.

:::{figure-md} fig-target
<!-- :::{figure-md} fig-target
<img src="img/desugar.png" alt="desugar" class="bg-primary mb-1" width="600px">
Desugar passes
:::
::: -->

<!-- https://q.uiver.app/?q=WzAsMTcsWzAsNCwiXFx0ZXh0e0p1dml4IGZpbGV9Il0sWzUsNCwiXFx0ZXh0e1NlcmlhbGlzZWQgKEFTVCl9Il0sWzksNCwiXFx0ZXh0e0Rlc3VnYXJlZH0iXSxbNSwzLCJcXGJ1bGxldCJdLFsyLDQsIlxcdGV4dHtBU1R9Il0sWzUsMiwiXFxidWxsZXQiXSxbNSwxLCJcXGJ1bGxldCJdLFs1LDAsIlxcYnVsbGV0Il0sWzgsMCwiXFxidWxsZXQiXSxbOSwwLCJcXGJ1bGxldCJdLFs5LDEsIlxcYnVsbGV0Il0sWzksMiwiXFxidWxsZXQiXSxbOSwzLCJcXGJ1bGxldCJdLFswLDAsIlxcYnVsbGV0Il0sWzEsMCwiXFxidWxsZXQiXSxbMCwxLCJcXGJ1bGxldCJdLFsxLDEsIlxcYnVsbGV0Il0sWzEsMiwiZGVzdWdhciIsMCx7ImNvbG91ciI6WzI0MCw2MCw2MF19LFsyNDAsNjAsNjAsMV1dLFsxLDMsIm1vZHVsZSBcXHRvIGZ1biIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFs0LDEsInNlcmlhbGlzZVxcIHRvXFwgUy1leHAiLDAseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbMCw0LCJwYXJzZSIsMCx7ImNvbG91ciI6WzI0MCw2MCw2MF19LFsyNDAsNjAsNjAsMV1dLFszLDUsImxldFxcdGV4dHstfW1vZCBcXHRvIGxldCIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFs2LDcsImlmIFxccmlnaHRhcnJvdyBjYXNlIiwwLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV0sWzcsOCwibGV0IFxcdG8gbGV0XFx0ZXh0ey19bWF0Y2giLDAseyJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbOSwxMCwiZGVmXFx0ZXh0ey19c2lnICsgZGVmdW5cXHRleHR7LX1tYXRjaCBcXHRvIGRlc2lnXFx0ZXh0ey19bWF0Y2ggICIsMix7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFsxMCwxMSwicmVjb3JkIFxcdG8gcmVjb3JkXFx0ZXh0ey19bm9cXHRleHR7LX1wdW4iLDIseyJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbOCw5LCJkZWZ1biAgXFx0byBkZWZ1blxcdGV4dHstfW1hdGNoIiwwLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV0sWzUsNiwiY29uZCBcXHRvIGlmIiwwLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV0sWzExLDEyLCJkZWZIYW5kbGVyIFxcdG8gZGVmXFx0ZXh0ey19aGFuZGxlciIsMix7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFsxMywxNCwibWFpblxcIHN0ZXAiLDAseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbMTUsMTYsInNlY29uZGFyeVxcIHN0ZXAiLDAseyJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbMTIsMiwiXFx0ZXh0aXR7cmVjb3JkLXN9IFxccmlnaHRhcnJvdyBcXHRleHRpdHtyZWNvcmQtdHl9IiwyLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV1d -->
<iframe class="quiver-embed" src="https://q.uiver.app/?q=WzAsMTcsWzAsNCwiXFx0ZXh0e0p1dml4IGZpbGV9Il0sWzUsNCwiXFx0ZXh0e1NlcmlhbGlzZWQgKEFTVCl9Il0sWzksNCwiXFx0ZXh0e0Rlc3VnYXJlZH0iXSxbNSwzLCJcXGJ1bGxldCJdLFsyLDQsIlxcdGV4dHtBU1R9Il0sWzUsMiwiXFxidWxsZXQiXSxbNSwxLCJcXGJ1bGxldCJdLFs1LDAsIlxcYnVsbGV0Il0sWzgsMCwiXFxidWxsZXQiXSxbOSwwLCJcXGJ1bGxldCJdLFs5LDEsIlxcYnVsbGV0Il0sWzksMiwiXFxidWxsZXQiXSxbOSwzLCJcXGJ1bGxldCJdLFswLDAsIlxcYnVsbGV0Il0sWzEsMCwiXFxidWxsZXQiXSxbMCwxLCJcXGJ1bGxldCJdLFsxLDEsIlxcYnVsbGV0Il0sWzEsMiwiZGVzdWdhciIsMCx7ImNvbG91ciI6WzI0MCw2MCw2MF19LFsyNDAsNjAsNjAsMV1dLFsxLDMsIm1vZHVsZSBcXHRvIGZ1biIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFs0LDEsInNlcmlhbGlzZVxcIHRvXFwgUy1leHAiLDAseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbMCw0LCJwYXJzZSIsMCx7ImNvbG91ciI6WzI0MCw2MCw2MF19LFsyNDAsNjAsNjAsMV1dLFszLDUsImxldFxcdGV4dHstfW1vZCBcXHRvIGxldCIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFs2LDcsImlmIFxccmlnaHRhcnJvdyBjYXNlIiwwLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV0sWzcsOCwibGV0IFxcdG8gbGV0XFx0ZXh0ey19bWF0Y2giLDAseyJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbOSwxMCwiZGVmXFx0ZXh0ey19c2lnICsgZGVmdW5cXHRleHR7LX1tYXRjaCBcXHRvIGRlc2lnXFx0ZXh0ey19bWF0Y2ggICIsMix7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFsxMCwxMSwicmVjb3JkIFxcdG8gcmVjb3JkXFx0ZXh0ey19bm9cXHRleHR7LX1wdW4iLDIseyJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbOCw5LCJkZWZ1biAgXFx0byBkZWZ1blxcdGV4dHstfW1hdGNoIiwwLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV0sWzUsNiwiY29uZCBcXHRvIGlmIiwwLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV0sWzExLDEyLCJkZWZIYW5kbGVyIFxcdG8gZGVmXFx0ZXh0ey19aGFuZGxlciIsMix7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFsxMywxNCwibWFpblxcIHN0ZXAiLDAseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbMTUsMTYsInNlY29uZGFyeVxcIHN0ZXAiLDAseyJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbMTIsMiwiXFx0ZXh0aXR7cmVjb3JkLXN9IFxccmlnaHRhcnJvdyBcXHRleHRpdHtyZWNvcmQtdHl9IiwyLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV1d&embed" width="100%" height="300" style="border-radius: 8px; border: none;"></iframe>

```haskell
op :: [Sexp.T] -> [Sexp.T]
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
68 changes: 68 additions & 0 deletions docs/source/compiler/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Compiler


<!-- https://q.uiver.app/?q=WzAsMTksWzAsMCwiXFx0ZXh0e0p1dml4IGZpbGV9Il0sWzIsNSwiXFx0ZXh0e0NvcmV9Il0sWzMsNywiXFx0ZXh0e0NvcmV9Il0sWzEsNywiXFx0ZXh0e0V2YWx9Il0sWzEsOSwiXFx0ZXh0e0xMVk0gfCBNaWNoZWxzb24gfCBQbG9ua30iXSxbMiwwLCJcXHRleHR7QVNUfSJdLFs4LDAsIlxcdGV4dHtEZXN1Z2FyZWR9Il0sWzgsMSwiXFxidWxsZXQiXSxbOCwyLCJcXGJ1bGxldCJdLFs4LDMsIlxcYnVsbGV0Il0sWzgsNCwiXFxidWxsZXQiXSxbOCw1LCJcXGJ1bGxldCJdLFs3LDUsIlxcYnVsbGV0Il0sWzUsNSwiXFxidWxsZXQiXSxbNCw1LCJcXGJ1bGxldCJdLFs3LDcsIlxcYnVsbGV0Il0sWzgsNywiXFxidWxsZXQiXSxbNyw4LCJcXGJ1bGxldCJdLFs4LDgsIlxcYnVsbGV0Il0sWzAsNSwicGFyc2UiLDAseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbNiwxLCJlbGFib3JhdGUiLDEseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbNiw3LCJcXHRleHRpdHtjb250ZXh0aWZ5fSIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFs3LDgsIlxcdGV4dGl0e25hbWVkIHZhcmlhYmxlc30iLDAseyJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbOCw5LCJcXHRleHRpdHt0YWN0aWNzfSIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFs5LDEwLCJcXHRleHRpdHtwYXR0ZXJuIG1hdGNoaW5nfSIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFsxMCwxMSwiXFx0ZXh0aXR7aG9sZXN9IiwwLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV0sWzExLDEyLCJcXHRleHRpdHtTY29wZSBjaGVja2luZ30iLDAseyJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbMTIsMTMsIlxcdGV4dGl0e3R5cGUgY2hlY2tpbmd9IiwwLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV0sWzEsMCwiXFxtYXRoc2Z7ZGVzdGlsYXRpb259IiwxLHsiY29sb3VyIjpbMCwwLDUwXSwic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fSxbMCwwLDUwLDFdXSxbMSwyLCJcXG1hdGhzZntDUFN9IiwxLHsiY3VydmUiOi0yLCJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbMSwyLCJcXG1hdGhzZntBTkZ9IiwxLHsiY3VydmUiOjIsImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFsxNCwxLCJob2xlc1xcIHNvbHZlciIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFsxLDMsImVyYXNlIiwxLHsiY29sb3VyIjpbMjQwLDYwLDYwXX0sWzI0MCw2MCw2MCwxXV0sWzIsMywiZXJhc2UiLDEseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbMyw0LCJjb21waWxlIiwxLHsiY29sb3VyIjpbMjQwLDYwLDYwXX0sWzI0MCw2MCw2MCwxXV0sWzE1LDE2LCJtYWluXFwgc3RlcCIsMCx7ImNvbG91ciI6WzI0MCw2MCw2MF19LFsyNDAsNjAsNjAsMV1dLFsxNywxOCwic2Vjb25kYXJ5XFwgc3RlcCIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFs1LDYsImRlc3VnYXIiLDAseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbMTMsMTQsIlxcbWF0aHNme3VuaWZpY2F0aW9ufSIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dXQ== -->
<iframe class="quiver-embed" src="https://q.uiver.app/?q=WzAsMTksWzAsMCwiXFx0ZXh0e0p1dml4IGZpbGV9Il0sWzIsNSwiXFx0ZXh0e0NvcmV9Il0sWzMsNywiXFx0ZXh0e0NvcmV9Il0sWzEsNywiXFx0ZXh0e0V2YWx9Il0sWzEsOSwiXFx0ZXh0e0xMVk0gfCBNaWNoZWxzb24gfCBQbG9ua30iXSxbMiwwLCJcXHRleHR7QVNUfSJdLFs4LDAsIlxcdGV4dHtEZXN1Z2FyZWR9Il0sWzgsMSwiXFxidWxsZXQiXSxbOCwyLCJcXGJ1bGxldCJdLFs4LDMsIlxcYnVsbGV0Il0sWzgsNCwiXFxidWxsZXQiXSxbOCw1LCJcXGJ1bGxldCJdLFs3LDUsIlxcYnVsbGV0Il0sWzUsNSwiXFxidWxsZXQiXSxbNCw1LCJcXGJ1bGxldCJdLFs3LDcsIlxcYnVsbGV0Il0sWzgsNywiXFxidWxsZXQiXSxbNyw4LCJcXGJ1bGxldCJdLFs4LDgsIlxcYnVsbGV0Il0sWzAsNSwicGFyc2UiLDAseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbNiwxLCJlbGFib3JhdGUiLDEseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbNiw3LCJcXHRleHRpdHtjb250ZXh0aWZ5fSIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFs3LDgsIlxcdGV4dGl0e25hbWVkIHZhcmlhYmxlc30iLDAseyJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbOCw5LCJcXHRleHRpdHt0YWN0aWNzfSIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFs5LDEwLCJcXHRleHRpdHtwYXR0ZXJuIG1hdGNoaW5nfSIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFsxMCwxMSwiXFx0ZXh0aXR7aG9sZXN9IiwwLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV0sWzExLDEyLCJcXHRleHRpdHtTY29wZSBjaGVja2luZ30iLDAseyJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbMTIsMTMsIlxcdGV4dGl0e3R5cGUgY2hlY2tpbmd9IiwwLHsiY29sb3VyIjpbMCwwLDUwXX0sWzAsMCw1MCwxXV0sWzEsMCwiXFxtYXRoc2Z7ZGVzdGlsYXRpb259IiwxLHsiY29sb3VyIjpbMCwwLDUwXSwic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fSxbMCwwLDUwLDFdXSxbMSwyLCJcXG1hdGhzZntDUFN9IiwxLHsiY3VydmUiOi0yLCJjb2xvdXIiOlswLDAsNTBdfSxbMCwwLDUwLDFdXSxbMSwyLCJcXG1hdGhzZntBTkZ9IiwxLHsiY3VydmUiOjIsImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFsxNCwxLCJob2xlc1xcIHNvbHZlciIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFsxLDMsImVyYXNlIiwxLHsiY29sb3VyIjpbMjQwLDYwLDYwXX0sWzI0MCw2MCw2MCwxXV0sWzIsMywiZXJhc2UiLDEseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbMyw0LCJjb21waWxlIiwxLHsiY29sb3VyIjpbMjQwLDYwLDYwXX0sWzI0MCw2MCw2MCwxXV0sWzE1LDE2LCJtYWluXFwgc3RlcCIsMCx7ImNvbG91ciI6WzI0MCw2MCw2MF19LFsyNDAsNjAsNjAsMV1dLFsxNywxOCwic2Vjb25kYXJ5XFwgc3RlcCIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dLFs1LDYsImRlc3VnYXIiLDAseyJjb2xvdXIiOlsyNDAsNjAsNjBdfSxbMjQwLDYwLDYwLDFdXSxbMTMsMTQsIlxcbWF0aHNme3VuaWZpY2F0aW9ufSIsMCx7ImNvbG91ciI6WzAsMCw1MF19LFswLDAsNTAsMV1dXQ==&embed" width="100%" height="500" style="border-radius: 8px; border: none;"></iframe>

-----------

- [Frontend](./frontend/index.md)


- **Parse**:
Break up Juvix syntax into an AST

- **Desugar**:
Translate structure to compiler-friendly terms
- *Serialise*:
Convert AST to S-expression
- *Desugar S-Expressions*:
Strip away high-level constructs from the source (see [s-expression syntax](./frontend/s-expression-syntax))
- *Deserialise*"
Convert S-expression back to AST

- [Core](./core/index.md)
- **Elaboration**
- **Contextify**
- *Resolve Open*"
Construct a map of terms to the modules where they were defined
- *Resolve Open In*

- *Qualify Names*"
Replace term names with their qualified names

- *Resolve Infix*:
Shunting-yard algorithm. Needs context for infixivity

- *Lookup Record Fields*

- Implicit arguments
- Named variables
- Tactics
- Pattern matching for function declaration
- Holes
- Scope checking
- Type checking
- Unification
- $\beta \eta$ - conversion checking
- Holes solver

- [Backends](backends/index.md)

- LLVM
- Michelson
- Plonk

----------

```{toctree}
---
maxdepth: 1
---
frontend/index
core/index
backends/index
```

----------
1 change: 1 addition & 0 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage{titlesec}
\usepackage{tikz}
%
\usepackage{fancyhdr}
\fancypagestyle{plain}{%
Expand Down
5 changes: 2 additions & 3 deletions docs/source/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,8 @@ maxdepth: 1
getting-started/index
preliminaries/index
frontend/index
core/index
backends/index
overview
compiler/index
distributed-ledger-integration
examples/index
future-work/index
Expand Down

0 comments on commit d22972b

Please sign in to comment.