Clojurians
#clojure-italy
<
2018-07-22
>

This page is not created by, affiliated with, or supported by Slack Technologies, Inc.

richiardiandrea16:07:13

Per voi che siete esperti di linguaggi - sto cercando di scegliere un formato intermedio, può essere bytecode o art, non deve essere un linguaggio per scrivere ma per controllare bachi/omissioni/correttezza. Praticamente dal nostro DSL dovrei convertire in questo linguaggio per poi convertire in Clojure. Mi è :whale2:ta un idea malsana - tradurre direttamente in Clojure ma non so quanto i vari tool di analisi siano adatti. Il nostro DSL ha tipi + funzioni su tipi (tipo funzioni excel). Un'altra cosa che vorrei evitare è di riscrivermi un parser+interpreter. Per quello chiedevo di Dahl... Anyways, grazie!

nilrecurring19:07:27

Ottima domanda

nilrecurring19:07:55

Se il vostro DSL è Turing completo puoi già escludere Dhall in partenza

nilrecurring19:07:17

Se non lo è, allora è lo use-case perfetto per Dhall

nilrecurring19:07:07

Se ho capito bene il flow dovrebbe essere: DSL -> Dhall -> Typecheck+Execute Dhall -> eval Clojure

richiardiandrea20:07:05

@nilrecurring si esatto

richiardiandrea20:07:38

È in teoria Turing completo ma da quello che ho capito dhall limita la ricorsione

richiardiandrea20:07:47

Che per noi è cosa buona :)

nilrecurring20:07:21

La ricorsione non c’è proprio, se devi esprimere un loop devi usare una fold

nilrecurring21:07:47

Anyways, qui ho quasi finito il compilatore, mi manca da finire il typechecker (+ debuggare tutto e controllare che sia effettivamente fedele alla spec) :smile:

richiardiandrea22:07:04

Oh grazie! Controllo li allora

richiardiandrea22:07:23

Devo ancora capire se si tratta del linguaggio giusto ;)

nilrecurring22:07:43

Allora ti consiglio di partire da qua :slightly_smiling_face: http://hackage.haskell.org/package/dhall-1.16.1/docs/Dhall-Tutorial.html

nilrecurring22:07:22

In effetti il secondo link è parecchio migliore del primo

richiardiandrea22:07:13

Ok grazie ancora