archives

Microsoft Phoenix

Microsoft Phoenix
Phoenix is a software optimization and analysis framework that will be the basis for all future Microsoft compiler technologies.

Is "type" a fundamental intrinsic property of values?

I've recently been doing some experiments with Tcl (which is untyped, or mono-typed; everything is a string), in particular working on a package (called TOOT) which allows types to be created (in a vaguely OO fashion) and then associated with values. The method for associating a type with a value is to create a new value consisting of a tuple (type,value) where this is represented in Tcl as a list of two elements: the first being a command name representing a type, and the second being the original value.

It struck me that the key concept here is that all values stored in a computer have no intrinsic type. That is, you can never actually store a number in a computer, only a representation of a number, for example. When you associate a type with a representation, you create an interpretation. Performing some operation on a value implies interpreting that value in some way, but different operations can apply different interpretations (the "type" is an extrinsic property of the value).

The package I am developing allows creating functions which encapsulate some interpretation of a value, much like classes in an OO language. This type-function can then be curried with a particular value to create a default interpretation of that value, which can then be passed around. Other operations can then either use this default interpretation, or ignore it and apply some other interpretation to the underlying representation.

This seems to be a quite different view to that embodied in most mainstream languages that I've come across, where values have a fundamental, intrinsic type. This isn't my area at all, so I thought I'd ask here for expert opinion. Is this a valid viewpoint? Is it an important distinction (between intrinsic and extrinsic typing)? Pointers to relevant theory, etc would also be greatly appreciated, and I hope this is on-topic.

Feedback

Best way to tell others what you think is to use the discussion group, or become a contributor yourself.

For other stuff, just mail me.

Please note: We are taking preemptive measures to block user accounts that seem suspicious. If you think you are blocked accidentally, let me know and I'll take care of the problem.

Whiteboard with Anders Hejlsberg

Link: MSDN TV: Whiteboard with Anders Hejlsberg

(The cameras seem to be following Anders around these days).

Anders answers questions from Tech-Ed audience about C# design decisions and possible future directions of the language. A number of subjects are discussed, including AOP, multiple inheritance, closures, guaranteed dispose, etc...

I'm about 30 minutes into the hour and a half video. Quite interesting from a PL perspective. I'll enter my notes into the comments section as time permits.

Fabian Pascal on XQuery

I think Pascal's style of argumentation is a model of how not to do it ("it" in this case being the remedy of ignorance and the construction of informed consensus - or the setting of terms for informed debate), but be that as it may - he makes a few good points here:

If you liked SQL, you'll love XQuery

Among the good points that he makes are these:

  • If XML's point is to be language-independent, why an XML-specific language?
  • If XML's point is to be database-independent, why reinvent the data management wheel (and, we shall argue, a "square wheel" at that?)
  • If XML is for syntactic interchange, can it be used for semantic data management?

Pascal's contention is that XQuery's language design cannot achieve its goals because of the designers' neglect of fundamentals (by which he means the Word of Codd). What are the foundations of XQuery? Is Pascal's preference for Codd's relational model over models based on graph theory as dogmatic as it sounds?

Mozart/Oz conference MOZ2004 - final CFP

I would like to remind you of MOZ 2004, the Mozart/Oz conference, whose submission deadline is coming up quickly (normally July 9, but due to several requests we will probably extend it by one week). The conference will be held on October 7-8 in Charleroi, Belgium. Highly recommended if you want to get the latest scoop on what is going on in the Mozart/Oz community. Many Mozart researchers and developers will attend too, and we expect lots of animated discussions. We'll also have two very interesting invited speakers, Gert Smolka and Mark Miller.

Another point that might interest people is that we've put a full set of lecture slides (more than 1000) on the CTM Web site (click on Supplements). The slides were made by Christian Schulte and Seif Haridi. The course is rather nontraditional. It might even be viewed as heretical in some quarters (we dare introduce concurrency before state, and we don't even mention inheritance). But we think it's a good way to start learning programming. The lecture slides only cover one third of the book, though, so if you want to see the other two thirds you'll have to get the book.

gmane hosting?

Hey, for those of us who abhor web browsers and love newsreaders, could you guys feed to gmane.org? At the simplest level all it would require is sending an email to a designated address every time a new article is posted, but there are much more interesting possibilities beyond that.

Thanks!