|New Programming Language: Salmon firstname.lastname@example.org (Chris) (2011-11-02)|
|Re: New Programming Language: Salmon email@example.com (Kaz Kylheku) (2011-11-03)|
|Re: New Programming Language: Salmon firstname.lastname@example.org (Chris) (2011-11-03)|
|From:||Kaz Kylheku <email@example.com>|
|Date:||Thu, 3 Nov 2011 04:37:18 +0000 (UTC)|
|Organization:||A noiseless patient Spider|
|Posted-Date:||03 Nov 2011 15:48:16 EDT|
On 2011-11-02, Chris <firstname.lastname@example.org> 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.
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
(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.
Return to the
Search the comp.compilers archives again.