PDA

View Full Version : Super language.



Suchy
12-03-2006, 09:39 PM
This might be a strange question, but is it possible to make one language that will be able to do what every language does. Someking of "super language" that will encorporate C/C++, java, php , actionscripts ...
?

DavidP
12-03-2006, 10:08 PM
Well...technically any real programming language can do anything if you know how to use the language properly.

The language might not be designed for those specific purposes, but it can still accomplish them.

I personally think that C/C++ comes the closest to this "super" language of which you speak. It combines an incredible amount of power with relative readability and ease of use.

As you can see a whole slew of languages have been designed or modeled after C, even if only in a few aspects. Java and C# are the most obvious, but we cant forget PHP, JavaScript, and many others which are very C-like. Even Verilog, which is meant for creating digital circuits and not software, is very much C-like in structure.

The problem is that there is more than one way of programming. In C, and all related languages, we use common practice of performing instructions one at a time, and sequentially.

There are other languages which do not take this approach. Verilog is one, for example. In Verilog instruction are not executed sequentially, but essentially all at once.

SQL is another example. SQL is a very popular database language, but is modeled very differently than other languages. It performs queries, which essentially are searches for specific pieces of data, on databases. Prolog is another similar language.

But like I said, pretty much most languages can do anything if you put it to use in the right way, and know how to use the language (and if you know your algorithms, which are the same know matter what language you use).

Rashakil Fol
12-04-2006, 01:36 AM
C/C++ don't come anywhere close. Especially not on the power spectrum.

If you want a language that tries to do everything, see Perl 6. I don't think this is a good goal to have in mind, but Perl 6 is the closest to achieving this. It borrows from everything. And if there is a feature or syntax you want, you can write your own parsing function and use that to satisfy your goal.

There are features of languages which are just incompatible. For example, some languages have the feature that there are no modifiable variables. You simply can't mix this with a language that has assignment statements. And then there's garbage collection/not, which is pretty much an on/off thing unless you want two different 'universes' that don't touch each other.

Generally speaking, the classic 'language that can do everything' is Lisp.

vart
12-04-2006, 01:44 AM
'language that can do everything' is Lisp.
But what the effort it requires from the programmer, just to count all these endless )))))))))))))
;)

Nodtveidt
12-04-2006, 04:54 AM
Just about every language can do everything already. It's all a matter of coder preference and, in many cases, bias and/or prejudice (such as hatred of BASIC without knowing about all the powerful BASICs there are out there today, such as freeBASIC). C++ seems to me to be the most flexible and versatile (it also helps to have no less than four major compilers for Windows), but lacking in terms of ease of use; the learning curve is somewhat steep for a lot of people (it was for me also). You have to ask yourself a few questions...how easy is it to use? How strict is the syntax? Who is developing the compiler? On these three pieces of information alone, you're going to find allies and opponents of any language, let alone hundreds of other little facts. So a super-language? Even if you were to collect all the "best things" from all the various languages, it still wouldn't be enough because coders tend to be prejudiced about coding languages and many will nitpick over the details.

Mario F.
12-04-2006, 05:13 AM
The language that can do anything is the language that can incorporate code from others languages. That's a big number of the current programming languages.

Now... a programmer than can do anything? That's harder to find :)

risby
12-04-2006, 06:45 AM
This might be a strange question, but is it possible to make one language that will be able to do what every language does. Someking of "super language" that will encorporate C/C++, java, php , actionscripts ...
?
It does seem like a strange question - here's my strange response.

A language that can do everything that the computer can do is its processor's assembly language. Unfortunately the computer can only do about four things, viz: move bits to and from memory, move bits to and from i/o devices, simple arithmetic using the accumulator and jumping or branching to non-adjacent machine instructions.

Putting these possibilities together in imaginative ways has led to higher level languages that offer virtual operations from groups of these instructions, e.g. languages like C offer several looping structures (combining arithmetic and branching) and libraries of functions for complex maths.

Higher level, more abstract languages, like SQL for instance, offer more powerful virtual operations like creating subsets of data but, these operations are more specific to the range of tasks they are designed to complete.

The computer itself, with its very low level of real operations, is a general purpose computing device. It can be put to work solving many diverse problems. I suggest that the higher the level of abstraction away from the computer the more specific (less general) are the uses to which languages may be put. Sure, it doesn't matter whether your data is about employees or astronomy or stock movements; a DBMS is generic in that sense, but you don't use a database to carry out image rendering, say, you'd implement another language for that type of task.

So what I'm saying is that the number of uses people may want to put these general purpose computing machines to is essentially infinite and so a meta language to do everything you might conceive of must also be infinite.

At least I think that's what I'm saying but I may have overstretched my wetware.

swgh
12-04-2006, 06:54 AM
BASIC - my peronal super language. "sigh" you can't beat the old ealy 90's version


10 REM A program to input your name
20 PRINT"Enter your name "
30 INPUT A$
40 IF A% = "PIEMAN" GOTO 60
50 PRINT "That is not my name" GOTO 70
60 PRINT "Yes! The pieman lives!" GOTO 70
65 REM All is done, lets exit
70 ENDPROC
80 END

Salem
12-04-2006, 06:59 AM
> This might be a strange question, but is it possible to make one language that will be able to do what every language does
Like C for instance?
http://en.wikipedia.org/wiki/Turing_completeness

You can do in C what you can do in Perl, but only weirdos would try to do complex string handling and pattern matching in 1000's of lines of C which would be a 5-minute back of the envelope job in perl.

A single language would be
- huge (no use to the embedded market)
- huge (impossible to debug the compiler)
- huge (impossible to learn in a human lifetime)
- hugh (Schilt books would cause deforrestation on a massive scale)

As soon as you produced it, people would start ripping it apart and ignoring all the features which made no sense to them at all, and adding some new stuff which you forgot (or didn't think was necessary).

swgh
12-04-2006, 07:09 AM
> (Schilt books would cause deforrestation on a massive scale)

Salem, that us priceless. i couldn't help laughing. Poor old "herbie"

Mario F.
12-04-2006, 07:33 AM
My first C++ book, I bought it when I first tried t learn C++ 3 or 4 years ago (work pressed and I ended up abandining it just a couple of months later).

The book is C/C++ Programmers's Reference. And it's meant to be just that... a reference. Well, guess what, not even so he managed to provide us with a good book. It's the worst reference I've ever seen. Dammit! What's wrong with this guy?

swgh
12-04-2006, 07:39 AM
He trys to hard to impress beginning programmers with the knowledge he has. The problem is, when these once newbie programmers get wiser and more language compliant, they can pick holes in his teaching practices. I am affraid to say, amy on this board already have done

indigo0086
12-04-2006, 08:14 AM
English.

Mario F.
12-04-2006, 08:36 AM
Actually spoken languages are notoriously incapable of doing many tasks. Bringing peace to the world, successfully running a business, building an airplane, ... As they say, it's all talk and no action.

Mario F.
12-04-2006, 08:42 AM
The super language doesn't need to be big, as salem suggests.

The super languages:
http://compsoc.dur.ac.uk/whitespace/

And of course,
http://www.muppetlabs.com/~breadbox/bf/

And since we are on the subject:
http://en.wikipedia.org/wiki/Assembly_language

indigo0086
12-04-2006, 08:51 AM
Actually spoken languages are notoriously incapable of doing many tasks.


Not if you're

http://upload.wikimedia.org/wikipedia/en/d/d4/PreacherCuster.jpg

Also I just finished writing an assignment in Microprogram. The ultimate programming language would basically be a one keyword instruction that is already programmed into the processor.

Mario F.
12-04-2006, 09:15 AM
> The ultimate programming language would basically be a one keyword instruction that is already programmed into the processor.

Hmm... then it's not really a programming language. Although the definition is blurred (http://en.wikipedia.org/wiki/Programming_language).

It would also not be a super programming language. Rather limited the poor thing.

indigo0086
12-04-2006, 09:25 AM
We would essentially have robots to do all the intermediate work. That or Deus Ex Machina.

maxorator
12-04-2006, 02:15 PM
There is only one super language that can do everything... assembly...

manutd
12-04-2006, 02:38 PM
I would agree, assembly. 10,000 lines of code for a 50 line C program (at least), but everything goes to assembly ;)

indigo0086
12-04-2006, 05:04 PM
Or build the JC-1 computer. JC stands for Jesse Custer

here's what a JC instruction would look like.

"Write The Matrix...then kill yourself;"

viola, we're all batteries.

Mad_guy
12-04-2006, 06:12 PM
10,000 lines of code for a 50 line C program (at least)
Absolutely horrible exaggeration. Many assembly programmers can get damn near close to matching the size of C programs in terms of LOC. It's not that hard; compiler-implemented assembly however may somewhat induce this nebulous thought.

manutd
12-04-2006, 06:40 PM
True. It is. But I'm in the middle of a horribly ugly assembly program and I'm vengeful ;)

Nodtveidt
12-04-2006, 06:41 PM
Mad_guy, I think it was an exaggeration for effect, not fact. :D