The approaches about natural language programming
-
- Member
- Posts: 33
- Joined: Tue Aug 13, 2019 10:52 pm
- Libera.chat IRC: QuantumRobin
- Location: Piaui, Brazil
The approaches about natural language programming
The approaches about natural language programming are describe here...
Approach #1: Brute Force Crowd Source. This is the method used in Amazon's ALEXA, Apple's SIRI, Wolfram's ALPHA, Microsoft's CORTANA, Google's HOME, etc. In all these cases, a programmer imagines a question or command that a user will give the machine, and then he writes specific code to answer that specific question ("Alexa, what is the temperature outside?") or carry out that particular command ("Alexa, turn on the living room lights"). Get enough imaginative programmers to write enough routines, et voila! Apparently Intelligent machines that actually exist and work and learn and grow, today.
Approach #2: Dynamically-Generated-User-Tweaked code. This is essentially describe here...
If the programmer is happy with the generated code, (s)he can approve of it and it needn't be saved because it will generate correctly each time before compiling - a label would be attached to the high-level NLP program to tell the compiler that it compiles correctly. If the generated code isn't right though (or isn't complete), that label will not be attached to the NLP code and the support code will need to be saved as part of the program instead. Some of that support code could still be auto-generated initially, creating the loop and setting up the count, for example, while leaving the programmer to fill in the content of the loop manually.
Approach #3 is the one where you build AGI first so that it can solve all the programming problems itself.
What are the programmers' statements about the approaches I quoted above?
Approach #1: Brute Force Crowd Source. This is the method used in Amazon's ALEXA, Apple's SIRI, Wolfram's ALPHA, Microsoft's CORTANA, Google's HOME, etc. In all these cases, a programmer imagines a question or command that a user will give the machine, and then he writes specific code to answer that specific question ("Alexa, what is the temperature outside?") or carry out that particular command ("Alexa, turn on the living room lights"). Get enough imaginative programmers to write enough routines, et voila! Apparently Intelligent machines that actually exist and work and learn and grow, today.
Approach #2: Dynamically-Generated-User-Tweaked code. This is essentially describe here...
If the programmer is happy with the generated code, (s)he can approve of it and it needn't be saved because it will generate correctly each time before compiling - a label would be attached to the high-level NLP program to tell the compiler that it compiles correctly. If the generated code isn't right though (or isn't complete), that label will not be attached to the NLP code and the support code will need to be saved as part of the program instead. Some of that support code could still be auto-generated initially, creating the loop and setting up the count, for example, while leaving the programmer to fill in the content of the loop manually.
Approach #3 is the one where you build AGI first so that it can solve all the programming problems itself.
What are the programmers' statements about the approaches I quoted above?
-
- Member
- Posts: 33
- Joined: Tue Aug 13, 2019 10:52 pm
- Libera.chat IRC: QuantumRobin
- Location: Piaui, Brazil
Re: The approaches about natural language programming
The prototypes (ALEXA, SIRI, etc) are based on Approach #1, and they are being scaled up, daily, by a plethora of crowd-programmers motivated by the royalties they hope to get when users employ the "skills" they develop for these machines. So it is clear that we humans know how to build Apparently Intelligent machines, and we know how to motivate our fellow humans to improve and expand and scale up these machines. Pretty hard to compete with that.
Re: The approaches about natural language programming
This is now the fourth? fifth? thread about "natural language programming" that surfaced in the last couple of months. All of it on the wish-wishing / Sputnik view level. What do you think this will accomplish? That someone will come, wave the magic wand, and suddenly you can program without learning the first thing about data flow, structured programming, version management, diffs and merges, testing etc.?
Every good solution is obvious once you've found it.
-
- Member
- Posts: 33
- Joined: Tue Aug 13, 2019 10:52 pm
- Libera.chat IRC: QuantumRobin
- Location: Piaui, Brazil
Re: The approaches about natural language programming
Maybe I will find other people who is trying to create the natural language programming or human-language-level programming.Solar wrote:This is now the fourth? fifth? thread about "natural language programming" that surfaced in the last couple of months. All of it on the wish-wishing / Sputnik view level. What do you think this will accomplish? That someone will come, wave the magic wand, and suddenly you can program without learning the first thing about data flow, structured programming, version management, diffs and merges, testing etc.?
David Cooper is interested in natural-language programming. The Graham Nelson, the creator of the Inform system (http://inform7.com/) is interested in natural-language programming. Pablo, who developed the SAL (the Spanish/English version of the Plain English Programming (https://forums.anandtech.com/threads/na ... l.2559516/) is interested in natural-language programming. Generally speaking, maybe you'll find that people "brought up" in the C-language tradition are less amenable to the idea of natural language programming than people "brought up" in the BASIC/COBOL/Pascal tradition.
Brute-force natural language "understanding" is simple and yet has given us interesting and useful Apparent Intelligences like Amazon's ALEXA, Apple's SIRI, Wolfram's ALPHA, Microsoft's CORTANA and Google's HOME. And Plain English programming.
Plain English Programming is a very good starting point.
Maybe the Plain English Programming is a better route to follow than the neural network approach, and anyone who follows it will likely get to AGI sooner. The neural net approach will create imperfect AGI which may be highly irrational. We'll never be able to trust it. We need to design AGI where we understand every little bit of functionality contained in it, and that's what my approach will provide. A development of Plain English Programming would do the same because it programs everything directly without training any imperfect nets.
Plain English Programming may be able to become full NLP if enough people interact with it and extend the range of phrases it can handle, so while it may only handle a subset of English today, that is not an inherent restriction on it. It can keep improving as people write code to support more words. For that reason, it is arguably not a step towards NLP because it arguably already is NLP. We will only find out when enough code is written to handle all words an all possible uses of them. Maybe it will run into difficulties with ambiguities, but little additions to the program could fix that. AGI will study Plain English Programming in the future to see what it could have done if the world had got behind it in 2006.
- DavidCooper
- Member
- Posts: 1150
- Joined: Wed Oct 27, 2010 4:53 pm
- Location: Scotland
Re: The approaches about natural language programming
You should wait until there's been some significant advance before bothering people about this subject here again. You won't find anyone new here that you haven't already reached, and you have nothing new to tell them. Is there any forum you've posted to where you're getting a positive reaction? If so, post about it some more there and see if you can annoy them too.QuantumRobin wrote:Maybe I will find other people who is trying to create the natural language programming or human-language-level programming.
Help the people of Laos by liking - https://www.facebook.com/TheSBInitiative/?ref=py_c
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
-
- Member
- Posts: 33
- Joined: Tue Aug 13, 2019 10:52 pm
- Libera.chat IRC: QuantumRobin
- Location: Piaui, Brazil
Re: The approaches about natural language programming
David Cooper,DavidCooper wrote:You should wait until there's been some significant advance before bothering people about this subject here again. You won't find anyone new here that you haven't already reached, and you have nothing new to tell them. Is there any forum you've posted to where you're getting a positive reaction? If so, post about it some more there and see if you can annoy them too.QuantumRobin wrote:Maybe I will find other people who is trying to create the natural language programming or human-language-level programming.
Maybe I will not find in a forum other people who is trying to create the natural language programming or human-language-level programming.
Solar,
Do you agree with the David Cooper's response that he posted in this topic?
If not, why you don't agree with the David Cooper's response that he posted in this topic?
Re: The approaches about natural language programming
Here's a counter example for you: My first programming language was Pascal, and I think NLP is as useful as underwater basket weaving.QuantumRobin wrote:Generally speaking, maybe you'll find that people "brought up" in the C-language tradition are less amenable to the idea of natural language programming than people "brought up" in the BASIC/COBOL/Pascal tradition.
Why do you think a forum of OS programmers (i.e. practitioners of the trade) would contain people interested in such a theoretical and far-away topic? And why would you continue to think so after having been rebuffed twice already?
Carpe diem!
-
- Member
- Posts: 33
- Joined: Tue Aug 13, 2019 10:52 pm
- Libera.chat IRC: QuantumRobin
- Location: Piaui, Brazil
Re: The approaches about natural language programming
nullplan,nullplan wrote:Here's a counter example for you: My first programming language was Pascal, and I think NLP is as useful as underwater basket weaving.QuantumRobin wrote:Generally speaking, maybe you'll find that people "brought up" in the C-language tradition are less amenable to the idea of natural language programming than people "brought up" in the BASIC/COBOL/Pascal tradition.
Why do you think a forum of OS programmers (i.e. practitioners of the trade) would contain people interested in such a theoretical and far-away topic? And why would you continue to think so after having been rebuffed twice already?
Thanks for your response!
The Solar deleted the other response that he posted in this topic.
Re: The approaches about natural language programming
First, your last reply didn't exactly answer the argument/counter it. Second, I agree with everyone else here -- I do not consider NLP worthwhile. I consider natural language processing something interesting to play with and to make speech recog systems out of, but I would never want to program in it. People who want that kind of universe are lazy and, I'd guess, don't have the talent or drive to learn how to program anyway.
Also, the "brute-force method" (approach no. one) in your OP is not a method of programming in the sense that we use here (or in any other developer forum). Sure, your educating a very massive, highly distributed, HA-enabled machine learning algorithm (and its associated models), but you are in no way "programming" the machine. You are simply generating the illusion that the machine is intelligent, when it in fact is most definitely not and is just as much of a dumb machine as all the machines that came before it.
Finally, since we're on the subject, why would you even want to program in a naturalistic way? What benefit would programming "naturally" bring to the table that less "natural" languages haven't already delivered? By wanting to program "naturally", you are over-complicating a problem that is already complicated enough as is, and making it far more difficult to accomplish any kind of task in a programmatic way, both for those who program in your "natural" way as well as those who write the systems to interpret, parse, and translate your "natural" code into machine code.
Also, the "brute-force method" (approach no. one) in your OP is not a method of programming in the sense that we use here (or in any other developer forum). Sure, your educating a very massive, highly distributed, HA-enabled machine learning algorithm (and its associated models), but you are in no way "programming" the machine. You are simply generating the illusion that the machine is intelligent, when it in fact is most definitely not and is just as much of a dumb machine as all the machines that came before it.
Finally, since we're on the subject, why would you even want to program in a naturalistic way? What benefit would programming "naturally" bring to the table that less "natural" languages haven't already delivered? By wanting to program "naturally", you are over-complicating a problem that is already complicated enough as is, and making it far more difficult to accomplish any kind of task in a programmatic way, both for those who program in your "natural" way as well as those who write the systems to interpret, parse, and translate your "natural" code into machine code.
Re: The approaches about natural language programming
The same words/phrases/sequences always refer to the same set of limited meanings.
Why not add effective code to those things for parsing natural language and have the program give results that happen to be useful or enlightening at least to the one that programmed it?
Probably that's why humanoid/animal/vehicle robots are so intelligent. It seems that natural language needs a real world to emulate with a constant state, like what we experience. Then it's easy to derive verbal/visual/physical/logical/etc. results if we can spawn what is said and move things around to get results, like when reasoning.
Modisms seem to be an example of communicating things with the computer. They are constant, simple, set context immediately.
Why not add effective code to those things for parsing natural language and have the program give results that happen to be useful or enlightening at least to the one that programmed it?
Probably that's why humanoid/animal/vehicle robots are so intelligent. It seems that natural language needs a real world to emulate with a constant state, like what we experience. Then it's easy to derive verbal/visual/physical/logical/etc. results if we can spawn what is said and move things around to get results, like when reasoning.
Modisms seem to be an example of communicating things with the computer. They are constant, simple, set context immediately.
YouTube:
http://youtube.com/@AltComp126
My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
http://youtube.com/@AltComp126
My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
- DavidCooper
- Member
- Posts: 1150
- Joined: Wed Oct 27, 2010 4:53 pm
- Location: Scotland
Re: The approaches about natural language programming
Not quite. I consider it to be more than worthwhile, but didn't want to discuss it again until there's a demonstrable advance that makes it worth opening it up again.Ethin wrote:I agree with everyone else here -- I do not consider NLP worthwhile.
Working at a higher level enables more automation. Imagine a user switching their computer on and having a conversation with it like this:-Finally, since we're on the subject, why would you even want to program in a naturalistic way?
"Can you make a wordprocessor that has every second line of text run from right to left instead of left to right?"
"Done."
"Great. Can you do it with the letters in mirror image when they're going to the left?"
"Done."
"Actually, I think it might be better to switch to Arabic text for going that way. Can you try that?"
"Done."
"Thanks - it looks great! That would have taken me at least a week of programming in the old days."
"That's what I'm here for."
Do you think anyone will program the old way once that kind of power is available?
Help the people of Laos by liking - https://www.facebook.com/TheSBInitiative/?ref=py_c
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
Re: The approaches about natural language programming
What you describe is not programming but rather customization of an existing concept.
managarm: Microkernel-based OS capable of running a Wayland desktop (Discord: https://discord.gg/7WB6Ur3). My OS-dev projects: [mlibc: Portable C library for managarm, qword, Linux, Sigma, ...] [LAI: AML interpreter] [xbstrap: Build system for OS distributions].
- DavidCooper
- Member
- Posts: 1150
- Joined: Wed Oct 27, 2010 4:53 pm
- Location: Scotland
Re: The approaches about natural language programming
Most programming is just reinventing wheels, so it makes sense to automate all that by working at a high enough level to recognise that. There was an innovation in the example above in which every second line runs in the opposite direction. Most programming doesn't involve anything new though. Most parts of an operating system don't do anything new, but just produce the same old functionality as every other OS. If you're working at the highest level, you'd just say: "I want to make an operating system." The system replies, "You're using one already." You reply, "But I want to experiment with a new way of doing X." (Insert your experiment in place of X.) The system replies, "Okay, I can do that: wait a moment while I redesign myself... Done. Congratulations: you have speeded up performance by -55%. Do you want me to try anything else?"Korona wrote:What you describe is not programming but rather customization of an existing concept.
Help the people of Laos by liking - https://www.facebook.com/TheSBInitiative/?ref=py_c
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
MSB-OS: http://www.magicschoolbook.com/computing/os-project - direct machine code programming
Re: The approaches about natural language programming
Though that is an interesting (and star trek-ish way of working with a computer) I certainly wouldn't want to program a computer with it. Not only would it be too wordy but it would be way too abstract to me. Plus, if its going to be possible I'd want to do it in an offline manner instead of screaming my intentions to the universe.
Re: The approaches about natural language programming
That's more science fiction than a system that is likely to exist in the next 100 years (and maybe ever).
managarm: Microkernel-based OS capable of running a Wayland desktop (Discord: https://discord.gg/7WB6Ur3). My OS-dev projects: [mlibc: Portable C library for managarm, qword, Linux, Sigma, ...] [LAI: AML interpreter] [xbstrap: Build system for OS distributions].