Hi Frédéric,

thanks for going into this so thoroughly.

I will look after these errors as soon possible.

In ancient days, there was a dedicated theory which contained such
»challenges« for the code generator, but with more and more theories
with code generation this had been given up; maybe these synthetic
examples are critical enough to revive that.

Thanks a lot,
        Florian

Am 01.09.2015 um 17:37 schrieb Frédéric Tuong:
> Dear all,
> 
> The following is a list with 2 elements:
> definition "l = [let x = True in x, False]"
> However after doing "export_code l in OCaml", we obtain a list with only
> 1 element, because at the end no parentheses are inserted around the
> corresponding "let".
> In particular by default in OCaml [let x = true in x ; false] is
> understood as [let x = true in (x ; false)]
> and then a warning can be raised whenever x does not have type unit.
> 
> By comparing the generating code for SML and OCaml in
> src/Tools/Code/code_ml.ML, I would be tempted to replace
> "brackify_block" by "brackets" everytime in the corresponding
> "print_case" clause, and skip this optimization like in the SML part
> where "let"..."in"..."end" are inserted everytime, what about you?
> 
> 
> In the same spirit, the following code does not compile after exporting
> to Scala:
> datatype n = N nat
> definition "b = (let _ = N in False)"
> This is because N is a function, and no parentheses are generated around
> functions (at least in this example).
> 
> Whereas this behavior can be very useful for detecting ghost functions
> in a large project (the detection may also not be complete), it does not
> mean that errors only occur with ghost code.
> For example, the following code is well-typed in Isabelle but not in Scala:
> definition "f l = (%x. x | True) # (%x. x | False) # l"
> 
> Cheers,
> Frédéric
> 
> _______________________________________________
> isabelle-dev mailing list
> isabelle-...@in.tum.de
> https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev

-- 

PGP available:
http://home.informatik.tu-muenchen.de/haftmann/pgp/florian_haftmann_at_informatik_tu_muenchen_de

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
isabelle-dev mailing list
isabelle-...@in.tum.de
https://mailmanbroy.informatik.tu-muenchen.de/mailman/listinfo/isabelle-dev

Reply via email to