Re: [Haskell] Articles on the value of strong typing

2007-03-26 Thread martin odersky

On 3/26/07, Jacob Atzen [EMAIL PROTECTED] wrote:


This lead me to the question: Are there any scientific empirical studies
of the values of static / stronger type systems as found in Haskell, C#
or Java in real world settings? Or any studies comparing weaker type
systems in terms of programmer efficiency, defect ratio, etc.


It's certainly not scientific, but there is a recent entry on Lambda
the Ultimate that contains some empirical evidence:

http://lambda-the-ultimate.org/node/2147

-- Martin
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[Haskell] Post-doc position in Martin Odersky's group, EPFL, Switzerland

2005-04-12 Thread Martin Odersky

EPFL Lausanne
  Programming Methods Group
 Prof. Martin Odersky

We have an open position for a postdoctoral researcher in the
Programming Methods Group at EPFL. The research of our group is
centered on Scala, a new programming language which fuses functional
and object-oriented programming and which interoperates at the same
time with Java and .NET. Scala pushes the state of the art in type
systems for component abstractions and composition. It also provides
many new concepts for web programming.

Here are some of our current research directions:

 - Further developments in the Scala language design
 - High-level optimizations
 - Type systems for object-oriented and functional languages
 - Programming language support for XML
 - Component technology.
 - Reliable software, verification, testability.

If you work in some of these research areas and are interested in both
system building and theory, you will find an active and friendly
research environment at Lausanne.

The appointment is for one year initially with renewals possible up to
three years. The position is open from June, 2005, but later starting
dates can also be considered. Compensation is competitive at CHF 80K+
(1 CHF ~~ 0.83 U.S$), depending on age and experience.

Informal inquiries about the position may be addressed to
[EMAIL PROTECTED] Formal applications should be sent by e-mail
to the following address:

  Mme Yvette Dubuis
  [EMAIL PROTECTED]
  Tel. +41 21 693 5202
  Fax  +41 21 693 6660

To be guaranteed full consideration, applications should be received
by May 15th, 2000. Applications should consist of a curriculum vitae,
a publication list, and the names of three personal references. Please
ask your references to send their letters directly to
[EMAIL PROTECTED]

EPFL Lausanne is one of two federal universities in Switzerland. It
has one of the most nationally diverse research, teaching and learning
communities in Europe.  Lausanne is situated in very attractive
surroundings in the French-speaking part of Switzerland, on the shore
of Lake Geneva, in close proximity to the Alps.
___
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell


[ANN] The Scala programming language

2004-01-22 Thread Martin Odersky


We'd like to announce availability of the first implementation of the
Scala programming language.  Scala smoothly integrates object-oriented
and functional programming. It is designed to express common
programming patterns in a concise, elegant, and type-safe way.  Scala
introduces several innovative language constructs. For instance:

- Abstract types and mixin composition unify ideas from object and
  module systems.

- Pattern matching over class hierarchies unifies functional and
  object-oriented data access. It greatly simplifies the processing of
  XML trees.

- A flexible syntax and type system enables the construction of
  advanced libraries and new domain specific languages.

At the same time, Scala is compatible with Java.  Java libraries and
frameworks can be used without glue code or additional declarations.

The current implementation of Scala runs on Java VM. It requires JDK
1.4 and can run on Windows, MacOS, Linux, Solaris, and most other
operating systems. A .net version of Scala is currently under
development.

For further information and downloads, please visit:

scala.epfl.ch


==
Martin Odersky and the Scala team,
Swiss Federal Institute of Technology, Lausanne (EPFL).
___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell


FOOL 9 Call for Participation

2001-12-06 Thread Martin Odersky


CALL FOR PARTICIPATION

 The Ninth International Workshop on
   Foundations of Object-Oriented Languages

FOOL 9

   Sponsored by ACM SIGPLAN

   January 19, 2002

   Portland, Oregon
  Following POPL '02

The search for sound principles for object-oriented languages has
given rise to much work on the theory of programming languages during
the past 15 years, leading to a better understanding of the key
concepts of object-oriented languages and to important developments in
type theory, semantics, and program verification. The FOOL workshops
bring together researchers to share new ideas and results in these
areas.

The next workshop, FOOL 9, will be held in Portland, Oregon, on
Saturday January 19, 2002, the day after POPL'02. To register for the
workshop, use the standard registration form, available through:

  http://www.cse.ogi.edu/PacSoft/conf/popl

--

Preliminary schedule
Saturday, January 29, 2002

8:40 Start
8:45-9:45   Invited Talk
Distributed Objects - The Next 10 Years
Andrew Black

9:45-10:15  Break
10:15-12:15 Session 1

Modular Typechecking for Hierarchically Extensible 
Datatypes and Functions
Todd Millstein, Craig Chambers

Type-checking multi-methods in ML (A modular approach)
Daniel Bonniot

First-Class Modules for Haskell
Mark Shields, Simon Peyton Jones

Extensible Objects Without Labels
Christopher Stone

12:15-14:00 Lunch
14:00-15:30 Session 2

Modern Concurrency Abstractions for C#
Nick Benton, Luca Cardelli, Cedric Fournet

OO languages late-binding signature
Antoine Beugnard

A Semantics for Advice and Dynamic Joint Points in
Aspect-Oriented Programming
Mitchell Wand, Gregor Kiczales, Christopher Dutchyn

15:30-16:00 Break
16:00-17:30 Session 3

Automatic Discovery of Read-Only Fields,
Jens Palsberg, Tian Zhao, Trevor Jim.

Generation of Verification Conditions for
Abadi and Leino's Logic of Objects
Francis Tang, Martin Hofmann

Simple Type Inference for Structural Polymorphism
Jacques Garrigue

-

Steering Committee:

Martin Abadi, University of California, Santa Cruz
Kim Bruce, Williams College
Luca Cardelli, Microsoft Research
Kathleen Fisher, ATT Labs
Benjamin Pierce, University of Pennsylvania  (chair)
Didier Remy, INRIA Rocquencourt

Program Committee:

Viviana Bono, Universita di Torino
Craig Chambers, University of Washington
Erik Ernst, University of Aalborg
Giorgio Ghelli, University of Pisa
Atsushi Igarashi, University of Tokyo
Shriram Krishnamurthi, Brown University
Martin Odersky, EPFL   (chair) [EMAIL PROTECTED]
Clemens Szyperski, Microsoft Research
Jan Vitek, Purdue University


___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



RE: rank 2-polymorphism and type checking

2001-10-24 Thread Martin Odersky


  PS to my earlier message.  I am not at all certain that 
  the Odersky/Laufer thing would in fact solve Janis's problem.
  You want not only a rank-3 type, but also higher-order unification,
  since you want to instantiate 't' to
   \c. forall d . (c-d) - d - d 

Simon,

You are correct to have doubts. Indeed our system would not handle
this case, as type variables can only be instantiated to monomorophic
types, not to type schemes. The closest you can get to it is to wrap
the instance type in a type constructor. I.e. `t' could be
instantiated to

T (\c. forall d . (c-d) - d - d)

where T was declared

newtype T = T (\c. forall d . (c-d) - d - d)

But I guess that does not solve Janis's problem.

Cheers

 -- Martin

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Final CFP: FOOL 9 -- Foundations of Object-Oriented Languages

2001-09-28 Thread Martin Odersky



FINAL CALL FOR PAPERS

 The Ninth International Workshop on
   Foundations of Object-Oriented Languages

   FOOL 9

  Sponsored by ACM SIGPLAN

  January 19, 2002
Portland, Oregon, USA
 Following POPL '02

   http://www.cs.williams.edu/~kim/FOOL/fool9.html

Deadlines

Submissions: October 12, 2001
Notifications: November 12, 2001
Final versions: December 10, 2001

The search for sound principles for object-oriented languages has
given rise to much work on the theory of programming languages during
the past 15 years, leading to a better understanding of the key
concepts of object-oriented languages and to important developments in
type theory, semantics, and program verification. The FOOL workshops
bring together researchers to share new ideas and results in these
areas. The next workshop, FOOL 9, will be held in Portland, Oregon, on
Saturday January 19, 2002, the day after POPL '02.

Submissions for this event are invited in the general area of
foundations of object-oriented languages; topics of interest include
language semantics, type systems, program analysis and verification,
programming calculi, concurrent and distributed languages, and
database languages. The main focus in selecting workshop contributions
will be the intrinsic interest and timeliness of the work, so authors
are encouraged to submit polished descriptions of work in progress as
well as papers describing completed projects.

A web page will be created and made available as informal electronic
conference proceedings.

Submission procedure

We solicit submissions on original research not previously published
or currently submitted for publication elsewhere, in the form of
extended abstracts. These extended abstracts should not exceed 5000
words (approximately 10 pages); shorter extended abstracts (e.g., 2000
words) are often sufficient. Submissions should be e-mailed to
[EMAIL PROTECTED] by Friday, October 12, 2001, using Postscript or
PDF. Each submission may be included inline in a message or as a MIME
attachment only. We may not be able to consider late submissions, or
submissions that do not have a working and attended return e-mail
address. (If electronic submission is impossible, please contact the
program chair in September.) Receipt of the submissions will be
acknowledged by e-mail. Authors should inquire in case a prompt
acknowledgment is not received.

Correspondence and questions should be sent to [EMAIL PROTECTED]

Steering Committee
Martin Abadi, Bell Labs
Kim Bruce, Williams College
Luca Cardelli, Microsoft Research
Kathleen Fisher, ATT Labs
Benjamin Pierce, University of Pennsylvania (chair)
Didier Remy, INRIA Rocquencourt

Program Chair
Martin Odersky, Swiss Federal Institute of Technology Lausanne, 
[EMAIL PROTECTED]

Program Committee
Viviana Bono,  Universita di Torino
Craig Chambers,  University of Washington
Erik Ernst,  University of Aalborg
Giorgio Ghelli,  University of Pisa
Atsushi Igarashi,  University of Tokyo
Shriram Krishnamurthi,  Brown University
Clemens Szyperski,  Microsoft Research
Jan Vitek,  Purdue University

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



CFP: FOOL 9 -- Foundations of Object-Oriented Languages

2001-07-20 Thread Martin Odersky


   Call for Papers

 The Ninth International Workshop on
   Foundations of Object-Oriented Languages

   FOOL 9

  Sponsored by ACM SIGPLAN

  January 19, 2002
Portland, Oregon, USA
 Following POPL '02

   http://www.cs.williams.edu/~kim/FOOL/fool9.html

Deadlines

Submissions: October 12, 2001
Notifications: November 12, 2001
Final versions: December 10, 2001

The search for sound principles for object-oriented languages has
given rise to much work on the theory of programming languages during
the past 15 years, leading to a better understanding of the key
concepts of object-oriented languages and to important developments in
type theory, semantics, and program verification. The FOOL workshops
bring together researchers to share new ideas and results in these
areas. The next workshop, FOOL 9, will be held in Portland, Oregon, on
Saturday January 19, 2002, the day after POPL '02.

Submissions for this event are invited in the general area of
foundations of object-oriented languages; topics of interest include
language semantics, type systems, program analysis and verification,
programming calculi, concurrent and distributed languages, and
database languages. The main focus in selecting workshop contributions
will be the intrinsic interest and timeliness of the work, so authors
are encouraged to submit polished descriptions of work in progress as
well as papers describing completed projects.

A web page will be created and made available as informal electronic
conference proceedings.

Submission procedure

We solicit submissions on original research not previously published
or currently submitted for publication elsewhere, in the form of
extended abstracts. These extended abstracts should not exceed 5000
words (approximately 10 pages); shorter extended abstracts (e.g., 2000
words) are often sufficient. Submissions should be e-mailed to
[EMAIL PROTECTED] by Friday, October 12, 2001, using Postscript or
PDF. Each submission may be included inline in a message or as a MIME
attachment only. We may not be able to consider late submissions, or
submissions that do not have a working and attended return e-mail
address. (If electronic submission is impossible, please contact the
program chair in September.) Receipt of the submissions will be
acknowledged by e-mail. Authors should inquire in case a prompt
acknowledgment is not received.

Correspondence and questions should be sent to [EMAIL PROTECTED]

Steering Committee
Martin Abadi, Bell Labs
Kim Bruce, Williams College
Luca Cardelli, Microsoft Research
Kathleen Fisher, ATT Labs
Benjamin Pierce, University of Pennsylvania (chair)
Didier Remy, INRIA Rocquencourt

Program Chair
Martin Odersky, Swiss Federal Institute of Technology Lausanne, 
[EMAIL PROTECTED]

Program Committee
Viviana Bono,  Universita di Torino
Craig Chambers,  University of Washington
Erik Ernst,  University of Aalborg
Giorgio Ghelli,  University of Pisa
Atsushi Igarashi,  University of Tokyo
Shriram Krishnamurthi,  Brown University
Clemens Szyperski,  Microsoft Research
Jan Vitek,  Purdue University

___
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell



Postdoc and PhD Student Position Announcement

2000-09-05 Thread Martin Odersky


EPFL Lausanne
  Programming Methods Group
 Prof. Martin Odersky

For the Project "Practical Implementations of Functional Nets", funded
in part by the Swiss National Science Foundation, we are looking for

 * Postdoctoral researcher (1 or 2 year term),
 * PhD student (fully funded).

The project explores novel implementation techniques for programming
languages which lie in the intersection of the functional,
object-oriented, and concurrent language families. The positions offer
exciting opportunities for research in a young but rapidly growing
group.

Postdoctoral applicants should have a strong background in  
at least two of the following areas:   

- programming language design and implementation,
- functional programming,
- object-oriented programming,
- concurrent and distributed systems.

The ideal candidate will have a lively interest in both system
building and theory. She or he will enjoy the opportunity to work
collaboratively with other researchers and PhD students at the
programming methods group at EPFL.

The appointment is for one year with a possible renewal.

PhD student applicants should have strong research interests in one
or more of the areas given above and should like to work on the
boundary betwen theory and practice. They should have obtained a
degree equivalent to a Swiss EPFL diploma (usually this is a master's
degree, although a B.Sc. with honors might also be considered).  The
duration of PhD studies at EPFL is typically 4 years.

Both positions are open from Fall 2000, with a starting date in Spring
or Fall 2001 also being possible. Compensation is competetive:
CHF 70K+ for the post-doc position, and CHF 50K+ for the
PhD student position (1 CHF ~~ 0.6 U.S$).

Informal inquiries about the positions may be addressed to
[EMAIL PROTECTED] Formal applications should be sent by e-mail
to the following address:

  Madame Yvette Dubuis
  [EMAIL PROTECTED]
  Tel. +41 21 693 5202
  Fax  +41 21 693 6660

To be guaranteed full consideration, applications should be received
by October 15th, 2000. Applications should consist of a curriculum
vitae, a publication list, and the names of three personal references
(two for PhD students).  Please ask your references to send their
letters directly to [EMAIL PROTECTED], there is no need for a
request from us.

EPFL Lausanne is one of two federal universities in Switzerland. It
has one of the most nationally diverse research, teaching and learning
communities in Europe.  Lausanne is situated in very attractive
surroundings in the French-speaking part of Switzerland, on the bord
of Lake Geneva, in close proximity to the Alps.

[apologies if you receive this on multiple lists --MO]





Re: Records and type classes

1995-01-13 Thread Martin Odersky



It seems to be the season for records -- three proposals already and
I'm going to add a fourth one!  Phil Wadler, Martin Wehr and I have
recently completed a paper that describes a radical simplification of
type classes. We restrict overloading to functions that have the
instance type as first argument. We also do away with class
declarations altogether, and keep only a simple form of instance
declaration. 

This is described in the technical report "A second look at
overloading", to be found in the papers section of my WWW home page at
http://wwwipd.ira.uka.de/~odersky.

One nice aspect of our proposal is that it is very much in the spirit
of the Hindley/Milner system in that ambiguous types are impossible
and we can prove that "well-typed programs cannot go wrong".  Another
nice aspect is that it gives us polymorphic record typing for free -
Ohori's version of it, to be precise. By contrast, current Haskell
classes would give us only monomorphic records.

Maybe not so nice is that some features of current Haskell cannot be
expressed, such as overloaded numbers and functions like
"fromInteger".  But note that these are precisely the features that
seem to cause a lot of problems in current Haskell -- ambiguous types
and the monomorphism restriction, to name just two.

In general, there are some interesting relationships between record
typing and overloading. A good way to look at it is by comparing the
role of record field labels with the role of other identifiers. In ML
this correspondence made is very clear by writing the selection of
field "l" as "#l r", i.e. the label acts like a function
identifier. The way I see it, various record type implementations and
proposals can be classified as follows.

CAML Records   : labels behave like non-overloaded identifiers.
John Peterson's Proposal  Different record types must have different labels.

SML Records : labels behave like overloaded identifiers, 
  using ML's overloading concept. Compiler
  complains if record type is not statically
  known.

Ohori's Records : labels behave like overloaded identifiers, 
  using our overloading type system. Compiler
  never complains.

Mark Jones' records : a special instance of Mark's framework
  for qualified types. (Mark, I don't have
  your thesis at hand right now, so please
  fill in or correct if this is inaccurate).

I don't know enough about Giuliano Procida's proposal to be able to
classify it.

Cheers
 
 -- Martin





Re: Multiple parameters to classes

1992-05-07 Thread Martin Odersky


Phil Wadler writes:

 The GRASP team at Glasgow is putting the finishing touches on a paper
 that formally describes type classes as implemented in Haskell, which
 you may find helpful.  We will post a pointer to this paper when it's
 done.  I hope Mark Jones and Martin Odersky will also post pointers to
 their recent work in this area.

Kung Chen, Paul Hudak, and I have looked into the problem of extending
Haskell's type system such that container type classes become
possible.  Examples of such classes are "Sequence" (with instance types
List and Array, for instance), or "Monad". Last year, there was some
discussion on this mailing list as to whether this requires
second-order unification. Well, fortunately it doesn't. The results
are found in the paper "Parametric Type Classes". It can be picked up
by anonymous ftp from

nebula.cs.yale.edudirectory:   pub/haskell/papers


-- Martin




Re: Existential types

1992-03-19 Thread Martin Odersky


Nigel,

I am sorry if I have said something wrong in my posting. I agree that
the example I gave was insufficient to disprove soundness of Hope+C.
On the other hand, no example can *prove* soundness of a type system.
So, let me try a bit further. What happens if I extend your
example as follows [I can read Hope but writing it is another
matter, so forgive me if I stick to Haskell :-)]:

let unpack w= let Win x = w in x
same (x, y) = unpack x == unpack y
in
same (index (wl, 1), index (wl, 2))

Does that type? Looking at your typing rules I thought it would, but
please correct me if I am wrong.

-- Martin






Objects with state, or FP + OOP = Haskell++

1992-03-17 Thread Martin Odersky


Evan Ireland writes:

 My formal proposal for existential types in Haskell is "make them the same as
 in Hope+C".

This message is to point out some of the difficulties and possible
solutions we have encountered with existential types.

It seems to be rather difficult to establish soundness of type systems
with existential types. The reason is that these systems usually rely
on "Skolemization", a meta-logical construct. In fact, the original
type system of Hope+C seems to be unsound, since Skolem-constants can
escape the body of polymorphic functions and therefore cause different
types to be identified. Here is a (simplified) example:

Suppose we have a heterogeneous list of windows:

ws:: [ex a. Win a = a]

and an indexing function

index:: [ex a. Win a = a] - Int - ex a. Win a.

Then,

  index ws 1 :: ex a. Win a = a
  index ws 2 :: ex a. Win a = a

but, since the list is heterogeneous, we can not expect that the result
of the two applications of "index" are the same. This is reflected by
the fact that (ex a. Win a = a) is a type scheme, not a type. To get
at the "true" type of a value, the value has to be "opened". In our
example, both index-applications have to be opened separately,
resulting in two different types. Therefore, all is well in type
systems such as Mitchell  Plotkin's which have true existential
types.

If we use Skolemization, however, it is easy to run into problems if we
are not careful. The "obvious" Skolemized type for index would be

[Win A = A] - Int - Win A

(Skolem constants written as single capitals here). But then,

index ws 1: A
index ws 2: A

and we conclude that "index" returns the same type every time!

So why not use MitchellPlotkin's system, which does not rely on
Skolemization? Unfortunately, this system does not have the principal
type property, and, therefore, has no type reconstruction.

A system which *has* principal types and comes with a soundness proof
is the topic of Konstantin Laufer's thesis at NYU which is currently
being written up. This system also uses Skolemization, but it
carefully restricts the scopes of Skolem constants. The problem of
designing a type system for existential types that has the principal
type property and at the same time does not rely on Skolemization
is still open, as far as I know.

Martin Odersky
Yale University



References:

@inproceedings{
AUTHOR = "Mitchell, J. and Plotkin, G.",
BOOKTITLE = "Proc. 12th ACM Symp. on Principles of Programming Languages",
PAGES = "37-51",
TITLE = "{Abstract Types have Existential Type}",
YEAR = "1985"}

@inproceedings{
AUTHOR = {K. L\"{a}ufer and M. Odersky},
TITLE = {Type Classes are Signatures of Abstract Types},
BOOKTITLE = {Proc. Phoenix Seminar and Workshop on Declarative
 Programming},
MONTH = nov,
YEAR = {1991}
}

@inproceedings{
AUTHOR = {L\"{a}ufer, K. and Odersky, M.},
TITLE = {An Extension of ML with First-Class Abstract Types},
BOOKTITLE = {Proc. ACM SIGPLAN Workshop on ML and its Applications},
YEAR = {1992}
}