Dzundza V. S., Chernitskaya O. V., Tsvetayeva O. V.
Oles Honchar Dnipropetrovsk National University
Sketch is a new programming language which was created by Armando Solar-Lezama. This language differs from the other, because it allows programmers to write programs with omitting some of the sections of code, which Sketch fills automatically while optimizing the resulting structure.
The main purpose of creating language Sketch is to facilitate the work of programmers. Nevertheless, the creators of the language pursue another more global goal, which consist in creating software tools that perform automatic program synthesis, creating programs without a person.
Using compiler Sketch has been realized several projects by the Laboratory of Computer Science and Artificial Intelligence. In particular, based on the Sketch were created a conversion system of hand-drawn flowcharts in code and translator of Java code in SQL-queries.
Years of research have shown that the highest efficiency of the use of this language is achieved in dealing with complex multilateral problems. Moreover, the compiler Sketch can be used as a spotter of the code. Last version of this compiler has appeared capable to remove the mistakes admitted by the students in a code of the programs, written by them.
The main task of the compiler is the method of finding the optimal solutions specific task. Any logical and mathematical problem can be solved in several ways, the amount of which, in some cases, may tend to infinity. And if the program is very complicated, the number of solutions for its implementation is very, very large, and the search for optimal solutions can take a great time. Creators of language found a way greatly reduce the scope of the search of solutions, so that the search of the optimal solution takes time numbering in milliseconds.
Developers see a forward way of development of language in providing opportunities programmer to define a set of criteria that must be satisfied sections of code, individual functions and the entire program. Then the compiler can create functions and code sections that match these criteria. In fact, it may become more challenging for programmer, who in some cases will have to describe many diverse criteria. Nevertheless, such an approach would solve a very difficult problem, and it will be much faster than traditional programming.
Sketch language designers recognize that they still have to «move the mountain» before Sketch can reach the level of practical application. In some tests, the compiler requires a lot of time for the synthesis of machine code and it is associated with an initially insufficient accuracy of the description of the task. Now all of these aspects require from programmer the global understanding of task on the whole and skills to use all nicety of process of automatically program synthesis. But with the evolution of compiler the language will become more intelligible. This will allow a quick and smooth switching to sketch from the most popular programming languages.