LtU Forum

Yet another programming language forum

If any language designers are interested, I am offering to host forums dedicated to their language at http://www.heron-forums.com and give them moderator privileges.

For any other who happens to really love programming language oriented weblogs, I might as well plug my own at the same time at http://www.heron-centric.com which focuses on the Heron programming language.

Domain Specific Languages hierarchy discussion

Reflection in logic, functional and object-oriented programming: a Short Comparative Study

Reflection in logic, functional and object-oriented programming: a Short Comparative Study

Abstract: Reflection is a wide-ranging concept that has been studied independently in many different areas of science in general, and computer science in particular. Even in the sub-area of programming languages, it has been applied to different paradigms, especially the logic, functional and objectoriented ones. Partly because of different past influences, but also because researchers in these communities scarcely talk to each others, concepts have evolved separately...

Quite an old paper, but pretty interesting. And yes, it mentions reflective towers and Frege :)

A Debugging Environment for Lazy Functional Languages

A Debugging Environment for Lazy Functional Languages
Abstract: This paper describes a new approach for debugging lazy functional languages. It rests on the fact that a functional program is the transformation of an expression; one debugs a program by investigating the syntactic form of the expression and by stopping the reduction process at given points. We show what problems are involved and our approach to solving them in a prototype implementation.
I remember there was a discussion of difficulties with lazy FPL debugging, and I didn't find a reference to this paper on LtU, so...

PS: beware, "a new approach" means around 96-99 :)

Securing reflective towers

While reading papers on (behavioral) reflection, I keep pondering - how are they going to establish and maintain security in famous "reflective towers"? I have difficulties to understand, whether trying to do capabilities security in reflective setting is not going to result in infinite regress.

One would probably want to provide reflection via capabilities, which themselves may be a subject of reflective interest, etc.

I am not sure capabilities are any different from standard "turtles all the way down" issues of reflection (and meta-programming), though. I would like to come up with some formal model to play with it, but didn't succeed yet (probably I need to think a bit longer :) ). Does anybody have some pointers/ideas on how capabilities and reflection interwingle?

Database File System

Courtesy of Slashdot, and not really about languages per se, just an interesting project that happens to have been written in OCaml, dbfs.

The Human-Language Interface

The Human-Language Interface

PowerPoint slides from Matthias Felleisen's presentations page. He discusses the HtDP educational philosophy and PLT research experience.

Some of the figures are undecipherable, but there's lots of interesting stuff in there. The pedagogical approach to the human factors issues of programming languages has turned out to be really productive.

(P.S. - Is there anything un-politic about posting references to your own professor's work?)

Linguistic Reuse

"An age old question asked of language design is whether or not library design is language design. Because interfaces are themselves little languages, and libraries implement interfaces, library design must be a form of linguistic extension, even if an extremely rudimentary one. In practice, library design is difficult, and the hard problems that library designers encounter - how to balance hiding and exposing functionality, how to preserve invariants, what types to create, export and make opaque, what static and dynamic scope operators to provide, and so forth - are really linguistic ones. So it is heartening to note that the design of unit/lang not only encompasses this form of language extension, but blurs the distinction between these two forms in a way traditional language extension mechanisms (such as macro systems, extensible grammars or operator overloading) do not."
p67 "Linguistic Reuse" DPhil thesis 2001 pdf Shriram Krishnamurthi

Musical programming and languages

Over on Slashdot I saw a thing about a guy hacking Perl in a live musical performance, and it got me wondering again if music and programming can be fused even more tightly, so that code itself is musical?

Being something of a geek for obfuscated languages, I wrote one of my own called SC5, which is based upon the simon-says dance commands from the video game "Space Channel 5". The idea is that the same program text can be executed as an algorithm or performed as a rhythmic piece (as in the game). Unfortunately I haven't yet written an interpreter that will perform SC5 code musically but theoretically, anyway, it's possible.

Anyone else interested in this sort of thing?

Higher order versus Object order

Without wishing to cause a flame war, ..., well actually I do wish to start a discussion ...:)

For the last 25 years I have been working on programming languages roughly in the logic programming/functional programming paradigms.

About 10 years ago I embarked on a research trajectory involving moving from Prolog's 'meta-order' approach to a higher-order approach.

The reasons were technical: meta-order sucks from a software engineering POV.

However, recently, I have changed my mind. Or rather, changed direction.

While robust, HO does not deal with OO programming all that well. (Start flame wars here)

The reason is that OO involves combinations that are difficult for HO styles of programming.

On the other hand, OO does nearly everything that HO can do. I would argue, that at a slight loss of elegance, OO does *everything* that a good software engineer wants to do.

My reasoning is based on the fact that an object can act as a kind of closure but a closure cannot capture the multiple uses of an object - together with the interface contract.

BTW, as far as I am concerned, OO is *not* equivalent to inheritance+subtypes+methods+classes+instances. Those are techniques useful in some situations.

For me, OO is fundamentally about encapsulation and interfaces. The rest is noise (in my opinion of course)

So, in my most recent work, I am throwing out my HO implementations and replacing them with an Object Order implementation....

Comments?

XML feed