Rapid prototyping of programming language semantics using Prolog
Barrett R. Bryant, Aiqin Pan
Abstract
Barrett R. Bryant, Aiqin Pan
Abstract
Prolog is proposed as an implementable specification language for programming language semantics. It is shown that both static semantics, specified by either attribute grammar or denotational semantics, and dynamic semantics, specified by either denotational semantics or axiomatic semantics, can be conveniently expressed in Prolog with the following advantages: (1) because the notations used in formal semantics are based upon logic, it is straightforward to translate these into Prolog, thus making the conformity of the Prolog specifications with the original specifications more reliable; (2) specifications expressed in Prolog are executable and can therefore be considered as prototype implementations of the semantics; and (3) Prolog exhibits the maximum amount of parallelism in the specifications, indicating where production quality systems might be implemented in parallel for improved performance. Prolog allows for a complete programming language specification which integrates all aspects of programming language semantics into a single unified framework.>
OpenAlex reports 9 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Prolog is proposed as an implementable specification language for programming language semantics. It is shown that both static semantics, specified by either attribute grammar or denotational semantics, and dynamic semantics, specified by either denotational semantics or axiomatic semantics, can be conveniently expressed in Prolog with the following advantages: (1) because the notations used in formal semantics are based upon logic, it is straightforward to translate these into Prolog, thus making the conformity of the Prolog specifications with the original specifications more reliable; (2) specifications expressed in Prolog are executable and can therefore be considered as prototype implementations of the semantics; and (3) Prolog exhibits the maximum amount of parallelism in the specifications, indicating where production quality systems might be implemented in parallel for improved performance. Prolog allows for a complete programming language specification which integrates all aspects of programming language semantics into a single unified framework.>
Key concepts: Programming language, Prolog, Denotational semantics, Computer science, Operational semantics, Well-founded semantics, Logic programming, Semantics (computer science)