Page 1 of 1
A place for Natural Language Programming
Posted: Thu Apr 11, 2019 4:44 am
by manhobby
OSDev.org is "The Place to Start for Operating System Developers," not "The Place to Start for People Interested in Natural Language Programming."
Why are there not a place to Start for People Interested in Natural Language Programming?
Re: A place for Natural Language Programming
Posted: Thu Apr 11, 2019 5:02 am
by AJ
Hi,
For there to become a "place to start for natural language programming", someone with good knowledge and time (and money) to invest would have to put in the effort to create such a resource. Not a small undertaking.
I'm not interested in NLP (no offence - but there are only so many hours in a day and you can't do everything...). Who should create such a resource?
I see that Stack Overflow has tags of "natural-language-processing". And Wikipedia has an article. For now, perhaps they are the best place to start. Otherwise, find someone who is interested enough and has the resources and persuade them to create something.
Cheers,
Adam
Re: A place for Natural Language Programming
Posted: Thu Apr 11, 2019 8:43 am
by iansjack
The OP seems to be interested in this topic, and has connections with others working on it. He would seem to be the ideal person to set up such a resource, or to arrange for others to do so.
Re: A place for Natural Language Programming
Posted: Thu Apr 11, 2019 11:09 am
by manhobby
It is written in book Java How to Program ninth edition that instead of using the strings of numbers that computers could directly understand, programmers began using English-like abbreviations to represent elementary
operations and that these abbreviations formed the basis of assembly languages:
1.5 Machine Languages, Assembly Languages and High-Level Languages
Programmers write instructions in various programming languages, some directly understandable by computers and others requiring intermediate translation steps. Hundreds of such languages are in use today. These may be divided into three general types:
1. Machine languages
2. Assembly languages
3. High-level languages
Any computer can directly understand only its own machine language, defined by its hardware design. Machine languages generally consist of strings of numbers (ultimately reduced to 1s and 0s) that instruct computers to perform their most elementary operations one at a time. Machine languages are machine dependent (a particular machine language can be used on only one type of computer). Such languages are cumbersome for humans. For example, here’s a section of an early machine-language program that adds overtime pay to base pay and stores the result in gross pay:
+1300042774
+1400593419
+1200274027
Programming in machine language was simply too slow and tedious for most programmers. Instead of using the strings of numbers that computers could directly understand, programmers began using English-like abbreviations to represent elementary
operations. These abbreviations formed the basis of assembly languages. Translator programs called assemblers were developed to convert early assembly-language programs to machine language at computer speeds. The following section of an assembly-language program also adds overtime pay to base pay and stores the result in gross pay:
load basepay
add overpay
store grosspay
Although such code is clearer to humans, it’s incomprehensible to computers until translated to machine language. Computer usage increased rapidly with the advent of assembly languages, but programmers still had to use many instructions to accomplish even the simplest tasks. To speed the programming process, high-level languages were developed in which single statements could be written to accomplish substantial tasks. Translator programs called compilers convert high-level language programs into machine language. High-level languages allow you to write instructions that look almost like everyday English and contain commonly used mathematical notations. A payroll program written in a high-level language might contain a single statement such as
grossPay = basePay + overTimePay
It is written in book Java How to Program ninth edition that instead of using the strings of numbers that computers could directly understand, programmers began using English-like abbreviations to represent elementary
operations and that these abbreviations formed the basis of assembly languages.
Maybe also instead of using the high-level languages, programmers will start using human language level programming.
What is OS Dev.org Community's opinion about human language level programming?
Re: A place for Natural Language Programming
Posted: Thu Apr 11, 2019 11:35 am
by DavidCooper
manhobby wrote:Why are there not a place to Start for People Interested in Natural Language Programming?
You could try setting up a Facebook group for that to see if there's enough interest in the idea to justify a proper forum, but I don't think many people working in the field will be keen to give a lot of information away because it could be equivalent to handing hundreds of billions of dollars to their rivals, and they aren't that crazy. It would also aid the development of intelligent killer robots for use on the battlefield, and that's another reason why a lot of the details should not be shared openly (until the more moral countries have built up an overwhelming lead in that area). It's a very different situation with OS development because there are plenty of parts that are freely available and well documented, so anyone who wants to have a go can simply collect the necessary parts and build an OS out of them.
If you want to build a system for natural language programming, you're really going to have to work most of it out for yourself. Gerry has revealed how his system works, but it isn't natural language programming. I pointed you towards it because it's a good starting point for seeing how a simple approach can achieve a lot more than might be expected, but it's also an opportunity to see the places where it fails, and that helps you see where the problems are that you would need to solve to get to real NLP. Gerry thinks that as more and more lines of code are added to his system (to cover more and more relationships between actions and things) it will appear more and more intelligent, eventually reaching the point where it looks fully intelligent and understands practically all possible wordings that might be used as instructions such that it responds to them correctly. He thinks that the personal digital assistants built by Amazon, Google, Apple, etc. are working in much the same way, but they have millions of users helping to train them, effectively building millions of lines of code to handle more and more specific phrases. His PEP system can't compete with that due to its small number of users. But it isn't the right approach anyway - it will never produce sufficient intelligence to be fully rational.
If you want a rational system that can handle all phrases, you can't cheat - you have to understand the entire process mechanistically and program every single part of it, converting from surface level language down into the structure of thought (and you need to be able to convert to full depth where you're working with the fundamental components of meaning), and you also have to find the right ways to store the data so that reasoning can be applied to it efficiently. There are no shortcuts - it's takes decades of hard thinking and it eats up your life, which is why people prefer to look for easier options. The details of the easier options have been published because they only half work, but they will continue to improve, so if you want a forum to discuss that, go ahead and set one up.
Maybe also instead of using the high-level languages, programmers will start using human language level programming.
What is OS Dev.org Community's opinion about human language level programming?
I'm sure they will adapt to it in a hurry when it's available, but it isn't yet and won't be of a lot of interest to them until it is. You aren't going to learn anything by asking the same people the same questions again and again.
Re: A place for Natural Language Programming
Posted: Thu Apr 11, 2019 11:50 am
by manhobby
iansjack wrote:The OP seems to be interested in this topic, and has connections with others working on it. He would seem to be the ideal person to set up such a resource, or to arrange for others to do so.
iansjack,
Why you said that I would seem to be the ideal person to set up such a resource, or to arrange for others to do so?
Why you not said that David Cooper would seem to be the ideal person to set up such a resource, or to arrange for others to do so?
Why you not said that Gerry Rzeppa would seem to be the ideal person to set up such a resource, or to arrange for others to do so?
Re: A place for Natural Language Programming
Posted: Thu Apr 11, 2019 1:47 pm
by AJ
manhobby wrote:Why you not said that David Cooper would seem to be the ideal person to set up such a resource, or to arrange for others to do so?
Why you not said that Gerry Rzeppa would seem to be the ideal person to set up such a resource, or to arrange for others to do so?
Evidence thus far indicates that they are not interested in creating such a resource - otherwise they may have done so. That's their choice. You have shown an interest in NLP and that sort of resource, hence iansjack's advice.
I think we'll lay this thread to rest here...