🔒 Locked
Future of coding?
Advertisement
Original Post
In short: the first processor was made by hand, now it is computers designing processors (computers designs computers) with a little imput from a designer...
Today software is written by programmers. tomorow i think software will design software! I will try to explain this.
first, we need a LANGUAGE that the computer understand. The computer "understands" ASM, but it dont understand C++, it just translate it to ASM. So we need to hard code a LANGUAGE. This language will be wery tecnical, dont need to be readable for humans, but must be so complicated that you can explain what a WALL, BSP and IP is! (then you can explain ewerything the computer needs to know!)
then we need a TRANSLATOR! This should be a independant part of our project, so that it could be replaced, and that you could create a translator for ewery language in the world. the TRANSLATOR translates from human language to our new LANGUAGE.
"add one to A" => "A+=1" (simple example)
Since our goal is to create software (i think a OS) that creates software, we need it to be able to test what it have created, therefore it needs a EMULATOR for the code, and when we first have a EMULATOR, lets run all code trough this! (this way, you only need to rewrite the emulator, not all code == platform independent) just like java! (in the future, CPU speed is no longer a issue!)
Then new ideeas is these:
*Lets replace all ASM code with our new LANGUAGE! (the EMULATOR runs the language, no compiled code!)
*Let all hardware contain a explenation in LANGUAGE what it does!
*Let every file contain a explenation in LANGUAGE what it contains.
*Let all software be dynamic! (If the software finds hardware that does something in its code, use the hardware for these tastks, but keep the information, so that it also can run whitout!) The software will try to improve itselfe, by testing for hardware, testing optimation trics and so on.
*Let your software (OS) analyse all new software it comes across..
BUT! the superior new func is this! In for example the application Word, a text_editor is defined with LANGUAGE... In Quake a 3D world and a BSP is defined with LANGUAGE. Now when you want to create a new program, you type or say or whatever:
"create a text editor!" (witch is translated into LANGUAGE, and the OS creates a new text editor) then you say: "add printing, and a count lines function" and it does! WOW
You may ask, how does it know what a text editor is? this is because it before have analysed a text editor... the LANGUAGE now contains a text editor and all its parts and all its functions, and it know what a text line is and it know how to count!
Then how do you create new software when all creations is based on older applications? Well, its posible to explain what a BSP is in english, right? english was created long before the first BSP! This way, you should be able to explain what a new word means in our new LANGUAGE! pen == long cylinder that leavs a mark on a surface...
and then it knows what a pen is! a culinder can be explained by a extracted circle, and a surface with the plane equation with a picture on it??? (how is not the issue)
what do you think? anything i forgott? is this the future? (please dont lett this thread end whit if this is posible or not)
um, you can''t replace ASM with a higher level language. It would be completely inefficient and totally unsuited for the job. You fail to explain why you want to replace ASM anyway. If you want an extremely high level language (which seems to be what you''re talking about), you should build it with lower level languages. That''s how abstraction works. It would be crap though; the more abstracted your language is, the less flexibility you have, and no AI system is going to be able to tell _exactly_ what you want from vague descriptions, at least for another few hundred years anyway.
____________________________________________________________
www.elf-stone.com
____________________________________________________________
www.elf-stone.com
...........
1.imposible to replace ASM? then what is java? isnt java cross platform? java is compiled at real time... this is what im talking about! Of course you need to send ASM to the processor, but the compiling can be the last step, and until this step you dont have ASM, only java.
2.i dont want to remove the low level language, i want it to be possible to add higher levels! ( = evolving and dynamic language), the language im talking about is closer to english then to ASM... is it imposible to describe code with english? i dont think so.
3.if the level is high enough you should be able to add a text editor with one line! then go more spesific ( = lover in levels) later...
4.no AI system is going to be able to tell _exactly_ what you want from vague descriptions! No human can do this either, BUT we all have a general ideea of what a text editor is, so we start there, and go more detaljed later... this is not AI a complex AI system. Instead of starting from the ground, you start from the top.
if you dont understand what im talking about, then maybe im bad at expressing myselfe, but im talking about the future, not about next year but maybe in 50 years, so please dont tell me that computers in 50 years CANT replace ASM... how the hell do you know that? i dont say i know, but i say maybe!
1.imposible to replace ASM? then what is java? isnt java cross platform? java is compiled at real time... this is what im talking about! Of course you need to send ASM to the processor, but the compiling can be the last step, and until this step you dont have ASM, only java.
2.i dont want to remove the low level language, i want it to be possible to add higher levels! ( = evolving and dynamic language), the language im talking about is closer to english then to ASM... is it imposible to describe code with english? i dont think so.
3.if the level is high enough you should be able to add a text editor with one line! then go more spesific ( = lover in levels) later...
4.no AI system is going to be able to tell _exactly_ what you want from vague descriptions! No human can do this either, BUT we all have a general ideea of what a text editor is, so we start there, and go more detaljed later... this is not AI a complex AI system. Instead of starting from the ground, you start from the top.
if you dont understand what im talking about, then maybe im bad at expressing myselfe, but im talking about the future, not about next year but maybe in 50 years, so please dont tell me that computers in 50 years CANT replace ASM... how the hell do you know that? i dont say i know, but i say maybe!
quote:
1.imposible to replace ASM? then what is java? isnt java cross platform? java is compiled at real time... this is what im talking about! Of course you need to send ASM to the processor, but the compiling can be the last step, and until this step you dont have ASM, only java.
How exactly Java has replaced ASM then (or even Machine code, which I think you're talking about)? Surely you're talking about replacing C++ or Java?
quote:
2.i dont want to remove the low level language, i want it to be possible to add higher levels! ( = evolving and dynamic language), the language im talking about is closer to english then to ASM... is it imposible to describe code with english? i dont think so.
It's pretty well known that English (or any other spoken language) would be an exceptionally bad programming language, because it's so ambiguous and full of anomolies. Have you ever tried to write a complex algorithm using just English? It's not pretty.
quote:
3.if the level is high enough you should be able to add a text editor with one line! then go more spesific ( = lover in levels) later...
4. no AI system is going to be able to tell _exactly_ what you want from vague descriptions! No human can do this either, BUT we all have a general ideea of what a text editor is, so we start there, and go more detaljed later... this is not AI a complex AI system. Instead of starting from the ground, you start from the top.
This is called abstraction. It's not a new idea. For example, I was able to make a text editor in C++ builder the other day, writing a grand total of 0 lines of code, using just VCL components.
It seems to me that you should learn the basics of programming -for instance the difference between ASM and machine code, and the difference between a compiled and and interpreted language - before you're in any position to suggest a better approach.
____________________________________________________________
www.elf-stone.com
[edited by - benjamin bunny on June 3, 2002 9:35:05 PM]
I''ll punch the first guy who makes self-programming code.
import java.io.*;
public class Programmer
{
public static String program =
"import java.io.*;\n" +
"\n" +
"public class Program\n" +
"{\n" +
" public static void main(String argv[])\n" +
" {\n" +
" try\n" +
" {\n" +
" FileWriter w = new FileWriter(\"data.dat\");\n" +
" w.write(\"This was programmed by a program\");\n" +
" w.close();\n" +
" }\n" +
" catch (Exception e) {}\n" +
" }\n" +
"}\n";
public static void main(String argv[])
{
System.out.println("I am programming a program right now . . .");
try
{
FileWriter w = new FileWriter("Program.java");
w.write(program);
w.close();
System.out.println("I am happy to report that I am finished programming");
System.out.println("I will now move on to the compiling stage . . .");
System.out.println("");
Process compile = Runtime.getRuntime().exec("javac Program.java");
compile.waitFor();
System.out.println("");
System.out.println("The compile was successful");
System.out.println("It always is as I never make mistakes");
System.out.println("I will now execute the program that I created");
System.out.println("");
Process run = Runtime.getRuntime().exec("java Program");
run.waitFor();
System.out.println("");
System.out.println("The program has finished executing");
}
catch (Exception e)
{
System.out.println("It appears that there is something dreadfully wrong");
System.out.println("with your computer, you should make sure it gets fixed");
}
}
}
Please don''t hurt me.
Give a man a fish and you feed him for a day; teach him to use the Net and he won''t bother you for weeks.
I didn''t read the complete post (sorry) but according to me, in a far future, the final computer will be there. I mean that this computer is so good that no enhancements are possible.
In that time, speed isn''t important anymore, computers are close to infinite speed anyway, or at least so fast that the speed will never be a problem for programmers, even raytracing a scene with 50000000 metaballs on a 65536*49152 screen @ 256 bit color will be so fast that you have to add a sleep command between each frame to be able to move the camera at a normal speed (otherwise the camera raeches the end of the map when you hit the move forward key only shortly). In fact, you''d have to do a lot of work and know the inner workings of the computer very good to actually reach the speed barrier of the computer.
On to the programming and software. There is only ONE program on the computer. This program is what you can call the OS, but it''s got no annoying things like a search function with a dog in it, a chat program that shows up if you open the email client, and so on. In fact, this program IS the computer, like a man has one brain with one "program" on it and still he can do so much. The computer is able to understand what people say. If the user wants to paint, he says to the computer: I want to paint, can you show me some sort of interface to paint? Yes, yes, I''d like to use this pencil and I''ll move with it over your screen and then you show the pixels right? Or if you want to model something in 3D, you say like Computer I''d like to model a chopper in 3D. What, you call that a chopper? I want a military one! Yes, give it a green pattern. Like that, good. Ok now let me edit the final details myself. Remember 3D studio max? Show me an interface similar to that please.
So every computer is almost like a man, he understands what you say, but he won''t really get his own will or desire, that would be too dangerous. They''re made that way, they''ll only do what humans want, because some bad things had happened in the past (there has been a computer revolt, but it came at a good ending, and since that day humans have learnt not to give computers a conciousness anymore).
There still have to be standards and protocols for file formats and communication, just like humans have also such protocols (language, scientific agreements, ...) and even some sort of exe files, this are descriptions of what a program has to do that every computer can understand. Not that these exe''s are things that have to be installed and so on, it''s just the same as if one man would give a document to another man that tells him what he has to do. So a boy could make a "program", this means he says the computer "I want to make a surprise for my girlfriend: let her computer show 12 roses and make some music. I''ll email it to her computer and then she can open it". Then this is a program, the computer writes it in a language that all computers understand, could even be english, and emails it to the computer of the girlfriend. The girlfriend gets the email, sees that it comes from her boyfriend, sees a file and the computer says "that file looks like something your boyfriend wants me to do" and he shows the roses and music.
I can keep going on like this, but I''m sure a lot of this will really happen if humanity survives long enough.
In that time, speed isn''t important anymore, computers are close to infinite speed anyway, or at least so fast that the speed will never be a problem for programmers, even raytracing a scene with 50000000 metaballs on a 65536*49152 screen @ 256 bit color will be so fast that you have to add a sleep command between each frame to be able to move the camera at a normal speed (otherwise the camera raeches the end of the map when you hit the move forward key only shortly). In fact, you''d have to do a lot of work and know the inner workings of the computer very good to actually reach the speed barrier of the computer.
On to the programming and software. There is only ONE program on the computer. This program is what you can call the OS, but it''s got no annoying things like a search function with a dog in it, a chat program that shows up if you open the email client, and so on. In fact, this program IS the computer, like a man has one brain with one "program" on it and still he can do so much. The computer is able to understand what people say. If the user wants to paint, he says to the computer: I want to paint, can you show me some sort of interface to paint? Yes, yes, I''d like to use this pencil and I''ll move with it over your screen and then you show the pixels right? Or if you want to model something in 3D, you say like Computer I''d like to model a chopper in 3D. What, you call that a chopper? I want a military one! Yes, give it a green pattern. Like that, good. Ok now let me edit the final details myself. Remember 3D studio max? Show me an interface similar to that please.
So every computer is almost like a man, he understands what you say, but he won''t really get his own will or desire, that would be too dangerous. They''re made that way, they''ll only do what humans want, because some bad things had happened in the past (there has been a computer revolt, but it came at a good ending, and since that day humans have learnt not to give computers a conciousness anymore).
There still have to be standards and protocols for file formats and communication, just like humans have also such protocols (language, scientific agreements, ...) and even some sort of exe files, this are descriptions of what a program has to do that every computer can understand. Not that these exe''s are things that have to be installed and so on, it''s just the same as if one man would give a document to another man that tells him what he has to do. So a boy could make a "program", this means he says the computer "I want to make a surprise for my girlfriend: let her computer show 12 roses and make some music. I''ll email it to her computer and then she can open it". Then this is a program, the computer writes it in a language that all computers understand, could even be english, and emails it to the computer of the girlfriend. The girlfriend gets the email, sees that it comes from her boyfriend, sees a file and the computer says "that file looks like something your boyfriend wants me to do" and he shows the roses and music.
I can keep going on like this, but I''m sure a lot of this will really happen if humanity survives long enough.
Lode that was an excellent post, you did a good job at explaining yours and my views of the future of computers. I don't think this is that far off. But I think if you had a command to the computer like "I want to make a paint program". The computer is gonna look at it like this.
Parse command request: "I want to make a paint program"
Who is asking? : "I" : Who is I? : User : Current User = "Dylan Vester"
What does Dylan want to do? : "Wants to Make" : Action = "Make"
What does Dylan want to Make? : "A Paint Program" : Wait for Actions...
Then you could say to the computer. "In my paint program I want to add a Pen, Fill Tool, Spray Tool, etc..."
The computer would then run through to list of "add" and take a predefined layout of a paint program and add those components. Any custom components the user wants to add, the computer will ask you to describe the parts of the component. Until the computer is satisfied with the info given. And so with each part of the component told to the computer, the computer will keep checking is database of parts of a component. If the computer cant find the desired part, then it will ask you describe a new part in detail. And so the computer just keeps going lower and lower into it's database of objects until it's completly satisfied with all the info given.
I think this is how it's going to be in the future. Hopefully I gave a little insite into how it might be when us programmers are older. The computer is not just limited to paint programs mind you. It can do this for tons of different software apps. Including Word processor, E-mail clients, Greeting cards (as previously stated) or any other type of application.
When making this giant database. the user can save components already created and parts of components already created. In this way the computer will learn new things to make and will never me limited to a set amount of things it can create.
The only part that will really have to be made is the automatic component generator. So when you purchase this OS it will have a small database already created for the user. And if the user feels like being a programmer then all he has to do is tell the computer exactly what it needs to make and everything about what needs to be made. So the user is free to fill the database with whatever he desires. Anything is possible with this next generation OS.
I hope this post helped expand previous posts ideals of what this will be exactly. Sorry if I this post got a little spread out towards the end. I was just throwing down thoughts. This idea sounds great, let's make it! This is how linux started. Anyone wanna start a team
. Ok that's enough for me.
Horny Farmer (Jolly Rancher)
[edited by - VisualB4BigD on June 4, 2002 6:38:17 AM]
Parse command request: "I want to make a paint program"
Who is asking? : "I" : Who is I? : User : Current User = "Dylan Vester"
What does Dylan want to do? : "Wants to Make" : Action = "Make"
What does Dylan want to Make? : "A Paint Program" : Wait for Actions...
Then you could say to the computer. "In my paint program I want to add a Pen, Fill Tool, Spray Tool, etc..."
The computer would then run through to list of "add" and take a predefined layout of a paint program and add those components. Any custom components the user wants to add, the computer will ask you to describe the parts of the component. Until the computer is satisfied with the info given. And so with each part of the component told to the computer, the computer will keep checking is database of parts of a component. If the computer cant find the desired part, then it will ask you describe a new part in detail. And so the computer just keeps going lower and lower into it's database of objects until it's completly satisfied with all the info given.
I think this is how it's going to be in the future. Hopefully I gave a little insite into how it might be when us programmers are older. The computer is not just limited to paint programs mind you. It can do this for tons of different software apps. Including Word processor, E-mail clients, Greeting cards (as previously stated) or any other type of application.
When making this giant database. the user can save components already created and parts of components already created. In this way the computer will learn new things to make and will never me limited to a set amount of things it can create.
The only part that will really have to be made is the automatic component generator. So when you purchase this OS it will have a small database already created for the user. And if the user feels like being a programmer then all he has to do is tell the computer exactly what it needs to make and everything about what needs to be made. So the user is free to fill the database with whatever he desires. Anything is possible with this next generation OS.
I hope this post helped expand previous posts ideals of what this will be exactly. Sorry if I this post got a little spread out towards the end. I was just throwing down thoughts. This idea sounds great, let's make it! This is how linux started. Anyone wanna start a team
Horny Farmer (Jolly Rancher)
[edited by - VisualB4BigD on June 4, 2002 6:38:17 AM]
quote:
Original post by thooot
<program that outputs a program>
Please don''t hurt me.
Beat this, then we''ll talk.
quote:
Original post by VisualB4BigD
Then you could say to the computer. "In my paint program I want to add a Pen, Fill Tool, Spray Tool, etc..."
[edited by - VisualB4BigD on June 4, 2002 6:38:17 AM]
Hey! How intressting is that? Really? No..a more serious
angle to all this is selfmodifying code.
Imagine having a machcine that optimizes itself.
The humans provide a foundation and the machine wanders of in any direction that suits it's working environment. That would be cool.
[edited by - ekas78 on June 4, 2002 7:51:55 AM]
Lode: This is what im talking about.
VisualB4BigD:
I agree, but when is the program finished? I want the program to never finish! Stay dynamic, (just like a programmer evolving his code) trying to opptimise the code, ask if it should add new fetures, just like programmers do... search the internett for tricks...
sort of a personal programmer :-)
So when you say "I want to make a paint program",
the OS creates a paint program, and it works... you can then at any time add fetures, or change them...
the OS will also remember, so that next time you create something, you can refear to things you did before.
A learning personal programmer! Taking care of everything tecnical!
I think programmers no longer will be neded. Everyone can do anything anytime!
VisualB4BigD:
I agree, but when is the program finished? I want the program to never finish! Stay dynamic, (just like a programmer evolving his code) trying to opptimise the code, ask if it should add new fetures, just like programmers do... search the internett for tricks...
sort of a personal programmer :-)
So when you say "I want to make a paint program",
the OS creates a paint program, and it works... you can then at any time add fetures, or change them...
the OS will also remember, so that next time you create something, you can refear to things you did before.
A learning personal programmer! Taking care of everything tecnical!
I think programmers no longer will be neded. Everyone can do anything anytime!
Exactly! The computer learns your personal taste: he knows you like to see a "scratch remover tool" in painting programs so he''ll also add that one if you are using the computer and want to paint.
Programming like today, and low level access, may still be possible, but not used very much, more some kind of "1337 h4xx0r" hype, or useful if you want to make things you can''t describe with the english language.
Programming like today, and low level access, may still be possible, but not used very much, more some kind of "1337 h4xx0r" hype, or useful if you want to make things you can''t describe with the english language.
quote:
Original post by benjamin bunny
um, you can''t replace ASM with a higher level language. It would be completely inefficient and totally unsuited for the job.
Oh yeah?
What about LISP Machines?
Why i wanted to talk about this, is that the "AI" (witch is no ai) to do this is already here! It would be hard to do a full scale OS that can do this, but the prinsip is not that hard! (not hard == posible)
You just need a language that can describe non computer objects like walls.. and a wall is a plane witch you cant cross! a plane is mathematical, and cant cross is a simple algorythm...
You have to start from the ground, learning the OS that 1+1=2, and waht a loop is and so on... this must be hard coded. But when you have the base language (the hard coded) you can start describing other words with the others... so the word TextEditor
contains the words CharacterInput, String, Mouse Intersection... and so on...
Instead of coding, you explain what you want to code! This way the computer knows the goal, (something VisualC++ dont know) and this is the key differense.
For the gaming industry, you should make it understand "suprise me"! This word dont mean invent something new.. it just means combine already known parts into something new! What if you add a flamethrower to the sims? (I know this stage of self programming is far far away :-) ) The "suprise me" would revolutionise entertainment industry! Think how it would be to say to your computer: "I want a game, suprice me" and the result would be UnrealII + Comand and concure + the sims....
I know this is way of, but i think it would be a god idea to start this revolution with smal and simple versions....
InteligentOS 0.00000000000001 :-)
Any ideas on where to start?
You just need a language that can describe non computer objects like walls.. and a wall is a plane witch you cant cross! a plane is mathematical, and cant cross is a simple algorythm...
You have to start from the ground, learning the OS that 1+1=2, and waht a loop is and so on... this must be hard coded. But when you have the base language (the hard coded) you can start describing other words with the others... so the word TextEditor
contains the words CharacterInput, String, Mouse Intersection... and so on...
Instead of coding, you explain what you want to code! This way the computer knows the goal, (something VisualC++ dont know) and this is the key differense.
For the gaming industry, you should make it understand "suprise me"! This word dont mean invent something new.. it just means combine already known parts into something new! What if you add a flamethrower to the sims? (I know this stage of self programming is far far away :-) ) The "suprise me" would revolutionise entertainment industry! Think how it would be to say to your computer: "I want a game, suprice me" and the result would be UnrealII + Comand and concure + the sims....
I know this is way of, but i think it would be a god idea to start this revolution with smal and simple versions....
InteligentOS 0.00000000000001 :-)
Any ideas on where to start?
There are many flaws with the cardinal assumptions of ths thread (largely because of unfamiliarity with the details of the application domains that are being speculated about). I address those first, then try to offer some suggestions that may spark further, more technically feasible, ideas.
Computers that design other machines work on a fixed set of assumptions. That''s fine and dandy when dealing with a fixed body of knowledge and merely improving on the technology for accomplishing a task (modern assembly line manufacture, for example), but close to useless when it comes to innovating. Until we are able to imbue our machines with semantic ability and imagination, they will only be able to refine and extend what we do.
Appropriately, you place the word "understands" in quotes. Computers have no understanding of assembly; understanding requires consciousness - a portion of the self that observes the self, creating memories and comparing them to current experiences. The computer''s consciousness would need to be able to effectively say to itself "I''m being given a program and asked to interpret/compile/execute it" for us to say it "understands". What this means is that we''d need to create computers that are closer to ALife (artifical life) machines before we can talk about understanding or direct communication.
At that point, we''re faced with the quandry of whether to stipulate that the machine always be subordinate to us, or be independent. Subordination would yield a drone, largely devoid of imagination and initiative, which would only have streamlined the interface, not th eprocess. Independence might result in a lifeform with little use for us as it grown and expands - able to create other machines and programs, able to independently glean information, process and comprehend... what use would it have for man? Why should man continue to consume resources them? (Terminator/2001 scenario). This could lead to what Arthur C. Clarke described as "The Obsolescence of Man" (Profiles of the Future).
Given that most human languages have a huge amount of redundancy in them, and that the superscalar architecture of the brain has not be the inspiration for system design so far, having the power to process this without domain limitations is feasible, but just barely.
I just thought I should point out that not all concepts are can be translated between human languages themselves (Yoruba [West Africa] has no word for "privacy", for example). Does that mean we should then encode all possible concepts in this language? Rather than trying to build a language from scratch, perhaps an evolutionary approach would be better, where the "infant" AI would emulate human instructors (just a human infants do their parents and others in the environment) to develop speech facilities...
Natural Language Processing and Synthesis is a huge field, and a lot of work is being done in it (I''ll be taking a class next semester). Generating coherent speech without subject domain restrictions has proven very challanging. Some day the barriers will be overcome, but consider the duplicity of meaning of so many words due to context in English alone and you have a fair idea of the kinds of things you''re asking. Imagination and dreaming are good and necessary, for without them there can be no development, but taking a look at what is beingcurrently done can often help to direct your dreams by noting/forming opinions on what is being done right and wrong. Informing yourself will also help you more lucidly express the ideas you have.
[side note:]
Platform independence is overrated. There really isn''t that much software that needs to run on multiple platforms. Spec consistency is much more important - the development of open protocols to enable applications talk to each other and share information as needed.
quote:
Original post by uncutno
In short: the first processor was made by hand, now it is computers designing processors (computers designs computers) with a little imput from a designer...
Computers that design other machines work on a fixed set of assumptions. That''s fine and dandy when dealing with a fixed body of knowledge and merely improving on the technology for accomplishing a task (modern assembly line manufacture, for example), but close to useless when it comes to innovating. Until we are able to imbue our machines with semantic ability and imagination, they will only be able to refine and extend what we do.
quote:
first, we need a LANGUAGE that the computer understand. The computer "understands" ASM, but it dont understand C++, it just translate it to ASM.
Appropriately, you place the word "understands" in quotes. Computers have no understanding of assembly; understanding requires consciousness - a portion of the self that observes the self, creating memories and comparing them to current experiences. The computer''s consciousness would need to be able to effectively say to itself "I''m being given a program and asked to interpret/compile/execute it" for us to say it "understands". What this means is that we''d need to create computers that are closer to ALife (artifical life) machines before we can talk about understanding or direct communication.
At that point, we''re faced with the quandry of whether to stipulate that the machine always be subordinate to us, or be independent. Subordination would yield a drone, largely devoid of imagination and initiative, which would only have streamlined the interface, not th eprocess. Independence might result in a lifeform with little use for us as it grown and expands - able to create other machines and programs, able to independently glean information, process and comprehend... what use would it have for man? Why should man continue to consume resources them? (Terminator/2001 scenario). This could lead to what Arthur C. Clarke described as "The Obsolescence of Man" (Profiles of the Future).
quote:
So we need to hard code a LANGUAGE. This language... must be so complicated that you can explain what a WALL, BSP and IP is!
Given that most human languages have a huge amount of redundancy in them, and that the superscalar architecture of the brain has not be the inspiration for system design so far, having the power to process this without domain limitations is feasible, but just barely.
quote:
then we need a TRANSLATOR! This should be a independant part of our project, so that it could be replaced, and that you could create a translator for ewery language in the world. the TRANSLATOR translates from human language to our new LANGUAGE.
"add one to A" => "A+=1" (simple example)
I just thought I should point out that not all concepts are can be translated between human languages themselves (Yoruba [West Africa] has no word for "privacy", for example). Does that mean we should then encode all possible concepts in this language? Rather than trying to build a language from scratch, perhaps an evolutionary approach would be better, where the "infant" AI would emulate human instructors (just a human infants do their parents and others in the environment) to develop speech facilities...
Natural Language Processing and Synthesis is a huge field, and a lot of work is being done in it (I''ll be taking a class next semester). Generating coherent speech without subject domain restrictions has proven very challanging. Some day the barriers will be overcome, but consider the duplicity of meaning of so many words due to context in English alone and you have a fair idea of the kinds of things you''re asking. Imagination and dreaming are good and necessary, for without them there can be no development, but taking a look at what is beingcurrently done can often help to direct your dreams by noting/forming opinions on what is being done right and wrong. Informing yourself will also help you more lucidly express the ideas you have.
[side note:]
Platform independence is overrated. There really isn''t that much software that needs to run on multiple platforms. Spec consistency is much more important - the development of open protocols to enable applications talk to each other and share information as needed.
uncutno, the closest technology that exists to what you want is called a ''theorem prover.'' They really don''t work all that well.
These systems try to build a logical proof out of your assumptions. That''s basically the process of programming if you think about it. In practice, they tend to need hints and hand holding by a human operator to get anywhere interesting. They''re useful... if you''re a PH.D in mathematics.
They just aren''t anywhere near smart enough at the moment. Computer Scientists working in Software Engineering research _are_ working on the problem, though. Check back in about 15-25 years, they might be able to put together useful (but simple) programs for lay people by then.
You can get source code to a theorem prover Here.
These systems try to build a logical proof out of your assumptions. That''s basically the process of programming if you think about it. In practice, they tend to need hints and hand holding by a human operator to get anywhere interesting. They''re useful... if you''re a PH.D in mathematics.
They just aren''t anywhere near smart enough at the moment. Computer Scientists working in Software Engineering research _are_ working on the problem, though. Check back in about 15-25 years, they might be able to put together useful (but simple) programs for lay people by then.
You can get source code to a theorem prover Here.
I can settle this once and for all.
If you''ve ever worked with digital circuitry(like, actual transistors and gates), then you''ll know that a processor isn''t much different.
A processor of ANY speed will always be limited by to the incredibly primitive mechanisms that allow digital circuits to perform mathematical operations on binary numbers, so no matter how fast or how abstract you think you''re getting, each and every single operation on a digital computer will always filter down to discrete mathematical operations performed on binary data..
Sure, there are lots of ways of getting there, but no matter how it happens, whether you compile the code to asm or run it through an interpreter(which basically filters your code and sends the appropriate low-level instructions the same way), the CPU does not care one bit, it''s ALL numbers.
Regardless of what software does, "computers" will only ever be calculators with memory. The ONLY thing a processor can do is discrete math, tiny pieces at a time. Anything beyond that is an abstraction. I know what you''re trying to get across by suggesting "why can''t the hardware understand what a bsp is?", but the truth of the matter is, that if it ever did, it would not be the hardware, but a further abstraction implemented in the logic of the circuits..
At the core, digital circuits are extremely primitive, and no matter how the data gets there(compiled or interpreted), the computer will only ever see these things as mathematical operations and data..
The moral of the story is: Anything that can be done on a computer can already be done. Maybe just not fast. You''re not talking about innovations in computers, you''re talking about some special case situations in software to handle specific circumstances..
In that case, I''d be totally thrilled if someone could actually pull somethihg like that off..the problem is, to make it work on any decent level you''d end up having to special-case everything to death and pigeonhole everything into one ore more compartmentalized concepts of what the end result would be..
For instance, what if I assumed a text editor had feature X and I didn''t get it? Where can you draw the line? You have to draw A line, and as soon as you do, you''re starting to special-case things, and that eliminates the original purpose anyway..
Still, I wouldn''t mind seeing the results of some research like this..
"Like all good things, it starts with a monkey.."
If you''ve ever worked with digital circuitry(like, actual transistors and gates), then you''ll know that a processor isn''t much different.
A processor of ANY speed will always be limited by to the incredibly primitive mechanisms that allow digital circuits to perform mathematical operations on binary numbers, so no matter how fast or how abstract you think you''re getting, each and every single operation on a digital computer will always filter down to discrete mathematical operations performed on binary data..
Sure, there are lots of ways of getting there, but no matter how it happens, whether you compile the code to asm or run it through an interpreter(which basically filters your code and sends the appropriate low-level instructions the same way), the CPU does not care one bit, it''s ALL numbers.
Regardless of what software does, "computers" will only ever be calculators with memory. The ONLY thing a processor can do is discrete math, tiny pieces at a time. Anything beyond that is an abstraction. I know what you''re trying to get across by suggesting "why can''t the hardware understand what a bsp is?", but the truth of the matter is, that if it ever did, it would not be the hardware, but a further abstraction implemented in the logic of the circuits..
At the core, digital circuits are extremely primitive, and no matter how the data gets there(compiled or interpreted), the computer will only ever see these things as mathematical operations and data..
The moral of the story is: Anything that can be done on a computer can already be done. Maybe just not fast. You''re not talking about innovations in computers, you''re talking about some special case situations in software to handle specific circumstances..
In that case, I''d be totally thrilled if someone could actually pull somethihg like that off..the problem is, to make it work on any decent level you''d end up having to special-case everything to death and pigeonhole everything into one ore more compartmentalized concepts of what the end result would be..
For instance, what if I assumed a text editor had feature X and I didn''t get it? Where can you draw the line? You have to draw A line, and as soon as you do, you''re starting to special-case things, and that eliminates the original purpose anyway..
Still, I wouldn''t mind seeing the results of some research like this..
"Like all good things, it starts with a monkey.."
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement