From: Markus Mottl <mottl@miss.wu-wien.ac.at>
To: Pierre.Weis@inria.fr (Pierre Weis)
Cc: caml-list@inria.fr (OCAML)
Subject: Re: Compiler translation of array indexing
Date: Wed, 19 Jan 2000 18:08:31 +0100 (MET) [thread overview]
Message-ID: <200001191708.SAA15007@miss.wu-wien.ac.at> (raw)
In-Reply-To: <200001191425.PAA15370@pauillac.inria.fr> from "Pierre Weis" at Jan 19, 2000 03:42:06 PM
> This work had also produced a safe value I/O system for Objective
> Caml, that is a fully typechecked and safe polymorphic input/output
> set of primitives for Objective Caml.
> The design and implementation is described into the following
> (forcoming) article : http://pauillac.inria.fr/~weis/articles/jfla2000.ps.Z
Wow! This is really interesting stuff! I don't know much French, but if I
get the main ideas of the article, the techniques presented in it give
quite some new perspectives to programming in statically typed languages in
general and in OCaml specifically.
So far, one of the valid arguments of people using dynamically typed
languages is that I/O in statically typed languages is very inflexible.
The implementation of the ideas presented in this article would, however,
provide a strong counter argument: then we would not only have flexible,
but also *safe* I/O!
Since it is very time consuming for me to read the French version, I'd like
to ask a short question here:
The article says that the name of types and constructors is dropped for the
conversion to the interchange format. But what about types like:
type t = Foo | Bar
How are such cases treated? Another program might define this as
type t = Bar | Foo
and possibly means the same thing with the same constructors, however, the
internal representation might be completely different (maybe due to order
of constructors).
Of course, as long as all constructors take parameters of different types
like in
type t = String of string | Int of int | ...
there is always a unique translation.
Are there primitives for disambiguating such cases? E.g. my program reads
in data from another program, I see that it gets the constructors the wrong
way round so I just use some primitive to get it right again?
> We also plan to distribute Jun's implementation in the near future, to
> let you play with it.
This would be great! I am looking forward to this!
Best regards,
Markus Mottl
--
Markus Mottl, mottl@miss.wu-wien.ac.at, http://miss.wu-wien.ac.at/~mottl
next prev parent reply other threads:[~2000-01-19 20:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-01-18 16:34 David McClain
2000-01-19 14:25 ` Pierre Weis
2000-01-19 17:08 ` Markus Mottl [this message]
2000-01-19 21:17 ` Pierre Weis
2000-01-19 17:33 Simon Peyton-Jones
2000-01-19 22:50 ` Pierre Weis
2000-01-24 17:06 ` Andreas Rossberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200001191708.SAA15007@miss.wu-wien.ac.at \
--to=mottl@miss.wu-wien.ac.at \
--cc=Pierre.Weis@inria.fr \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox