Ed, (01)
That is true, but you have to distinguish the object language
from the metalanguage. (02)
EB> ... it is not possible to capture anything in a notation-
> independent way". You need a notation to present the
> information to anyone else. (03)
But it is possible to use a metalanguage to define the semantics
of one or more object languages in a way that does not make any
one of the object languages more privileged than any other. (04)
I usually use Common Logic as an example, but to make the point
more clearly, I'll use the assembly language for a typical
computer. (For me, that means IBM 360, but you can adapt it to
any other machine.) (05)
The semantics of the language is defined by the System/360 POP
(Principles of Operation). And the metalanguage is a carefully
written English, mostly by Andris Padegs, but supplemented with
lots of unpublished commentary and corrections by the implementers
of each machine. (06)
That manual begins with a description (in English supplemented
with diagrams) of an abstract System/360 machine, which is
a common subset of the registers and bits in every physical
implementation in the models 30, 40, 50, 65, 75. (I'll omit
the Model 91 and 95, which had some minor changes.) (07)
Then for each machine instruction, there was a short section
that specified the *preconditions* (i.e. states of each relevant
register and bit) before the instruction was executed and
the *postconditions* after its execution. This point also
illustrates the general principle of defining a programming
language by using a declarative language to state preconditions
and postconditions. (08)
That POP manual was a notation-independent specification of
the semantics of the IBM assembly language, which used a
higher-level notation than bits that mapped to the machine
code. It also specified higher-level data (characters,
integers, and floating-point numbers) in a way that mapped
to the bit patterns. (09)
Meanwhile, Niklaus Wirth defined a totally different notation,
called PL/360, which used an Algol-like notation, but mapped
to exactly the same machine language: (010)
http://www.fh-jena.de/~kleine/history/languages/pl360man.txt (011)
The IBM 360 assembler language and Wirth's PL/360 are two
very different notations that both map to identical semantics.
Both of them use exactly the same semantic specification,
which was written in English by Andris Padegs. The syntax
of each was independently specified in English, but each
specification mapped the English to the same semantic spec. (012)
This illustrates the method for specifying the semantics of
multiple notations without giving any one of them a privileged
status relative to any of the others. (Of course, IBM did
have more control over the development of the hardware than
Wirth, so their specification was "more official" than his.
But that is a separate issue.) (013)
John (014)
_________________________________________________________________
Message Archives: http://ontolog.cim3.net/forum/ontolog-forum/
Config Subscr: http://ontolog.cim3.net/mailman/listinfo/ontolog-forum/
Unsubscribe: mailto:ontolog-forum-leave@xxxxxxxxxxxxxxxx
Shared Files: http://ontolog.cim3.net/file/
Community Wiki: http://ontolog.cim3.net/wiki/
To join: http://ontolog.cim3.net/cgi-bin/wiki.pl?WikiHomePage#nid1J
To Post: mailto:ontolog-forum@xxxxxxxxxxxxxxxx (015)
|