Lambda the Ultimate

inactiveTopic Types in Programming Languages
started 10/1/2002; 1:55:22 AM - last post 10/1/2002; 9:39:34 PM
jon fernquest - Types in Programming Languages  blueArrow
10/1/2002; 1:55:22 AM (reads: 1796, responses: 3)
Types in Programming Languages
A survey paper that provides basic definitions for type systems and a broad overview of the whole subject. Covers types in denotational and operational semantics as well as decidable and undecidable type systems (Cayenne and dependent types). Introduces Church's "simply typed lambda calculus" and defines simple types as well as product, sum, and recursive types. The section on polymorphism shows how "the mechanism used to define polymorphic functions in ML is a very simple and elegant extension of simply typed lambda calculus." Covers subtyping and object-oriented programming, constrained polymorphism, and abstract data types. Shows how constrained types are "adequate for expressing the types of overloaded symbols." Briefly overviews different types of constrained polymorphism: "subtype-bounded polymorphism" using subtype constraints an extension of which, "F-bounded polymorphism" uses functions from types to types. (Types in Programming Languages, Camarao, Figueiredo, and Pimentel, 1999)
Posted to theory by jon fernquest on 10/1/02; 2:11:24 AM

Ken Meltsner - Re: Types in Programming Languages  blueArrow
10/1/2002; 7:23:06 AM (reads: 767, responses: 0)
A side note: When I first read the title, I thought it was "Typos in Programming Languages" -- an interesting topic, I suspect.

Think about it: in "line noise" languages like Perl, a typo will not leap out at you as a mistake. Languages like VB produce code filled with non-typos that look like mistakes -- inconsistent use of quote marks, parentheses, etc.

On the other hand, it's fairly easy to see program structure in Python since it uses whitespace and not easily confused parenthesis and brace characters like Java (a personal pet peeve since I have lousy vision).

It's far too basic an issue for this crowd, I suspect, but designing a language's syntax so that it survives poor typists is a practical consideration worth thinking about in your next ultra-high level DSL. My favorite in this area is still Lisp, especially with a moderately smart editor, but Python definitely looks interesting. At the bottom of the list are VB and Perl, one for accepting too many variants for common expressions and one because it looks confusing to my untrained eye.

[I shouldn't be surprised that Python looks like a winner in the typo-resistant class of languages -- apparently ABC, its predecessor, was explicitly designed with usability in mind. Lisp may rate well because smart people used it and then designed the tools that made it friendlier -- I've rarely needed to write Lisp without Emacs or a similar editor.]

Noel Welsh - Re: Types in Programming Languages  blueArrow
10/1/2002; 9:08:05 AM (reads: 753, responses: 0)
I'm sure there is/was a guy researching recovery from typographic errors in ML at Edinburgh. It was baed on correcting type errors by correction typos. Can't find a link for the life of me now...

Chris - Re: Types in Programming Languages  blueArrow
10/1/2002; 9:39:34 PM (reads: 708, responses: 0)