Super Abstracted Programming Language
1 min readIn the past, due to limited hardware performance and compiler capabilities, programmers had to develop software with hardware limitations in mind. As hardware has advanced and compilers have added numerous functionalities, most programmers no longer need to consider hardware. Thanks to this, software development productivity has increased dramatically.
Abstraction, in other words, means not needing to specify the concrete implementation details. Now, programmers are often not required to explicitly define what sorting algorithm to use, how memory should be managed, or how network communication should be handled, among other details.
Language models will enable programmers to program declaratively at a very high level of abstraction. Compilers of existing programming languages translated declarative elements into procedural machine code according to predetermined rules. However, language models can understand user intent and convert it into procedural algorithms even in situations where there are no predetermined rules.
The key point is the correctness of the converted algorithm must be guaranteed. In the case of compilers, the correctness is guaranteed through numerous tests or verification techniques. However, due to the black-box nature of language models, it is necessary to dynamically check whether the converted algorithm aligns with the user’s intent in runtime. We can apply verification techniques in the field of programming language to verify the correctness.