Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > Another crazy new language effort - Language #42

Reply
Thread Tools

Another crazy new language effort - Language #42

 
 
xyzzybill@gmail.com
Guest
Posts: n/a
 
      01-02-2009
I've got this crazy idea: I'll write the world's most completely
awesome computer language, and naturally get rich, famous, and
attacked by hordes of crazed hot chicks.

The language is called 42, and has the following insane goals:

- Run faster than C
- Foster extreme code reuse
- Compile to both hardware and software
- Run faster on reconfigurable computers than Wintel boxes
- Allow users to extend the language however they like

I need a few of you super-geeks out there to tell me flat out it's
impossible. For some reason, that always motivates me. I've created
a Google group (http://groups.google.com/group/language-42) where
detailed discussions can take place without spamming this group. I
describe the language in more detail there.
 
Reply With Quote
 
 
 
 
James Harris
Guest
Posts: n/a
 
      01-02-2009
On 2 Jan, 09:59, (E-Mail Removed) wrote:
....
> I need a few of you super-geeks out there to tell me flat out it's
> impossible. *For some reason, that always motivates me. *I've created
> a Google group (http://groups.google.com/group/language-42) where
> detailed discussions can take place without spamming this group. *I
> describe the language in more detail there.


You may want to post about language-42 on comp.lang.misc. That
newsgroup is used by a lot of people who are designing or have
designed their own programming languages.

James
 
Reply With Quote
 
 
 
 
jacob navia
Guest
Posts: n/a
 
      01-02-2009
http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:
> I've got this crazy idea: I'll write the world's most completely
> awesome computer language, and naturally get rich, famous, and
> attacked by hordes of crazed hot chicks.
>
> The language is called 42, and has the following insane goals:
>
> - Run faster than C


Any ideas on how would you achieve this?
I looked at your discussion group but it does not
suffice to say what you wish but maybe you should give
some vague hints as to HOW you want to accomplish those
goals...

> - Foster extreme code reuse


Yes, everybody says that.

> - Compile to both hardware and software


This is quite impossible. Hardware compilers are completely
different and have completely other goals as a software
compiler. Here, you just show your ignorance.

> - Run faster on reconfigurable computers than Wintel boxes


Any recongirable FPGA will be faster at its specific
task than any other software since it is hard wired to do
a single task.

> - Allow users to extend the language however they like
>


This is nonsense, since it will provoke a language full of contradictory
features. It is not enough to just add a syntax rule. You have to check
that th new rule doesn't stay in the way of other rules. Actually that
is the most difficult part!

> I need a few of you super-geeks out there to tell me flat out it's
> impossible.


Yes it is.

For some reason, that always motivates me. I've created
> a Google group (http://groups.google.com/group/language-42) where
> detailed discussions can take place without spamming this group. I
> describe the language in more detail there.


There is no information there, just statements of vague intentions
--
jacob navia
jacob at jacob point remcomp point fr
logiciels/informatique
http://www.cs.virginia.edu/~lcc-win32
 
Reply With Quote
 
Bill Cox
Guest
Posts: n/a
 
      01-02-2009
On Jan 2, 5:42*am, jacob navia <(E-Mail Removed)> wrote:
> > The language is called 42, and has the following insane goals:

>
> > - Run faster than C

>
> Any ideas on how would you achieve this?


I already demonstrated how to do this with DataDraw, which has tons of
documentation at http://datadraw.sf.net. In short, slow programs that
take minutes to days to run typically thrash memory. DataDraw backed
C has a far more optimized memory organization for cache performance
than standard C programs. Check out the benchmarks on the datadraw
page. For graph traversal, the DataDraw backed code ran 7X faster.

> > - Foster extreme code reuse

>
> Yes, everybody says that.


Well... yes, we do. Check out how the doubly-linked-list module
reuses code from the linked list and tail-linked list modules, and how
they embed the next pointer in the child class, and even take care of
cleanup on object destruction. You can see example 42 code at
https://graillang.svn.sourceforge.ne...trunk/examples.

> > - Compile to both hardware and software

>
> This is quite impossible. Hardware compilers are completely
> different and have completely other goals as a software
> compiler. Here, you just show your ignorance.


Actually, several companies already do compile C into Verilog. Here's
a list of some of the players:

ImpulseC (www.impulsec.com)
Synfora (www.synfora.com)
CebaTech: http://www.cebatech.com/
Celoxica : http://www.celoxica.com/
CacheQ: (no website... Xilinx "spinout")
Nallatech: http://www.nallatech.com

I'm actually far from ignorant about hardware synthesis. I usually
work on low-level technology mapping, but I've been doing hardware
synthesis related work for fifteen years.

> > - Run faster on reconfigurable computers than Wintel boxes

>
> Any recongirable FPGA will be faster at its specific
> task than any other software since it is hard wired to do
> a single task.


Oh, how I wish that were true. In reality, the reason reconfigurable
computing doesn't take off is that reconfigurable computers tend to
run generic programs slower than Intel boxes. That's because we focus
on the wrong problem: instead compiling hardware capable of performing
1000 multiplies in parallel, we need hardware than can access 10 to
100 parallel memory interfaces. Reconfigurable computing today just
amplifies the Von Neumann bottleneck, but it's good for signal
processing.

> > - Allow users to extend the language however they like

>
> This is nonsense, since it will provoke a language full of contradictory
> features. It is not enough to just add a syntax rule. You have to check
> that th new rule doesn't stay in the way of other rules. Actually that
> is the most difficult part!


Most languages embed a concept that the author of a library is all-
knowing, while users are dorks. C++ private/public and const
declaratoins are part of this. I say it's bunk. Many users know how
to extend yacc grammars, and fix shift/reduce and reduce/reduce
conflicts. They will have ideas we will never think of, and many of
them will be excellent. By saying "This is the langauge, for now and
forever", you close the door on user innovation.

> > I need a few of you super-geeks out there to tell me flat out it's
> > impossible. *

>
> Yes it is.


Thanks.
 
Reply With Quote
 
Bartc
Guest
Posts: n/a
 
      01-02-2009
(E-Mail Removed) wrote:
> I've got this crazy idea: I'll write the world's most completely
> awesome computer language, and naturally get rich, famous,


> and attacked by hordes of crazed hot chicks.


Somehow I don't think hot chicks are crazy about programming languages or
their designers.

>
> The language is called 42, and has the following insane goals:
>
> - Run faster than C


Running on standard hardware, that's going to be challenging, when
programming in low-level anyway.

> - Compile to both hardware and software


A lot of programmers (I bet) don't even know what it means to compile to
hardware. You mean the same syntax can be used as a hardware description
language? Or that you can write any application and it can magically design
a dedicated circuit to run it instead of using a cpu?

> - Run faster on reconfigurable computers than Wintel boxes


> - Foster extreme code reuse
> - Allow users to extend the language however they like


These seem contradictory aims. You want to encourage code reuse, but not
reuse of syntax?

If you haven't created a language before, I would say this project was a
little over-ambitious. But good luck. Especially with the hot chicks.

--
Bartc

 
Reply With Quote
 
Flash Gordon
Guest
Posts: n/a
 
      01-02-2009
jacob navia wrote:
> (E-Mail Removed) wrote:


<snip>

>> - Compile to both hardware and software

>
> This is quite impossible. Hardware compilers are completely
> different and have completely other goals as a software
> compiler. Here, you just show your ignorance.


Here you show your ignorance. I once had an interview with a company
that was using a C based language to compile to HW. Parallel C IIRC.
They showed me some real HW that had been built using FPGA's programmed
using it, kit that was actually for sale, so it does work.

I suggest you go looking round the HW groups if you want to discus what
can be done.
--
Flash Gordon
 
Reply With Quote
 
jacob navia
Guest
Posts: n/a
 
      01-02-2009
Bill Cox wrote:
>>> - Compile to both hardware and software

>> This is quite impossible. Hardware compilers are completely
>> different and have completely other goals as a software
>> compiler. Here, you just show your ignorance.

>
> Actually, several companies already do compile C into Verilog. Here's
> a list of some of the players:
>


There are some tools that allow you to design an FPGA. Those
tools are far from automatic however!

> ImpulseC (www.impulsec.com)


In this site we find:

<quote>
Profile and partition between the processor and the FPGA accelerator.
Use multiple parallel processes for increased performance.

Verify and debug using familiar C-language development tools. Use the
Impulse Application Monitor to analyze parallel dataflow.

Compile and optimize using interactive, graphical tools. Automatically
parallelize and pipeline your critical C code.

Automatically generate FPGA hardware ready for use with your selected
FPGA-based platform.

Automatically generate host-FPGA interfaces for selected platforms.
<end quote>

As you can see from the above description, this is not an automatic
process!

SOME of it is automated, most it is not!

--
jacob navia
jacob at jacob point remcomp point fr
logiciels/informatique
http://www.cs.virginia.edu/~lcc-win32
 
Reply With Quote
 
jacob navia
Guest
Posts: n/a
 
      01-02-2009
Flash Gordon wrote:
> jacob navia wrote:
>> (E-Mail Removed) wrote:

>
> <snip>
>
>>> - Compile to both hardware and software

>>
>> This is quite impossible. Hardware compilers are completely
>> different and have completely other goals as a software
>> compiler. Here, you just show your ignorance.

>
> Here you show your ignorance. I once had an interview with a company
> that was using a C based language to compile to HW.


So. You had once (no date specified) an "interview" with a
company (no name specified, nor a hint of what that
company was doing or where) that was using a "C based language" to
compile to HW.

This is as vague as it can possible get.

> Parallel C IIRC.


"Parallel C" according to the wiki is:

<quote>
an extension of the C programming language designed for high-performance
computing on large-scale parallel machines
<end quote>

What parallel C has to do with hardware and FPGAs is anyone guess.

> They showed me some real HW that had been built using FPGA's programmed
> using it, kit that was actually for sale, so it does work.
>


Yes, there are kits that can program an FPGA, and they could possibly
use a syntax for their input language that looks like C. So what?

Does that mean that I can feed it the definition of strcmp and it will
produce a circuit that does it in hardware???


> I suggest you go looking round the HW groups if you want to discus what
> can be done.


Yes, many things can be done. But compiling software transparently into
a circuit is a pipe dream. Sorry.

--
jacob navia
jacob at jacob point remcomp point fr
logiciels/informatique
http://www.cs.virginia.edu/~lcc-win32
 
Reply With Quote
 
Flash Gordon
Guest
Posts: n/a
 
      01-02-2009
jacob navia wrote:
> Flash Gordon wrote:
>> jacob navia wrote:
>>> (E-Mail Removed) wrote:

>>
>> <snip>
>>
>>>> - Compile to both hardware and software
>>>
>>> This is quite impossible. Hardware compilers are completely
>>> different and have completely other goals as a software
>>> compiler. Here, you just show your ignorance.

>>
>> Here you show your ignorance. I once had an interview with a company
>> that was using a C based language to compile to HW.

>
> So. You had once (no date specified) an "interview" with a
> company (no name specified, nor a hint of what that
> company was doing or where) that was using a "C based language" to
> compile to HW.
>
> This is as vague as it can possible get.


I've been in the industry for over 20 years, I've done a lot and come
across a lot more. Do you expect me to remember the details of everything?

Oh, and the date would have been late 1999 or early 2000.

>> Parallel C IIRC.

>
> "Parallel C" according to the wiki is:
>
> <quote>
> an extension of the C programming language designed for high-performance
> computing on large-scale parallel machines
> <end quote>
>
> What parallel C has to do with hardware and FPGAs is anyone guess.


If I recall correctly it was the language used as I said above. So
having complained about not enough detail you are complaining that I do
provide some detail.

Well, they had a few more extensions, such as a way to map variables to
pins.

>> They showed me some real HW that had been built using FPGA's
>> programmed using it, kit that was actually for sale, so it does work.

>
> Yes, there are kits that can program an FPGA, and they could possibly
> use a syntax for their input language that looks like C. So what?


Actually the syntax was C with some extensions. Just like your compiler
is for C + extensions.

> Does that mean that I can feed it the definition of strcmp and it will
> produce a circuit that does it in hardware???


It produces the design for the FPGA. Actually, they also had libraries,
just as Unix does and your compiler does to deal with some of it. strcmp
will be one of them. However, they did have rather more complex programs
compiled in to FPGAs.

>> I suggest you go looking round the HW groups if you want to discus
>> what can be done.

>
> Yes, many things can be done. But compiling software transparently into
> a circuit is a pipe dream. Sorry.


For something that is a pip-dream there are a lot of implementations!
That you can do optimisation after the compilation is no different from
being able to get assembler output from a normal compiler and then
hand-optimise the assembler. Some of them do more than others. Some
allow you to do some of the FPGA in a C like language and then link it
to other parts of the FPGA design, some let you do more.

As I say, take it up on a HW group.
--
Flash Gordon
 
Reply With Quote
 
Bill Cox
Guest
Posts: n/a
 
      01-02-2009
On Jan 2, 6:34*am, "Bartc" <(E-Mail Removed)> wrote:
> (E-Mail Removed) wrote:
> > I've got this crazy idea: *I'll write the world's most completely
> > awesome computer language, and naturally get rich, famous,
> > and attacked by hordes of crazed hot chicks.

>
> Somehow I don't think hot chicks are crazy about programming languages or
> their designers.


Err... well then, how about the fame and the fortune

> > The language is called 42, and has the following insane goals:

>
> > - Run faster than C

>
> Running on standard hardware, that's going to be challenging, when
> programming in low-level anyway.


The class of applications where 42 will beat C is most programs that
use a lot of memory. If you use DataDraw (http://datadraw.sf.net) to
program in C using a semi-OO style, your code typically speeds up
dramatically. It's because of better cache hit rates. If you have
typical objects in memory that are larger than a cache line, then on
an L2 cache miss, you typically load a whole line of crud you don't
need. DataDraw by default causes the cache line to be loaded with
like-properties from objects of the same type, with much higher chance
of being useful in most cases. Benchmarks have proved this out many
times.

> > - Compile to both hardware and software

>
> A lot of programmers (I bet) don't even know what it means to compile to
> hardware. You mean the same syntax can be used as a hardware description
> language? Or that you can write any application and it can magically design
> a dedicated circuit to run it instead of using a cpu?


I should be more specific here. Core 42 syntax will directly borrow a
lot from Verilog. There will be signals that communicate between
processes. It will seem very natural to HDL designers. This is the
main problem with compiling C into Verilog: there's no mechanism in C
to specify a lot about the hardware, so you have to provide extra
information as hacks in comments, and some things, like describing
pipelining, are downright frightful. I say forget that, it's time to
merge real HDL support into a good programming language.

By simply borrowing some of the best concepts from VHDL and Verilog,
42 will be both a software and hardware design language. As a side-
benefit, parallel programming is part of the language as in Intel
BLOCKs, and C++ CSP2. You can instantiate as many processes as you
like, and the event scheduler will assign them to a properly sized set
of threads, like Intel blocks. Processes communicating through
signals is similar to CSP2.

> > - Run faster on reconfigurable computers than Wintel boxes
> > - Foster extreme code reuse
> > - Allow users to extend the language however they like

>
> These seem contradictory aims. You want to encourage code reuse, but not
> reuse of syntax?


Good point. The goal here isn't really to encourage every programmer
go write custom syntax extensions. That would confuse all his co-
workers. However, in even small teams at individual companies, there
are often specific coding challenges they face that aren't well
supported in any specific language. For example, should imaginary
numbers be supported directly with custom syntax? I think there are
hundreds of application specific areas where custom syntax would be
nice, and if doable in libraries, it doesn't hurt to support them.

> If you haven't created a language before, I would say this project was a
> little over-ambitious. But good luck. Especially with the hot chicks.


Thanks for the feedback. Writing any new language can be fun, but you
have to be a huge optimist. I'll keep out some hope for the hot
chicks.

I've written several compilers and interpreters, but most never got
much use. I really enjoy it, and I realize the odds of any new
language being useful to very many people is exceedingly low. My
first computer language I wrote with a friend in 1983 on an Apple-II
e, which was similar to Forth, but jsr-linked as they say. I also
wrote a Prolog interpreter which convinced me never to program in
Prolog, and a Scheme interpreter which was great fun until all our
users refused to learn Scheme and started asking me to write all their
code. The scheme interpreter had list rewriting rules that allowed
most of the pretty syntax to be defined in terms of a core Scheme
language. This greatly simplified the language while adding power. I
didn't invent that - it's fairly standard for Scheme, but still very
cool. I thought it'd be fun to try that text rewriting trick in a
higher-level language using interpreted lex/yacc rules.

In the last few years, I chimed in on the D language forum and offered
some ideas to help Walter with his language. He's done a great job,
and D is a language near the top of those that I like, but D has
terrible memory layout (similar to C++ and Java), and further trashes
speed with garbage collection and wastes memory using 64-bit
pointers. I'm a speed-freak, so I'm not satisfied. I came to realize
that we programmers have too divers needs to be satisfied with any
single language, which is one reason C has such staying power. With
user-extensions in libraries, I hope to cover a lot more. For
example, if you really want garbage collection, go ahead. Put it in a
library and keep that crap away from me. Not a fan of object-oriented
programming? Then don't import the class module.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Are Master Pages Really Worth The Effort ? Just Me ASP .Net 11 02-24-2007 02:08 PM
Localization Question - Level of Effort Corey B ASP .Net 3 01-17-2007 03:00 PM
Please tell me if it is worth the effort Nick MCSD 8 02-24-2005 04:01 PM
crazy browser go crazy dr greg Computer Support 7 01-14-2005 09:13 PM
Sun Mulls Joining Java Eclipse Effort bluke Java 3 09-04-2003 07:00 PM



Advertisments