You are on page 1of 4

Abstract This paper is a focus on programming using natural languages.

It will also note key challenges posed by the current programming languages. Natural language programming an ongoing field of study and the focus will be on the current characteristics that have been established by the researchers. The paper will also look at the possible merits the natural languages provide as well the drawbacks and challenges faced in pursuit of this advanced technology. Introduction Programming has been one of tools that have allowed huge strides in the computing field. Programming has transformed the computer hardware from being just an electronic device to being a multipurpose machine. Programming is often regarded as a process of transforming a mental plan that is in familiar terms into one that is compatible with a computer (Pane, Ratanamahatana & Myers 2). During the early years of the computer industry, computers were made for complicated calculations and simulations and pretty much nothing else. Today the computers purpose has evolved and the user expectations have changed. The end user want to play music, play video games, create word documents on their computers but this was not the initial intention of the first computer scientists. Fundamentally however the principles of computing devices have remained the same all through albeit the hardware is more complicated and a million times faster (Knoll & Mezini 542). Currently computers slavishly follow the instructions provided by the programmer. It is therefore crucial that if there is anything that will be accomplished using this computer, then the programmer will have to outline everything in excruciating detail (Cozzie & King 1). In the efficient development of computer programs, it will include three general phases. One is the conceptualization of a program idea. Secondly we have the translation of the idea in to a form that the computer can understand and finally the implementation of the idea. For an efficient process therefore, it would mean that the programmer should spend more time coming up with idea compared with the time taken to implement it. Unfortunately in our current situation, more time is spent debugging the programs and not coming up with new ideas. The other challenge facing current programming languages it the rate at which they evolve. Currently the best programming languages are object-oriented programming languages but the question is; how many are there? The answer is numerous and all with different syntax. For a computer scientist this is not really a concern since adapting to new programming techniques is part of their work hazard however there are other professionals such as mathematicians, physicists and engineers who develop computer programs for the purposes of their professions . They however end up using outdated programming techniques since they dont have the time to learn about the newest programming techniques (Knoll & Mezini 543). Natural Language Programming There are many challenges that can be attributes to the current programming techniques. There has however been research to develop a new technique for developing computer programs. The ability to make program using a natural language i.e. using everyday speech was solve many problems for the computing world. For example, it would alienate the need to learn different programming languages for

non-computer scientist. It would improve the productivity of software engineers and developers as well as reduce the number of bugs in programs. The idea of programming using a natural language has been entertained by computer scientist since the onset of computer programming. Programming using a natural language is also known as naturalistic programming, which means programming with the aid of a natural language (Knoll & Mezini 542). According to a feasibility study conducted on naturalistic programming, people want computers that are easier to use, computers which you tell what you want and they figure it out (Lieberman & Liu 1). The ability to tell a computer what to want you want in plain speech would be considered as AI complete and most computer scientists have termed it as impossible. Researchers have been undeterred by such conclusions and have soldiered on in their research. Naturalistic Programming is based on the model of human thinking. Human beings have perceptions which constitute a set of ideas. Naturalistic programming involves capturing this ideas and reflecting them in a natural language and then into a computer program (Knoll & Mezini 544 - 548). Characteristics of a Natural Language and Naturalistic Programming When developing a naturalistic programming language there are certain characteristics about a natural language that must be kept in mind. Not all characteristics affect programming but in comparison with the contemporary programming languages there are three distinctive features that dont compare well. These are implicit referencing, compression and context dependence. On implicit referencing, natural languages make the use of pronouns like it, she or he to represent objects. These words have inherent meaning when used alone and usually refer to other parts of a sentence used prior to their use. In contemporary programming languages explicit referencing is used where all entities in a program are named using concrete and unique names. It is important to note that the use of implicit referencing reduces the amount of information exchanged thus reducing redundancy. The second characteristic is compression. Compression refers to the expression of several ideas in one sentence using fewer words. Compression includes both syntactic and semantic compression. Syntactic compression refers to the expression of two ideas using structural words such as and or then. Semantic compression refers to use of statements whose use alone have no meaning but when used in a sentence represent different ideas, for example: First, go over the array from left to right, then the other way around. The phrase the other way around provides semantic compression. The final characteristic that this paper will point out is context independence. Traditional programming languages excel at being context free but natural languages on the other hand are not context free in the least bit. Natural languages can thus present a problem of ambiguity if not carefully examined before using their assistance in naturalistic programming (Knoll & Mezini 545-546). For a naturalistic programming language on the other hand would need to possess certain characteristics in order to cope well with the challenges of a natural language. The first would be the mixed-initiative dialogue. This refers to the ability of the system to interact with the user, this would mean that system would not slavishly execute the commands given but instead would interact with the

user to fully interpret the users requirements. The second is that the language would have to be evolvable. This is in respect to the naturalistic programming domain. Due to the ever changing nature of the natural language semantics the system needs to be dynamic enough to evolve itself in real-time. The others include being flexible and adaptive. The uses are more like than not to have disfluencies when interacting with the system. In order to add a robust understanding mechanism the system needs be flexible. Adaptability comes in when the users are not the same. While one user might have a wellorganized and chronologically arranged set of ideas another user might prove not to possess similar skills. For a naturalistic programming language the system needs to be adaptive of these differences (Lieberman & Liu 8 - 9). Advantages of a Naturalistic Programming Naturalist Programming provides several merits in terms of efficiency and language independence. Efficient programming techniques can be achieved by naturalistic programming languages. The programs would be short and would be done much faster. Language independence means that the compiler can output in any contemporary programming language. The user would also not need to worry about special characters or debugging (Knoll & Mezini 555). The compiler would have an automated debugger. Drawbacks in Naturalistic Programming A well-developed naturalistic programming language would be the solution to so many programming setbacks however such a language faces several setbacks of its own. The first is that there are different ways of expressing ideas. While using a natural language an idea can be represented in several forms of which dont share synonyms, this would imply that programming the language interpretation would require the developer to only use a certain set of preferred expressions and that in a way takes away the natural language aspect. The second challenge is the vague natural language specification. In natural language speech we tend to be vague while specifying certain things. This is usually due to the implicit referencing of a natural language. Thus if one was to forget to indicate a certain specification the computer system would have no way of compensating for such a mistake (Knoll & Mezini 554). Conclusion The ability to make programs directly using natural languages has long been the dream of computer science. Naturalistic programming would help to do away with most of the challenges the contemporary programming languages exhibit. Despite major drawbacks and development challenges there are examples of new programming languages than can read natural languages and create executable code. A good example is Pegasus which apart from generating executable program files can translate programs between different natural languages. However research is not yet over because of such major accomplishments and there is yet more that can be achieved to an almost complete AI system. References

Pane, John. Ratanamahatana, Chotirat and Myers, Brad. Studying the Language and Structure in NonProgrammers Solutions to Programming Problems: Carnegie Mellon University, 2000. Knoll, Roman and Mezini, Mira. Pegasus: first steps toward a naturalistic programming language. In OOPSLA 06: Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications, pages 542559, New York, NY, USA, 2006. ACM. Cozzie, Anthony and King, Samuel. Macho II: Even More Macho: University of Illinois at UrbanaChampaign, 2011. Lieberman, Henry and Liu, Hugo. Feasibility Studies For Programming In Natural Language: Kluwer Academic Publishers/Springer. Printed in the Netherlands, 2005

You might also like