Nameless Language 
Author Message
 Nameless Language

Hi all,
I've been working on a language for a little while now, and I think I have
the basics all hammered out.  I wanted to post it here for some questions,
comments and things I have not thought of.

The goal of the language is to replace assembly.  Sort of like HLA(high
level assembly) only a bit higher level.  However you should be able to
write any type of code using it.  i.e. From boot sector to space invaders.

It's a very simple language, based on a "spoken language" interface.

There are only a few commands.  The most often used will be "get" and "put".

There are 2 types of variables : values and databases

Values are types like : strings, numbers, bitmaps.  There is a predefined
maximum size of 256, but this can be manually altered to suit needs.

Databases are used like hashes, or records, or structs.
They contain a list of values that can be indexed by field name or by
number.

The basic language supports arithmatic and I/O just like assembly.  There
will of course be libraries that expand the functionality.

"import" and "export" commands will allow connections to libraries.

Command syntax example (hello world) :

value name
value reply
get name from stdin
//"from stdin" is default and can be omitted
reply = "Hello, " + name
put reply into stdout
//again "into stdout" is default and can be omitted

Please ask any questions you have, I really want this to succeed, and
would like some input, etc. since I'm sure I have not explained this as
well as I would have liked to.



Mon, 30 Jan 2006 01:34:14 GMT  
 Nameless Language

Quote:
> Hi all,
> I've been working on a language for a little while now, and I think I have
> the basics all hammered out.  I wanted to post it here for some questions,
> comments and things I have not thought of.

> The goal of the language is to replace assembly.  Sort of like HLA(high
> level assembly) only a bit higher level.  However you should be able to
> write any type of code using it.  i.e. From boot sector to space invaders.

Have you thought about why you want to create your own language (besides to
learn)?  Are you trying to make up for flaws in other languages?  Is it
statically or dynamically typed?  Have you looked at AppleScript?  It has a
'spoken language' interface.  Before writing a language, it is best to learn
as many as you can, to learn all the different aspects of programming.  Do
you know Scheme? Smalltalk? ML?  I have been toying with a language design
for the past couple years, and things are still not concrete.

Best of luck,
Mike


Quote:
> Hi all,
> I've been working on a language for a little while now, and I think I have
> the basics all hammered out.  I wanted to post it here for some questions,
> comments and things I have not thought of.

> The goal of the language is to replace assembly.  Sort of like HLA(high
> level assembly) only a bit higher level.  However you should be able to
> write any type of code using it.  i.e. From boot sector to space invaders.

> It's a very simple language, based on a "spoken language" interface.

> There are only a few commands.  The most often used will be "get" and
"put".

> There are 2 types of variables : values and databases

> Values are types like : strings, numbers, bitmaps.  There is a predefined
> maximum size of 256, but this can be manually altered to suit needs.

> Databases are used like hashes, or records, or structs.
> They contain a list of values that can be indexed by field name or by
> number.

> The basic language supports arithmatic and I/O just like assembly.  There
> will of course be libraries that expand the functionality.

> "import" and "export" commands will allow connections to libraries.

> Command syntax example (hello world) :

> value name
> value reply
> get name from stdin
> //"from stdin" is default and can be omitted
> reply = "Hello, " + name
> put reply into stdout
> //again "into stdout" is default and can be omitted

> Please ask any questions you have, I really want this to succeed, and
> would like some input, etc. since I'm sure I have not explained this as
> well as I would have liked to.



Wed, 01 Feb 2006 04:03:02 GMT  
 Nameless Language
I know several languages, however for the longest time I have been unhappy
with the complexity and bulk of traditional languages.  Sure C is
powerful, but how big are the executables?  Perl is flexable, but how slow
is it?  Script based languages (mostly) can't be compiled.  Assembly is
just too complex for the casual programmer.  I have studied all these and
more, by far assembly is my favorite because of the power and size.
However to write a large program in assembly takes a good deal of
planning.
The language I'm building right now will replace assembly by offering the
best of all worlds.
        1. Spoken Language Interface
        2. Compact Executables
        3. Speed and Performance
        4. Simple Integrated Development Environment
        5. Can be used as : Script, Universal Binary, or Binary
                Universal Binary being a binary file that can be
                run on any platform.

It may be a little ambitious on my part, but I hope to see in the future,
many people using my language.
It's my belief that programs on the whole have become too big and sloppy,
I hope to cure this problem with my language.



Sat, 04 Feb 2006 00:19:11 GMT  
 Nameless Language

Quote:

> I know several languages, however for the longest time I have been unhappy
> with the complexity and bulk of traditional languages.  Sure C is
> powerful, but how big are the executables?  Perl is flexable, but how slow
> is it?  Script based languages (mostly) can't be compiled.  Assembly is
> just too complex for the casual programmer.  I have studied all these and
> more, by far assembly is my favorite because of the power and size.
> However to write a large program in assembly takes a good deal of
> planning.
> The language I'm building right now will replace assembly by offering the
> best of all worlds.
>    1. Spoken Language Interface
>    2. Compact Executables
>    3. Speed and Performance
>    4. Simple Integrated Development Environment
>    5. Can be used as : Script, Universal Binary, or Binary
>            Universal Binary being a binary file that can be
>            run on any platform.

        6. No complex redistributables dependancies?


Sat, 04 Feb 2006 02:03:35 GMT  
 Nameless Language

Quote:
>> The language I'm building right now will replace assembly by offering the
>> best of all worlds.
>>        1. Spoken Language Interface
>>        2. Compact Executables
>>        3. Speed and Performance
>>        4. Simple Integrated Development Environment
>>        5. Can be used as : Script, Universal Binary, or Binary
>>                Universal Binary being a binary file that can be
>>                run on any platform.

>         6. No complex redistributables dependancies?

There are probably many more plusses to the direction I am going with this
language.  It's IDE will function much like the programs Dia and Visio.
The user will draw up a flowchart, with this language in each box.
The Spoken Language Interface allows the design to be easilly viewed as a
project as opposed to a program.  Functions can be removed and program
flows changed by simply adding a shape, and changing some connection
lines.


Sat, 04 Feb 2006 03:26:41 GMT  
 Nameless Language

Quote:

> The language I'm building right now will replace assembly by offering the
> best of all worlds.
> 1. Spoken Language Interface
> 2. Compact Executables
> 3. Speed and Performance
> 4. Simple Integrated Development Environment
> 5. Can be used as : Script, Universal Binary, or Binary
> Universal Binary being a binary file that can be
> run on any platform.

Why do you think you can do better than existing languages?

Every language implementor tries to make compiled programs small and fast,
every language designer tries to make syntax readable, and they don't limit
ways in which programs can be compiled without reasons. These goals are much
easier to state than to fulfill.

Especially as you claim to make it better for everything in all respects.
Languages are compromises, various goals are conflicting, there is no silver
bullet.

Every language starts small and too simple to be usable. Then features and
libraries are added over time, and when it's finally rich enough to write
a variety of complex programs in it, it's no longer small and elegant
(e.g. Common Lisp). Or it stays small and elegant, but is usable mostly
for academic research (e.g. Scheme).

Concerning syntax (not the most important facet of a language but it's
the easiest to talk about): you want to make it look like a human language,
yet the language will be similar to assemblers. These two goals together
seem to imply that programs will be very verbose, and even simple things
will require many words to describe.

I suggest studying more diverse set of languages before designing your own;
you will be surprised how different basic principles can be. For example
Lisp, Smalltalk, Haskell, C#, Prolog and Forth together cover a lot of
paradigm space as an addition to C and Perl.

--
   __("<         Marcin Kowalczyk

    ^^     http://qrnik.knm.org.pl/~qrczak/



Sat, 04 Feb 2006 03:53:00 GMT  
 Nameless Language

Quote:
> Why do you think you can do better than existing languages?

Because I think that programmers as a whole overcomplicate the problems at
hand because that is how they have been taught to.
Not ALL mind you, I have seen some VERY skillfully written programs in any
language.  However, when they go through the compilers, there is still too
much garbage.
Years ago, when computers had only a few kilobytes of memory, computer
programmers had to work to find ways to optimize their code, and produce
the same results as some fairly bulky programs today.
I will create a programming language that will simplify and empower
programmers.

Quote:
> Every language implementor tries to make compiled programs small and fast,
> every language designer tries to make syntax readable, and they don't limit
> ways in which programs can be compiled without reasons. These goals are much
> easier to state than to fulfill.

Again, I believe that this is because of overcomplication.

Quote:
> Especially as you claim to make it better for everything in all respects.
> Languages are compromises, various goals are conflicting, there is no silver
> bullet.

Correct, there is no silver bullet.  But there could be.
Maybe that's what I'll name this language "Silver"...

Quote:
> Concerning syntax (not the most important facet of a language but it's
> the easiest to talk about): you want to make it look like a human language,
> yet the language will be similar to assemblers. These two goals together
> seem to imply that programs will be very verbose, and even simple things
> will require many words to describe.

Perhaps I miscommunicated my objective.  It will not be a command for
command replacement for assembler, but rather, will be usable to write low
level, even system code.  Maintaining the size and speed of assembly with
the verbosity and simplicity of pseudo-code.

Quote:
> I suggest studying more diverse set of languages before designing your own;
> you will be surprised how different basic principles can be. For example
> Lisp, Smalltalk, Haskell, C#, Prolog and Forth together cover a lot of
> paradigm space as an addition to C and Perl.

I have studied Prolog, Lisp, Pascal, C (ANSI, ++, #), Perl, Python, Basic,
Ada and a few others.  I know how different their principles can be.  I only
chose the two above for examples.

I have every confidence that I can make this happen.  I have no plans to
get rich on this idea.  My goal is to make programming the powerfull,
small, efficient thing that it CAN be.



Sat, 04 Feb 2006 04:37:51 GMT  
 Nameless Language

Quote:
> Correct, there is no silver bullet.  But there could be.
> Maybe that's what I'll name this language "Silver"...

Sounds good to me.  Now start writing code in your language and compile it
in your head.  Then show it's intended purpose - small, powerfull, etc. and
compare it to other languages.  Then factor out ambiguities - that becomes a
task in itself.  For example, in Io (www.iolanguage.com) 'a <- 10' (copy
value) and 'a < -10' (a condition) mean completely different things .  Use
lots of syntax test cases to catch as much as you can.
Now if you are going to be somewhat like assembly and are going to do system
programming, that means low level types, and access to memory.  I think most
new languages try to abstract out memory, and it's a good thing.  How would
you handle memory overwrites such as [char buf[4] = "hello"].  There's a lot
to think about :)

My pet language will be a mix between Python, Self, Smalltalk and Ruby with
functional programming extras.  Dynamic typing, objects and blocks, keyword
arguments, predicate-dispatching, prototype and message based, with a simple
interface to C++.

1..10,2..20 doParallel: i, j  |  puts: i * j

versus:

int i = 1, j = 2;
while( i <= 10 ) {
  printf( "%d\n", i * j );
  i++; j++;

Quote:
}

~ Mike ~


Quote:
> > Why do you think you can do better than existing languages?

> Because I think that programmers as a whole overcomplicate the problems at
> hand because that is how they have been taught to.
> Not ALL mind you, I have seen some VERY skillfully written programs in any
> language.  However, when they go through the compilers, there is still too
> much garbage.
> Years ago, when computers had only a few kilobytes of memory, computer
> programmers had to work to find ways to optimize their code, and produce
> the same results as some fairly bulky programs today.
> I will create a programming language that will simplify and empower
> programmers.

> > Every language implementor tries to make compiled programs small and
fast,
> > every language designer tries to make syntax readable, and they don't
limit
> > ways in which programs can be compiled without reasons. These goals are
much
> > easier to state than to fulfill.

> Again, I believe that this is because of overcomplication.

> > Especially as you claim to make it better for everything in all
respects.
> > Languages are compromises, various goals are conflicting, there is no
silver
> > bullet.

> Correct, there is no silver bullet.  But there could be.
> Maybe that's what I'll name this language "Silver"...

> > Concerning syntax (not the most important facet of a language but it's
> > the easiest to talk about): you want to make it look like a human
language,
> > yet the language will be similar to assemblers. These two goals together
> > seem to imply that programs will be very verbose, and even simple things
> > will require many words to describe.

> Perhaps I miscommunicated my objective.  It will not be a command for
> command replacement for assembler, but rather, will be usable to write low
> level, even system code.  Maintaining the size and speed of assembly with
> the verbosity and simplicity of pseudo-code.

> > I suggest studying more diverse set of languages before designing your
own;
> > you will be surprised how different basic principles can be. For example
> > Lisp, Smalltalk, Haskell, C#, Prolog and Forth together cover a lot of
> > paradigm space as an addition to C and Perl.

> I have studied Prolog, Lisp, Pascal, C (ANSI, ++, #), Perl, Python, Basic,
> Ada and a few others.  I know how different their principles can be.  I
only
> chose the two above for examples.

> I have every confidence that I can make this happen.  I have no plans to
> get rich on this idea.  My goal is to make programming the powerfull,
> small, efficient thing that it CAN be.



Sat, 04 Feb 2006 11:04:40 GMT  
 Nameless Language

Quote:

>>>    3. Speed and Performance
>>>    4. Simple Integrated Development Environment
>>>    5. Can be used as : Script, Universal Binary, or Binary
>>>            Universal Binary being a binary file that can be
>>>            run on any platform.

>>         6. No complex redistributables dependancies?

> There are probably many more plusses to the direction I am going with this
> language.

Sounds more like direction you want to go with the IDE. And that still doesn't
answer the questions. Small libraries (say 100 kb max), and no other stuff
when I would want to distribute a program generated in your language?

  It's IDE will function much like the programs Dia and Visio.

Quote:
> The user will draw up a flowchart, with ~this language in each box.

Ouch, my arm hurts if I only think of that.

Quote:
> The Spoken Language Interface allows the design to be easilly viewed as a
> project as opposed to a program.  Functions can be removed and program
> flows changed by simply adding a shape, and changing some connection
> lines.

Instead of simply a call and a few lines code?


Sat, 04 Feb 2006 15:05:55 GMT  
 Nameless Language

 >> Why do you think you can do better than existing languages?
 S> Because I think that programmers as a whole overcomplicate the problems at
 S> hand because that is how they have been taught to.

There are three famous quotes by Alan Perlis that seem to pertain to your
project,

53:  So many good ideas are never heard from again once they embark in a
     voyage on the semantic gulf.

65:  In a 5 year period we get one superb programming language. Only we
     can't control when the 5 year period will begin.

93:  When someone says "I want a programming language in which I need only
     say what I wish done," give him a lollipop.

(The complete list can be found on
http://www-pu.informatik.uni-tuebingen.de/users/klaeren/epigrams.html )

--

Universit?t Tbingen, Informatik   | Voice    +49 7071 29 75457, Secr.: 78955
Sand 13, 72076 Tbingen, Germany   | Fax      +49 7071 29 5062
http://www-pu.informatik.uni-tuebingen.de/users/klaeren



Sat, 04 Feb 2006 16:27:30 GMT  
 Nameless Language

Quote:
> Sounds more like direction you want to go with the IDE. And that still doesn't
> answer the questions. Small libraries (say 100 kb max), and no other stuff
> when I would want to distribute a program generated in your language?

The reason you would want to use this language is that the generated
executable files will be small, and fast, just as if you had written it in
assembly.  But much easier to read, and change.

Quote:
>   It's IDE will function much like the programs Dia and Visio.
>> The user will draw up a flowchart, with ~this language in each box.

> Ouch, my arm hurts if I only think of that.

Good point.  Traditional programmers could still use the text input mode,
and that code would be transformed into a flowchart.  It just gives you a
nicer view of the code.

Quote:
>> The Spoken Language Interface allows the design to be easilly viewed as a
>> project as opposed to a program.  Functions can be removed and program
>> flows changed by simply adding a shape, and changing some connection
>> lines.

> Instead of simply a call and a few lines code?

It depends on the complexity of your code.  I find it difficult when I
want to change program flow.  I tend to write very structured, with lots
of spaces, indents, etc.  For an easy to read source code.  It makes it
very difficult if you want to insert a loop in the code.  You have to go
back and re-indent all of your code within the loop.  Then what if you
decide you want to remove it after all?


Sun, 05 Feb 2006 00:11:57 GMT  
 Nameless Language
There are three famous quotes by Alan Perlis that seem to pertain to your

Quote:
> project,

> 53:  So many good ideas are never heard from again once they embark in a
>      voyage on the semantic gulf.

> 65:  In a 5 year period we get one superb programming language. Only we
>      can't control when the 5 year period will begin.

> 93:  When someone says "I want a programming language in which I need only
>      say what I wish done," give him a lollipop.

Thanks!
Seriously, I do understand the size of the project I am undertaking.  But
I fully expect to succeed.


Sun, 05 Feb 2006 00:17:08 GMT  
 Nameless Language

Quote:



> > Correct, there is no silver bullet.  But there could be.
> > Maybe that's what I'll name this language "Silver"...

> Sounds good to me.  Now start writing code in your language and compile it
> in your head.  Then show it's intended purpose - small, powerfull, etc. and
> compare it to other languages.  Then factor out ambiguities - that becomes a
> task in itself.  For example, in Io (www.iolanguage.com) 'a <- 10' (copy
> value) and 'a < -10' (a condition) mean completely different things .  Use
> lots of syntax test cases to catch as much as you can.

Unless you design the language *really* well (as in, superhumanly well),
it *will* have idiosyncrasies, ambiguities, and pitfalls.  In *my* pet
language, Day-9 [a really low-level thing], for example, I decided to
make "unary minus" bind very tightly to decimal numbers in order to
treat numbers like "-100" as atomic units.  The rest of the syntax looks
a lot like C.  So

    -99[x]   =  *((-99)+x)
    -x[99]   =  -(*(x+99))

even though you'd expect symmetry.  Little things like this, I think,
give each language its own "personality" -- but they do make languages
harder to learn completely, and thus harder to use effectively.

Quote:
> My pet language will be a mix between Python, Self, Smalltalk and Ruby with
> functional programming extras.  Dynamic typing, objects and blocks, keyword
> arguments, predicate-dispatching, prototype and message based, with a simple
> interface to C++.

> 1..10,2..20 doParallel: i, j  |  puts: i * j

> versus:

> int i = 1, j = 2;
> while( i <= 10 ) {
>   printf( "%d\n", i * j );
>   i++; j++;
> }

Gee, I'm glad *you* understand that. ;-)  Should the first program
really read

  1..10,2..11 doParallel: i, j  |  puts: i * j

or should the C++ program have another 'j++;' in it somewhere?
(If the latter, then I'm really impressed; your language must have
automagic rivalling Perl's! :)

-Arthur



Sun, 05 Feb 2006 02:08:53 GMT  
 Nameless Language

Quote:

> It depends on the complexity of your code.  I find it difficult when I
> want to change program flow.  I tend to write very structured, with lots
> of spaces, indents, etc.  For an easy to read source code.  It makes it
> very difficult if you want to insert a loop in the code.  You have to go
> back and re-indent all of your code within the loop.  Then what if you
> decide you want to remove it after all?

Acutally if I inserted a new loop or whatever, it needs me to press
gg=G and VIm will reindent my code perfectly... _That_ surely needs less
time than drawing some lines with my mouse.


Sun, 05 Feb 2006 09:17:07 GMT  
 Nameless Language


Quote:
> Unless you design the language *really* well (as in, superhumanly well),
> it *will* have idiosyncrasies, ambiguities, and pitfalls.  In *my* pet

True, but I think creating test cases for syntax is a good idea and can find
many problems.

Quote:
>     -99[x]   =  *((-99)+x)
>     -x[99]   =  -(*(x+99))

I think I get what you are saying,  But how often do you use negative array
offset? :)
Where can I find more information about your language?

Quote:
> Gee, I'm glad *you* understand that. ;-)  Should the first program
> really read

>   1..10,2..11 doParallel: i, j  |  puts: i * j

Yes it should, my mistake!  In python indentation style, just drop the | :

1..10,2..11 doParallel: i, j
    puts: 'i * j = ', i * j

Lists are anything separated by commas, ranges are anything between (..)s.
1..10,2..20 becomes a list of ranges, actually an array of ranges since it
is namless and non-mutable.  This pet is still young, and syntax will likely
change as it has in the past.  I have a runtime, and I've just been working
on the parser.  I should have something runing soon.

Although people will deny it, I think Smalltalk has too many symbols
(pseudo-st):

#[1..10,2..11] doParellel: [ | i, j |
    Transcript show: 'i * j = ', (i * j) asString ].

And a little wordy in places:

array at: 10 put: 10.

~ Mike ~



Quote:




> > > Correct, there is no silver bullet.  But there could be.
> > > Maybe that's what I'll name this language "Silver"...

> > Sounds good to me.  Now start writing code in your language and compile
it
> > in your head.  Then show it's intended purpose - small, powerfull, etc.
and
> > compare it to other languages.  Then factor out ambiguities - that
becomes a
> > task in itself.  For example, in Io (www.iolanguage.com) 'a <- 10' (copy
> > value) and 'a < -10' (a condition) mean completely different things .
Use
> > lots of syntax test cases to catch as much as you can.

> Unless you design the language *really* well (as in, superhumanly well),
> it *will* have idiosyncrasies, ambiguities, and pitfalls.  In *my* pet
> language, Day-9 [a really low-level thing], for example, I decided to
> make "unary minus" bind very tightly to decimal numbers in order to
> treat numbers like "-100" as atomic units.  The rest of the syntax looks
> a lot like C.  So

>     -99[x]   =  *((-99)+x)
>     -x[99]   =  -(*(x+99))

> even though you'd expect symmetry.  Little things like this, I think,
> give each language its own "personality" -- but they do make languages
> harder to learn completely, and thus harder to use effectively.

> > My pet language will be a mix between Python, Self, Smalltalk and Ruby
with
> > functional programming extras.  Dynamic typing, objects and blocks,
keyword
> > arguments, predicate-dispatching, prototype and message based, with a
simple
> > interface to C++.

> > 1..10,2..20 doParallel: i, j  |  puts: i * j

> > versus:

> > int i = 1, j = 2;
> > while( i <= 10 ) {
> >   printf( "%d\n", i * j );
> >   i++; j++;
> > }

> Gee, I'm glad *you* understand that. ;-)  Should the first program
> really read

>   1..10,2..11 doParallel: i, j  |  puts: i * j

> or should the C++ program have another 'j++;' in it somewhere?
> (If the latter, then I'm really impressed; your language must have
> automagic rivalling Perl's! :)

> -Arthur



Mon, 06 Feb 2006 10:43:17 GMT  
 
 [ 32 post ]  Go to page: [1] [2] [3]

 Relevant Pages 

1. ANS nameless CREATE?

2. Nameless Wordsets

3. Nameless does> ?

4. nameless code blocks (was RE: What does Python fix?)

5. A Language Primer required for A Programming Language

6. multi-language vs mono-language, 1/2 (was: Me and FP &c)

7. multi-language vs mono-language, 2/2 (was: Me and FP &c)

8. Speed of FP languages, prospects (was Re: Benchmarking Lazy Functional Languages)

9. language advocacy and language comparison

10. Scripting Language Options List (how to build a language)

11. Use a new language: Structured Programming Language

12. inventory of computer languages / inventaires des languages informatiques

 

 
Powered by phpBB® Forum Software