Next: Math. Preliminaries &ML Up: Introduction to Semantics Previous: Declarative Language vs.

Artificial Language vs. Natural Language

Comparing artificial language and natural language it is very helpful to our understanding of semantics of programming languages since programming languages are artificial. We can see much similarity between these two kinds of languages:

  1. Both of them must explain ``given'' languages.
    The goal of research on semantics of programming languages is the same as that of natural language: explanation of the meanings of given language. This is unavoidable for natural language but undesirable for programming language. The latter one has often led to post-design analysis of the semantics of programming languages wherein the syntax and informal meaning of the language is treated as given( such as PL/I, Fortran and C ). Then the research on the semantics is to understand the semantics of the language in another way or to sort out anomalies, ommisions, or defects in the given semantics-which hasn't had much impact on the language design. We have another kind of programming languages that have formal definitions, such as Pascal, Ada, SML. The given semantics allow this kind of programming language to be more robust than the previous ones.

  2. Both of them separate ``syntax'' and ``semantics''.

Despite these similarities, the difference between the studies of natural and artificial language is profound. First of all, natural language existed for thousands of years, nobody knows who designed the language; but artificial languages are synthesized by logicians and computer scientists to meet some specific design criteria. Thus, `` the most basic characteritic of the distinction is the fact that an artificial language can be fully circumscribed and studied in its entirety.''

We already have developed a mature system for SYNTAX. In 1950's, linguist Chomsky first proposed formal language theory for English, thus came up with Formal Language Theory, Grammar, Regular Grammar, CFG etc. The ``first'' application of this theory was to define syntax for Algol and to build parser for it. The landmarks in the development of formal language theory are: Knuth's parser, and YACC-which is a successful and ``final''application of formal language theory. We also understand the relationship between the Chomsky Hierachy and Machines to generate the corresponding languages:

It is very important to separate ``syntax'' and ``semantics''. Research on Semantics started in 1970's. Like Formal Language Theory, we'd like to have Formal Semantics. Right now we have definitions of Transitional Semantics, Natural Semantics, Structural and Operational Semantics. But we don't know which one is the most powerful definition. You may ask: where are we now? How far have we moved? what would be the landmarks? If the system of semantics were parallel to that of syntax, we can have a picture as following. We'll see later that SML( using SoS Semantics) is one landmark.

( Nothing is implied by the correspondence between columns! )



Next: Math. Preliminaries &ML Up: Introduction to Semantics Previous: Declarative Language vs.


cs611@
Wed Sep 28 09:56:06 EDT 1994