🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.functional
Article #435

Re: Why type checking is done at compile time

#435
From: Vance Morrison
Date: Mon, 13 Aug 1990 14:20
99 lines
4628 bytes
In article <24152@megaron.cs.arizona.edu> gudeman@cs.arizona.edu (David Gudeman) writes:

>(a) the three most common uses for type systems are
>    (1) verification,
>    (2) efficiency and
>    (3) organization.
>
>(b) Purposes (1) and (2) are used in a small minority of applications
>of types systems (a few programming languages), while (3) is used in
>almost all applications of types systems.  (I know of only one
>exception)

I think we are splitting hairs here.  I agree with you completely
that organization is the primary use of types.   This is why even
in mathematics type are a very useful concept.  However, what makes
type systems a more organizational tool than say naming schemes,
or indentation, etc, is that there are very specific syntatic 
(compile-time, decidable) rules that can be checked.  Thus the 
programmer can be SURE that the organization the typeing struture
places on his program is consistant.  This is what makes type
systmes powerful.

Note that if typing was done at run time (or the type system was
so complex that checking consistancy is undecidable), much of the
value of a typeing system is lost.  Sure, I can still use types to
orgainize my code, but I will never know for sure that it is correct 
(type consistant).

>Given the primacy and universality of (3), it seems a little silly to
>say that either (1) or (2) is _the_ purpose of type systems.
>-- 

I did not mean to imply that verification was the only purpose of
type systems.  Notice that I was merely trying to answer the question
of why it is that checking type consistancey is usually thought of as 
'compiie-time' operation.  Notice that the orgainizational aspects
of typeing does not require typeing to be compile-time.  However,
verification does by its very nature require this.


Vance
Univ of lllinois, Urbana



Newsgroups: comp.lang.functional
Subject: Re: Why type checking is done at compile time
Summary: 
Expires: 
References: <24152@megaron.cs.arizona.edu>
Sender: 
Reply-To: morrison@thucydides.cs.uiuc.edu.UUCP (Vance Morrison)
Followup-To: 
Distribution: 
Organization: University of Illinois, Urbana-Champaign
Keywords: 

In article <24152@megaron.cs.arizona.edu> gudeman@cs.arizona.edu (David Gudeman) writes:

>(a) the three most common uses for type systems are
>    (1) verification,
>    (2) efficiency and
>    (3) organization.
>
>(b) Purposes (1) and (2) are used in a small minority of applications
>of types systems (a few programming languages), while (3) is used in
>almost all applications of types systems.  (I know of only one
>exception)

I think we are splitting hairs here.  I agree with you completely
that organization is the primary use of types.   This is why even
in mathematics type are a very useful concept.  However, what makes
type systems a more organizational tool than say naming schemes,
or indentation, etc, is that there are very specific syntatic 
(compile-time, decidable) rules that can be checked.  Thus the 
programmer can be SURE that the organization the typeing struture
places on his program is consistant.  This is what makes type
systmes powerful.

Note that if typing was done at run time (or the type system was
so complex that checking consistancy is undecidable), much of the
value of a typeing system is lost.  Sure, I can still use types to
orgainize my code, but I will never know for sure that it is correct 
(type consistant).

>Given the primacy and universality of (3), it seems a little silly to
>say that either (1) or (2) is _the_ purpose of type systems.
>-- 

I did not mean to imply that verification was the only purpose of
type systems.  Notice that I was merely trying to answer the question
of why it is that checking type consistancey is usually thought of as 
'compiie-time' operation.  Notice that the orgainizational aspects
of typeing does not require typeing to be compile-time.  However,
verification does by its very nature require this.


Vance
Univ of lllinois, Urbana
Technical Details
Message-ID: <1990Aug13.142021.26786@ux1.cso.uiuc.edu>
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!tut.cis.ohio-state.edu!purdue!iuvax!ux1.cso.uiuc.edu!thucydides.cs.uiuc.edu!morrison
References: <24152@megaron.cs.arizona.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!uunet!tut.cis.ohio-state.edu!purdue!iuvax!ux1.cso.uiuc.edu!thucydides.cs.uiuc.edu!morrison
From: morrison@thucydides.cs.uiuc.edu (Vance Morrison)
Newsgroups: comp.lang.functional
Subject: Re: Why type checking is done at compile time
Message-ID: <1990Aug13.142021.26786@ux1.cso.uiuc.edu>
Date: 13 Aug 90 14:20:21 GMT
References: <24152@megaron.cs.arizona.edu>
Sender: usenet@ux1.cso.uiuc.edu (News)
Reply-To: morrison@thucydides.cs.uiuc.edu.UUCP (Vance Morrison)
Organization: University of Illinois, Urbana-Champaign
Lines: 99