【Currently】Graduate School of Information Science
【Planned lead】Department of Computer Science, School of Informatics
-Professor Sakai, what are you researching?
How can we make programs without bugs? With this as the goal, I am advancing research into the basic theory of programming. I do not know when the results created by accumulating the study of science will be used or become useful, this is particularly true for basic theory. It might be 50 years in the future or it might never be used at all. Of course, I work hard to ensure it will be used at some point. However, I am still interested in this research even if I do not know whether it will be used.
My course is a department that goes right to the heart of science and the lectures are difficult. However, it is a wonderful faculty that enables you to understand not just software but also other matters that encompass this. I want to make my students acquire basic skills and techniques that make them think "Great!" after they have graduated. I want to cultivate in them the potential to be able to always chase after things on the cutting-edge because when you are always chasing after things on the cutting-edge, they quickly become old technology. People who acquire knowledge of theoretical matters are active in many different areas. Graduates from my research department are very highly valued by companies.
-What type of knowledge and awareness do you need?
Knowledge of mathematics and discrete mathematics are essential. What you learn at high school is continuous mathematics and there may be people who have bad memories of calculus or similar. Discrete mathematics in terms of high school mathematics is something like the extension of a field for a set. We often use knowledge that you will not have learnt at high school but it is enough for you to study as normal because you like mathematics. Oh, this is unrelated to mathematics but there are sometimes people who cannot write sentences at all so they should be reading more. That's what I think (laughs).
-Where can we see your research?
For programs, when you say "I want this type of program", for example, when thinking of "a program that allows you to eat delicious food" you can put in ingredients and such (laughs). It would be really ideal to do this automatically but it has been proven theoretically that perfect things are almost impossible. When using human knowledge and surpassing a fixed point, we run into results that say it is impossible. However, for universal things it is possible to cover 90% of a specific area even if perfection is impossible so what we want is to come close to the ideal even if it is just a little closer.
I don't know how many years it will take but I want programming to be something that can be completed with little human involvement. Theory has the aspect that it cannot be reversed once proven so after proving a theory we can then wonder whether to expect something useful even if it is impossible in its entirety.
When inputting something and "Yes or No" is output, we call this a "question". There is something called "decidability theory" which can create a program that always outputs the answer. If it can definitely output "Yes or No" even after taking 100 years to do so, it is said to be a decidable theory. We are then left with the problem of speed. However, if we are able to prove that it is not decidable, we will then decide to not create such a program.
The difficult problem is the outline, things we cannot do have been proven but this does not mean it is completely useless. There are many unresolved problems of which nobody knows the answer in the world, for example, the "P versus NP problem" is a famous problem of this kind. Everyone knows there is a believable answer to this problem but it cannot be proven. It is impossible to prove without an original idea that has not existed until now. The unresolved problem I am currently tackling is one of the properties of rewrite calculation but it often turns out that I think I have solved it then realize that I made the same mistake last year (laughs). I introduce new ways of thinking and advance little by little but cannot solve it unless there is some kind of break through. However, it might be possible that I can use a mathematical result created 50 years ago to solve it, this also happens. Computers have been around for 60 years and there are also instances in which results from mathematics during this time have been dug up and then used to advance our work. I will not be alive in 100 years but would like to at least be able to produce something that can be used in 100 years.
-Professor Sakai, why do you currently work on this research?
When I was in high school, I ran a computer equipped with an IC on a single board, "Single board computers" were popular, and I wanted to do programming. I wanted programming to be easier even just a little so I made a simple compiler that transfers what people write into a language format that a computer can understand. A compiler was referred to as an automatic program a long time ago and making a compiler required great skill. However, now compilers can be made during student experiments since various theories have been researched. This was the catalyst for what I am currently researching.
-Do you have a message for students wishing to join the School of Informatics?
I would like them to study the basics of mathematics (laughs). Mathematics studied at high school is not often used but have fun doing it and if you don't understand a problem, feel the thrill of it. This makes me happy. If it is something theoretical, I want my students to research what they want to do. I had a student who said that they wanted to do research related to a puzzle game like Sudoku and let that student do what they wanted. Puzzles are actually quite mathematical. Solving puzzles is of course not hard and creating them is not so difficult but to exist as a puzzle means that there must be only a single answer. The student researched "whether the number of hints can be minimized to exist as a puzzle" and this was quite complex. This task perplexed my student but they also had fun doing it. In the end the problem was partially solved but the student graduated just before solving it (laughs).