Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!nntp.club.cc.cmu.edu!news.mic.ucla.edu!news.bc.net!vanbc.wimsey.com!scipio.cyberstore.ca!math.ohio-state.edu!howland.reston.ans.net!swrinde!pipex!uknet!gdt!bsmail!miki!jwl
From: jwl@miki.cs.bris.ac.uk (John Lloyd)
Subject: Re: meta-programming, strong typing, and monads
Message-ID: <D019tD.M91@info.bris.ac.uk>
Sender: jwl@miki (John Lloyd)
Nntp-Posting-Host: miki.cs.bris.ac.uk
Organization: Unviversity of Bristol, Dept of Computer Science
References: <CztzuC.H1w@info.bris.ac.uk> <3bck5l$ph9@hitchcock.dfki.uni-sb.de> <BEVAN.94Nov29134503@panther.cs.man.ac.uk>
Date: Tue, 29 Nov 1994 14:34:24 GMT
Lines: 31

In article <BEVAN.94Nov29134503@panther.cs.man.ac.uk>, bevan@cs.man.ac.uk (Stephen J Bevan) writes:
|> In article <D0155o.HvA@info.bris.ac.uk> jwl@miki.cs.bris.ac.uk (John Lloyd) writes:
|>    But first I would like to clarify some points. Maybe I missed an earlier 
|>    posting, but I am rather confused about the concept of "dynamic typing" and
|>    would appreciate it if someone could enlighten me. However, just in case 
|>    someone isn't to sure exactly what "strong typing" means (at least to me!), 
|>    here is a definition:
|> 
|>    A programming language is strongly typed if every symbol and its type must 
|>    be specified in the program by a language declaration. ...
|> 
|> What you've just defined is what I usually consider a facet of "static
|> typing" not "strong typing".  If you don't make this type of
|> distinction then it is difficult to distinguish between languages such
|> as (K&R) C, BCPL, Forth, Prolog and Smalltalk where the first two are
|> statically but not really strongly typed, the third is neither and the
|> fourth and fifth are strongly but not statically typed.  IMHO to
|> adequately describe the variety of languages that have been designed,
|> it is really necessary to make finer distinctions than strong/weak,
|> static/dynaamic since for example these don't adequately deal with
|> languages which allow types to be created at run-time.


OK, in this case, maybe some kind soul would be willing to clarify the 
terminology for us by giving careful definitions of the major concepts 
(static/dynamic, strong/weak, etc) for type systems with some illustrative 
examples? Anyway, I do agree that the Goedel type system is static, by any
reasonable definition of that term.

John Lloyd

