Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #322

Re: New Programming Language: Salmon

From Kaz Kylheku <kaz@kylheku.com>
Newsgroups comp.compilers
Subject Re: New Programming Language: Salmon
Date 2011-11-03 04:37 +0000
Organization A noiseless patient Spider
Message-ID <11-11-020@comp.compilers> (permalink)
References <11-11-016@comp.compilers>

Show all headers | View raw


On 2011-11-02, Chris <chris@chriswilson.info> wrote:
> I've created a new general purpose programming language and a full
> interpreter for it. I'm looking for early adopters to give it a try
> and give feedback.

I had a good look at your reference manual, etc.

My honest opinion is that you've created a fairly uninteresting 'blub'
language, with new syntax and terminology for doing pretty ordinary things.

For instance:

quarks: objects that enumerate and identify, such that two quarks are
either equal or unequal. New term for "symbol", with limitations.

tagalongs: your new term for "property lists" that can be attached to objects,
easily created with a couple of macros in Lisp and either weak hash tables
or finalizations (non-ANSI, but common extensions) to build the assocation
in a way that doesn't prevent garbage collection of unused objects.
In about 15 minutes of coding, I can make myself the syntax which supports
the following:

  (define-tagalong foo nil) ;; establish default value

  ;; associate some-object with 42 under the key 'foo
  (setf (get-tagalong some-object 'foo) 42)

  ;; retrieve it:
  (get-tagalong some-object 'foo)

  ;; retrieve unassigned tagalong
  (get-tagalong "string" 'foo) ;; yields nil, the default value

  ;; retrieve undeclared tatalong
  (get-tagalong "string" 'blah) ;; error: blah has no default value

  ;; shorthand macro
  (with-tagalongs (foo bar) some-object
    ;; now local symbols foo and bar alias for tagalongs 'foo and 'bar
    ;; of some-object

    (setf foo 42) ;; same as (setf (get-tagalong some-object 'foo) 42)
   )

  (do-tagalongs some-object (indicator value)
     ;; this body iterates over the key/value tagalog pairs of some-object
      )

You've bogged down tagalongs with the possiblity of static type declarations,
which don't really add much value; they are just ways to make the language
get in your way.

> I believe there's always room for new ideas,

Why don't you introduce Salmon on Rosetta Code and try implementing
a few of the tasks, so people can get some rough idea for how it stacks up
against numerous other languages?

In Rosetta, on the same page, people can see how a given task is solved in
Python, Lisp, SNOBOL 4 (!), Visual Basic, Salmon,  C++, you name it.

Back to comp.compilers | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

New Programming Language: Salmon Chris <chris@chriswilson.info> - 2011-11-02 16:06 -0700
  Re: New Programming Language: Salmon Kaz Kylheku <kaz@kylheku.com> - 2011-11-03 04:37 +0000
    Re: New Programming Language: Salmon Chris <chris@chriswilson.info> - 2011-11-03 14:11 -0700

csiph-web