[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Rather, DSSLs increase modularity, productivity
Shriram Krishnamurthi wrote:
> So suppose I have (in pseudocode):
>
>----------------------------------------------------------------------
>f() =
> let x : ref int = box 3
> in
> g(x) ;
> (unbox x) + 5
>
>g(y) =
> set-box y = true
>----------------------------------------------------------------------
>
>Then what does the Curl "type system" do?
>
>Please don't tell me about your compiler. Just tell me what your type
>system does. (And please square it with your comments that the
>implementation will "check types" and "generate better code".)
>
>
In this case, since y has no declared type it, its static type would be
'any' so the type mismatch would not be noticed until runtime. Curl
does not do any type inferencing (except in a few special cases) so the
compiler will not recognize this error at compile time.
Note that Curl's 'any' type is not merely the universal supertype. It
also has different behavior from other static type constraints. When a
variable has the 'any' static type, then no compile-time checks will be
performed for method dispatches through the variable. For variables
with any other static type, method invocations must conform to the
static type. For example:
{define-class A}
{define-class B {inherits A} {method {b}}}
let x:A = {B}
let y = x
{y.b} || ok
{x.b} || error, no member 'b' defined in 'A'
Curl's type system is probably not all that interesting from a
theoretical standpoint but it does allow the programmer to choose
between dynamic and static programming styles as they see fit.
- Christopher
- References:
- Re: dual-language systems increase modularity
- Re: dual-language systems increase modularity
- From: Michael Vanier <mvanier@cs.caltech.edu>
- Rather, DSSLs increase modularity, productivity
- From: Mike Newhall <mike@newhall.net>
- Re: Rather, DSSLs increase modularity, productivity
- From: Michael Vanier <mvanier@cs.caltech.edu>
- Re: Rather, DSSLs increase modularity, productivity
- From: David Lichteblau <david@lichteblau.com>
- Re: Rather, DSSLs increase modularity, productivity
- From: Michael Vanier <mvanier@cs.caltech.edu>
- Re: Rather, DSSLs increase modularity, productivity
- From: Miles Egan <miles@caddr.com>
- Re: Rather, DSSLs increase modularity, productivity
- From: Daniel Weinreb <dlweinreb@rcn.com>
- Re: Rather, DSSLs increase modularity, productivity
- From: Miles Egan <miles@caddr.com>
- Re: Rather, DSSLs increase modularity, productivity
- From: Christopher Barber <cbarber@curl.com>
- Re: Rather, DSSLs increase modularity, productivity
- From: Shriram Krishnamurthi <sk@cs.brown.edu>
- Re: Rather, DSSLs increase modularity, productivity
- From: Christopher Barber <cbarber@curl.com>
- Re: Rather, DSSLs increase modularity, productivity
- From: Shriram Krishnamurthi <sk@cs.brown.edu>