I was going to post this in the 'What's so great about lisp?' thread since
there are several brush fires in that thread on the efficacy of static
typing, but those sub-threads are all over the place. So...
Could anyone who saw Will Clinger's talk at this year's ILC explain the
gist of this slide:
http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
I have an idea what he might be talking about, but I wasn't there.
Thanks,
Matt
--
"You do not really understand something unless you can
explain it to your grandmother." — Albert Einstein.
On Mon, 26 Sep 2005 11:39:08 -0500, Matthew D Swank wrote:
> Could anyone who saw Will Clinger's talk at this year's ILC explain the
> gist of this slide:
> http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
>
Also, I noticed that Clinger liked John Allen's talk about the future of
software engineering. This is interesting, since one of the conclusions
Allen reaches is that engineers will end up providing guarantees about
software through the use of (static) type-systems. How does this fit into
the lisp/scheme world?
Matt
--
"You do not really understand something unless you can
explain it to your grandmother." — Albert Einstein.
Matthew D Swank wrote:
> Also, I noticed that Clinger liked John Allen's talk about the future of
> software engineering. This is interesting, since one of the conclusions
> Allen reaches is that engineers will end up providing guarantees about
> software through the use of (static) type-systems. How does this fit into
> the lisp/scheme world?
Well, you start by using Lisp's "macros" and "code as data" to "embed" a
statically typed language... ;-)
--
Dr Jon D Harrop, Flying Frog Consultancy
http://www.ffconsultancy.com
Matthew D Swank wrote:
> Could anyone who saw Will Clinger's talk at this year's ILC explain
> the gist of this slide:
> http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
I didn't see that talk either, but the audio for it is online at
http://www.international-lisp-conference.org/2005/media/clinger-audio.mp3
(Get him!)
Will
On Mon, 26 Sep 2005 13:24:17 -0700, William D Clinger wrote:
> I didn't see that talk either, but the audio for it is online at
> http://www.international-lisp-conference.org/2005/media/clinger-audio.mp3
>
Thanks! (I don't know how I missed that)
Matt
--
"You do not really understand something unless you can
explain it to your grandmother." — Albert Einstein.
Matthew D Swank wrote:
I didn't see him, but here's my two cents anyway.
> http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
Hm, strong typing could be something like verifying that the if and else
clause of a function return values of the same type, as that is
obviously important if the caller is to rely on that.
Strongarm typing might be something like C requiring you to declare a
struct just so you can return more than one value from a function.
> I have an idea what he might be talking about, but I wasn't there.
Same here.
Optional type checking provides exactly the above, and doesn't prevent
code from being run.
--
Some people like democracy. That's because it does whatever the
majority wants, and because they happen to be part of that majority.
"Do you want the Total War?"
Ulrich Hobelmann <···········@web.de> writes:
> Matthew D Swank wrote:
> I didn't see him, but here's my two cents anyway.
>
> > http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
>
> Hm, strong typing could be something like verifying that the if and else
> clause of a function return values of the same type, as that is obviously
> important if the caller is to rely on that.
I wouldn't think so. It should mean that the type of something cannot be
abused or violated, i.e. interpreted as a value of another type. Perl "is it a
string or a number" values are a great example of the violation of strong
typing.
Note that I am not touching on statically versus dynamically typed here. Lisp
is a dynamically strongly typed languages in that you cann't abuse the type of
a value. A language like Ada is statically strongly typed, relying less on the
runtime side and instead making the bindings strongly typed. A language like
ML seems make things so that you can't tell the difference: your very thoughts
must be strongly typed.
> Strongarm typing might be something like C requiring you to declare a struct
> just so you can return more than one value from a function.
I would guess forcing one to do that things that make statically typed
languages tedious: force everything to be explicitly
declared/constructed/proved/whatever.
--
Cheers, The Rhythm is around me,
The Rhythm has control.
Ray Blaak The Rhythm is inside me,
········@STRIPCAPStelus.net The Rhythm has my soul.
Ulrich Hobelmann wrote:
> Matthew D Swank wrote:
> I didn't see him, but here's my two cents anyway.
>
>> http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
>
>
> Hm, strong typing could be something like verifying that the if and else
> clause of a function return values of the same type, as that is
> obviously important if the caller is to rely on that.
>
> Strongarm typing might be something like C requiring you to declare a
> struct just so you can return more than one value from a function.
>
>> I have an idea what he might be talking about, but I wasn't there.
>
>
> Same here.
>
> Optional type checking provides exactly the above, and doesn't prevent
> code from being run.
>
I didn't RTFA yet but I felt the need to caution us about not confusing
static typing and strong typing, which are different things. Static
typing is when types can be determined at compile time, i.e. are
specified in the text of the code; dynamic typing is when type-checking
waits until runtime. Strong/weak typing is another dimension, dealing
with how strictly types are enforced. Lisp/Scheme is strongly (= only
works on numbers, for instance), but dynamically, typed. C is
statically, but more weakly, typed. An example of very strong static
typing would be Ada.
--ch--
Charles Hoffman wrote:
> Ulrich Hobelmann wrote:
>> Matthew D Swank wrote:
>> I didn't see him, but here's my two cents anyway.
>>
>>> http://www.ccs.neu.edu/home/will/Research/ILC2005/Slides/typesrant6.html
>>
>>
>> Hm, strong typing could be something like verifying that the if and
>> else clause of a function return values of the same type, as that is
>> obviously important if the caller is to rely on that.
>>
>> Strongarm typing might be something like C requiring you to declare a
>> struct just so you can return more than one value from a function.
>>
>>> I have an idea what he might be talking about, but I wasn't there.
>>
>>
>> Same here.
>>
>> Optional type checking provides exactly the above, and doesn't prevent
>> code from being run.
>>
>
> I didn't RTFA yet but I felt the need to caution us about not confusing
> static typing and strong typing, which are different things. Static
> typing is when types can be determined at compile time, i.e. are
> specified in the text of the code; dynamic typing is when type-checking
> waits until runtime. Strong/weak typing is another dimension, dealing
> with how strictly types are enforced. Lisp/Scheme is strongly (= only
> works on numbers, for instance), but dynamically, typed. C is
> statically, but more weakly, typed. An example of very strong static
> typing would be Ada.
Yes, I meant static strong typing, thanks. "Optional type checking"
should read "optional static checking."
--
Blessed are the young for they shall inherit the national debt.
Herbert Hoover