Current location - Quotes Website - Team slogan - How to treat Sketch as an intelligent programming language
How to treat Sketch as an intelligent programming language
This belongs to program synthesis and is a partial branch of formal verification.

Its slogan is to let the machine automatically generate codes that meet the requirements (functional requirements, safety requirements), and the generated codes have been formally verified. Theoretically, formally verified code does not need to be tested. Programmers no longer need to rack their brains to think about test cases. This guarantee is extremely strong because the machine helps us to verify that the behavior of the program meets the requirements under all possible inputs. If there is a variable called distance_to_wall in the control program of a driverless car, and then the code we generate ensures that this variable is always greater than 0, then we have a driverless car that will not hit the wall. But now the technology is not so mature, but scientists are working hard.

As a result, everyone is a product manager, just ask for it. For computer scientists who have been pursuing the ultimate automation, how attractive this future is. Sketch is an influential project, but as you said, its application is still limited.

Program generation mainly depends on constraint solving technology. Everyone has been exposed to constraint solving in high school. Solving linear equations is an example of constraint solving. SAT problem is also a constrained solution. We can find that constraint solving is not an algorithm, but a very general name. There are actually different decision-making procedures for different constraints. Satisfiability module theory technology is a framework for integrating different solving algorithms. My friends, Dr. Sicun Gao and Dr. Soonho Kong of Carnegie Mellon University, developed an SMT solver called Dreal, which supports differential equations in constraints. Coincidentally, Takashi Murakami is now doing research in the laboratory where the sketch author is located.

The technology of program generation is probably to transform the source code into a constraint expression, and then transform it into an unknown variable, and then throw it to the constraint solver to find a set of solutions. Lassbo Dick, a professor at the University of California, Berkeley, opened the program generation course (Lassbo Dick -EECS), which can be seen from this.