The Limits of the Semantic Extensibility of Computer Programs

I'm curious if there have been studies on the limits of semantic extensibility by computer programs. I'm not entirely sure how to phrase exactly what I mean. It's kind of like "what are the limits to how much 'environmental extensibility' a computer program can have?" I imagine the answer is related to type theory, somewhere along the lines of it being limitted based on predefined type information, but I'm not quite sure where to start looking.

This type of information would be useful when building models and meta-models, to know when "architectural astronauting" (to use a Spolsky term) isn't going to get you any more real benefits, anyway.

Sorry for the confused question. The concepts are a bit confused in my mind. Which is why I brought it here, because I imagine some of you know if anyone has done work in this area.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Perhaps a better phrasing

Perhaps a better phrasing of the question would be:

"Is there a limit to what kind of learning semantic learning algorithms can perform without being re-coded?"

Ah.. What's the quote again...

I can't lay may browser on the exact quote now, but it goes something like..., "Every Program sufficiently large, has embedded within in it, a poorly implemented version of Common Lisp."

I have deep noxious suspicion this is where this question is heading...

ie. Any program sufficiently large has a configuration / macro / extension language within it that...
a) basically allows you to do anything in it.
b) is a really poorly thought out and dumb version of

Rule 0: The first thing anyone will want to do in it is write a self propagating virus.

Rule 1: If you constrain it, ala' Java sandbox / Flash, you cannot actually do anything useful. Just lame games and toys.


not sure if flash is always just lame toys, the deng browser springs immediately to mind whenever I think of something immensely cool in flash.

also can one do something cool if one constrains it, but with a different constraint model than java/flash, or will all constraints lead to the system being trivial?
Just to set my place, most languages are basically constrained in some way. DSL's are of course very constrained in what they can do. A good set of constraints enforces discipline and also shows a good understanding of the problem area the language addresses best.

That's Greenspun's Tenth Rule of Programming

Greenspun's Tenth Rule of Programming: "Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of Common Lisp."
He also mentions:

On the Squeak discussion group, Vassili Bykov helpfully explained the meaning: "that complex systems implemented in low-level languages cannot avoid reinventing and/or reimplementing (poorly on both counts) the facilities built into higher-level languages. Like garbage collection in OLE or keyword arguments in X."

Quotes page

It's about time I added this to the quotations page... Done.