In daily life, virtually all of human communication is expressed in one of the thousands of natural languages that are spoken world-wide; these languages are rich in their expressive capabilities, flexible in their applications, subtle in their nuances, and beautiful in their form. However, they are also full of gaps and ambiguities; while most of these can be usually overcome by intelligent beings that are able to deduce the intended interpretation from the context of the communication, they are from time to time are also the source of misunderstandings and disagreements, minor mishaps as well as major disasters. Thus, when communicating with ignorant partners such as computers, software developers use artificial languages that are designed in order to unambiguously express their intentions of how a computer program shall operate to solve a specific computational problem. However, even if millions of software developers use such programming languages every day, it is probably fair to say that only a minor fraction understands these languages in a sufficient depth to be able to answer subtle and critical questions about the behavior of the resulting programs. Ultimately, such an in-depth understanding requires a formal basis.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Programming Languages

  • Wolfgang Schreiner

摘要

In daily life, virtually all of human communication is expressed in one of the thousands of natural languages that are spoken world-wide; these languages are rich in their expressive capabilities, flexible in their applications, subtle in their nuances, and beautiful in their form. However, they are also full of gaps and ambiguities; while most of these can be usually overcome by intelligent beings that are able to deduce the intended interpretation from the context of the communication, they are from time to time are also the source of misunderstandings and disagreements, minor mishaps as well as major disasters. Thus, when communicating with ignorant partners such as computers, software developers use artificial languages that are designed in order to unambiguously express their intentions of how a computer program shall operate to solve a specific computational problem. However, even if millions of software developers use such programming languages every day, it is probably fair to say that only a minor fraction understands these languages in a sufficient depth to be able to answer subtle and critical questions about the behavior of the resulting programs. Ultimately, such an in-depth understanding requires a formal basis.