Next programming language

    “One evening, Rutherford walked into the lab. Although time was later, in the laboratory one of his many students was leaning over the instruments.
    “What are you doing so late?” Asked Rutherford.
    “I work,” came the reply.
    “What do you do during the day?”
    “I work, of course,” the student answered.
    “And you work too early in the morning?”
    “Yes, professor, and I’m working in the morning,” the student confirmed, counting on praise from the lips of the famous scientist.
    Rutherford frowned and asked irritably:
    “Listen, and when do you think?”

    I wanted to figure out the most probable possible direction of development of programming.
    1. A brief history of programming languages
    2. Current Potential
    3. Conclusions from the foregoing


    A brief history of programming languages.



    I apologize for the text that is redundant for most, it just seems to me that the presentation is more visual, for further explanation.

    To proto-languages ​​with some stretch, programming can be pulled by using ordinary electric switches. But this is already too much for me ...

    Therefore, for my own peace of mind, I will accept the first language - machine code .
    Hello World:
    BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21


    Which subsequently led to at least a little readable form - assembler .
    Hello World:
    
    CODE SEGMENT
    ASSUME CS:CODE, DS:CODE
    ORG 100h
    START:
            mov ah,9
            mov dx,OFFSET Msg
            int 21h
            int 20h
            Msg DB 'Hello World',13,10,'$'
    CODE ENDS
    END START
    


    But assembler is also not very simple and intuitive to read.
    And after him come all kinds of Fortran, Pascal, C and others.
    Hello World (Pascal):
    program HelloWorld;
    begin
      write('Hello, World!'); 
    end.
    


    I think the trend is obvious.

    Current potential opportunities.



    Voice recognition. For example - habrahabr.ru/post/157333

    Text compilers (literary programming). For example - habrahabr.ru/post/72310

    Machine translation. For example - habrahabr.ru/post/155675

    Spell check. For example - habrahabr.ru/post/50137

    Control systems. For example - habrahabr.ru/post/139180

    Of course, not a significant part of the possibilities is indicated, but there are clearly quite a lot of them.

    Conclusions from the foregoing



    From the history of programming languages, their approximation to ordinary human speech is especially clearly noticeable.

    And in the available capabilities there is a fairly serious willingness to implement something like this.
    There is almost everything you need, except for a full compiler. Up to the fact that the basic version of the same Inform7, it turns out, can be created right now.

    What should be the given compiler?

    As I understand it, if you get a program in any of the top-level languages ​​as a result of compilation, for example C, then further compilation into machine code should not cause any special problems.
    Rather, on the contrary, cross-platform will be provided as a bonus.

    And here it seems like 2 ways:
    1. To proceed from human speech, selecting teams for it
    2. Proceed from a programming language, selecting human phrases for it.


    The option to build on human speech is certainly more interesting.

    Something similar can really help in determining the part of speech - habrahabr.ru/post/152799
    And this is habrahabr.ru/post/148124

    Noun - name or part of the variable name
    Adjective - name or part of the variable name
    Numeral - constant, as an alternative name or part of the variable name, warning is possible with the programmer clarification
    Pronoun - name or part of the variable name
    Verb - command (in some cases a condition is possible)
    Union, adverb, preposition, particle, interjection - its name is legion and each can be either a condition or variable and command and whatever.

    And they will require a solution obviously:
    • Possibility of variables from several words (front door, window in the nursery, outdoor temperature, etc.)
    • Some feints with ears will be required for mathematics and graphics, which at the moment are not at all like human speech.
    • Similar problems with abbreviations, proper names (Jivaharlal Nehru) and Internet site addresses
    • Other


    And although there is no problem for realizing a person’s understanding by a computer, but only a task for translating words into actions, this option is still apparently more complicated.

    Than option to build on compiler commands .

    It seems easier here.
    Enter the entire available set of commands in the database and assign one or more voice analogues (synonyms) to each command. Everything that is absent in the database is considered to be variables, constants or garbage.

    But this path is far from perfect.
    You will have to memorize the existing set of phrases corresponding to the commands and interpret only them into the microphone. Accordingly, the fatal control of speech, which not everyone can withstand.

    Although it is possible to expand the functionality, in the direction of merging with natural languages. But I do not think that it will be possible to raise the functionality so much.

    And finally, a compromise is movement in both directions at the same time.

    Both the first and second options have an ultimate goal, this is a certain set of rules by which speech becomes a program. The correspondence table of human phrases, words and their synonyms - to commands or sequences of computer commands.
    Accordingly, it is entirely possible to admit that, with the development of both directions, sooner or later they will converge into one whole system.

    Although there are a lot of nuances. For example, if something like this is really implemented, it will be difficult for programmers with speech defects.

    Domestic programmers will need a separate entry corresponding to the mat, and not leading to attempts to program it. Otherwise, you can accidentally get the Terminator ...

    But on the other hand, the only opportunity for me to program, debug and run programs over the phone, walking along the street, or waiting for an order in a cafe, is already worth it. I also like the fact that it will be possible to remotely turn off the stove at home with one call, close the taps, turn on the kettle before coming in winter and heat the room to 28 ° C.
    Although for those who have a wife returning from work earlier - this is not so relevant.

    “Another superstition of that time is also known: the Man of the Book. On a certain shelf in a certain hexagon (people thought) is a book containing the essence and summary of all the others: a librarian read it and became like God. In the language of these places you can see traces of the cult of this worker of distant times. Many made a pilgrimage to find Him. For a century there have been futile searches. ”
    H.L. Borges “The Babylonian Library”

    In general, there is something funny about this - for example, the ability to use a cassette recorder to store a piece of code. Well, first disconnect it from Sinclair, and then store it. On cassettes TDK and BASF.

    Also popular now: