SAC was discussed earlier and found having rigid
(non-dynamic) compilation. Whereas a byte-coded or
virtual-machine based approach may be more appealing
in to-day's world; a technology already used in SmallTalk
long time ago. Besides SmallTalk is fully dynamic.
Although a superior choice for dynamic compilation
is .NET, still a good cross-paltform and more widespread
Java alternative sounds feasible.
Below are a few links on the topic. I also have a very
small read-eval-print-loop (REPL) prototype in Java
with sample output below.
So I was thinking, maybe we should create a Wiki page
for the topic to collect such observations, ideas, links
and code snippets?
2+2
4.0
a=Math.cos(1)
0.5403023058681398
b=Math.sin(1)
0.8414709848078965
a*a + b*b
1.0
sum(new double[]{1,2,3});} double sum(double[]a){ double s=a[0]; for(int i=1;
i<a.length;i++)s+=a[i];return s
6.0
The JVM as an (Un)Common Language Runtime.url
http://www.artima.com/weblogs/viewpost.jsp?thread=176597
Add dynamic Java code to your application - Java World.url
http://www.javaworld.com/javaworld/jw-06-2006/jw-0612-dynamic.html
The basics of Java class loaders - Java World.url
http://www.javaworld.com/javaworld/jw-10-1996/jw-10-indepth.html
--- Robert Bernecky <[EMAIL PROTECTED]> wrote:
> 1. The design concepts of SAC are freely transferable to any other
> language,
> or even to another implementation of the same language.
>
> 2. The licensing terms of SAC are, I believe, primarily intended to keep
> the lawyers away from the SAC crew.
>
> 3. The licensing terms of SAC have been under review for
> some time now, and are likely, I suspect, to become
> more liberal.
>
> Bob
>
> On Thu, 2008-01-10 at 09:54 -0800, Jose Mario Quintana wrote:
> > > From: Robert Bernecky <[EMAIL PROTECTED]>
> > >
> > > As for the installed user base problem, the SAC approach appeals to me:
> > > Implement a minimal core language, then define every other
> > > language (e.g., structural verbs - transpose,
> > > rotate, reverse, reshape...) in terms of that core, placing those
> > > definitions in a standard library or include library.
> > >
> > > This approach offers several advantages to the all concerned:
> > >
> > > - non-conforming changes, such as the iota change above, can
> > > be implemented by adding a NEW member to a library, or by
> > > releasing a new library with a different name.
> > > The installed user base can convert apps to the new semantics
> > > at their leisure, or not at all, as they wish.
> > >
> > > - strong optimizations give the library code and user-defined code
> > > the same power.
> > >
> > > - if you don't like the distributed version of, say, iota, you
> > > can just change the definition of it in your library. At your
> > > own peril, of course, if you use other people's code and want it to
> > > work.
> > >
> > > - SAC also lets a user define new types, at no cost in run-time
> > > efficiency, so you are not chained
> > > to the design decisions of the language implementer.
> >
> > SAC looks intriguing; but, for some of us,
> > License Agreement ... Any use of this software with a commercial purpose or
> > in a commercial
> environment is not granted by this license and requires explicit permission.
> > makes it academic.
> >
> > >
> > > Bob
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search.
http://tools.search.yahoo.com/newsearch/category.php?category=shopping
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm