From http://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL
When the interpreter just interprets a language, the answer is
no. The interpreted program, to the
interpreter, is just data; a free
software license like the GPL, based
on copyright law, cannot limit what
data you use the interpreter on. You
can run it on any data (interpreted
program), any way you like, and there
are no requirements about licensing
that data to anyone.
However, when the interpreter is extended to provide “bindings” to
other facilities (often, but not
necessarily, libraries), the
interpreted program is effectively
linked to the facilities it uses
through these bindings. So if these
facilities are released under the GPL,
the interpreted program that uses them
must be released in a GPL-compatible
way. The JNI or Java Native Interface
is an example of such a binding
mechanism; libraries that are accessed
in this way are linked dynamically
with the Java programs that call them.
These libraries are also linked with
the interpreter. If the interpreter is
linked statically with these
libraries, or if it is designed to
link dynamically with these specific
libraries, then it too needs to be
released in a GPL-compatible way.
Another similar and very common case is to provide libraries with the
interpreter which are themselves
interpreted. For instance, Perl comes
with many Perl modules, and a Java
implementation comes with many Java
classes. These libraries and the
programs that call them are always
dynamically linked together.
A consequence is that if you choose to use GPL'd Perl modules or
Java classes in your program, you must
release the program in a
GPL-compatible way, regardless of the
license used in the Perl or Java
interpreter that the combined Perl or
Java program will run on.