views:

61

answers:

3

Wikipedia says:

Extensible programming is a term used in computer science to describe a style of computer programming that focuses on mechanisms to extend the programming language, compiler and runtime environment.

For example, Tcl lets you write your own control structures. See here.

I'm interested in compiling a list of extensible programming languages that are being used in real-world code. It would be nice if you could supply an example for your language as well.

+3  A: 

Ruby is not strictly an extensible language, but the syntax is flexible and powerful enough that if you squint, it kind of looks like it is... which for many purposes is plenty good enough.

At any rate, people actually use Ruby :-)

Orion Edwards
+2  A: 

Languages in the LISP family (Common Lisp, Guile, et cetera), are extremely extensible--more so than any other language I have ever used. Think of it like the C macro system on steroids. If you were bored enough, you could redefine the + operator as subtraction: now that is extensibility!

LISP has fallen out of fashion in many places, but Guile (a dialect of Scheme) is the official extension language of the GNU Project.

Patrick Niedzielski
+1  A: 

Scala is not strictly extensible either, but you can define what look like operators. For instance when defining a Map, you can use:

val romanNumeral = Map(
    1 -> "I", 2 -> "II", 3 -> "III"
)

The -> is actually a method called on the object 1, but looks like an operator.

MatthieuF