Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Frank G. Pagan

dblp:50/5824 · DBLP profile ↗
← Back
13ranked-venue papers
13as first author
0since 2021 · last 1988
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 7 first-authorApplied, interdisciplinary, general and emerging computing · 4 · 4 first-authorArtificial intelligence and machine learning · 1 · 1 first-authorDatabases, data management, data science and information retrieval · 1 · 1 first-authorTheory of computation · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Programming languages and type systems · 77% Requirements engineering and software design · 23%

Topics — the 3 heaviest of 5, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems › functional programming
applicative languages
0.011987
Program Structure Charts for Applicative Languages · IEEE Trans. Software Eng. 1987
Programming languages and type systems › syntax
abstract syntax
0.011983
A Diagrammatic Notation for Abstract Syntax and Abstract Structured Objects · IEEE Trans. Software Eng. 1983
Requirements engineering and software design › software design representation
design documentation
0.021987
Program Structure Charts for Applicative Languages · IEEE Trans. Software Eng. 1987
A Diagrammatic Notation for Abstract Syntax and Abstract Structured Objects · IEEE Trans. Software Eng. 1983
YearPublicationVenuePosition
1988 Converting Interpreters into Compilers
abstract
Abstract There is an effective and quite general method of manually deriving compilers from programming‐language interpreters without dealing directly with machine language. The method is an implementation of the largely theoretical and under‐appreciated concept of partial computation, but can be understood on its own terms. It involves the translation of a source program's intermediate form into the interpreter's implementation language. This paper shows how the method can be used to transform both a sample iterative interpreter and a sample recursive interpreter into compilers. The result can be a large gain in program execution speed. Other advantages of the method, including the ease and practicality of applying it, are discussed.
Frank G. Pagan
Softw. Pract. Exp.1
1987 Program Structure Charts for Applicative Languages
abstract
A framework for a system of charts compatible with the use of applicative programming languages is proposed and illustrated. The charts are similar in spirit to the structured flowcharts that have sometimes been used with algorithmic languages. They are based on a method of representing the structure of nested expressions of arbitrary complexity. This method is adaptable to the incorporation of graphical devices for the depiction of local identifier bindings, conditional expressions, recursive function definitions, and the various functional combining forms employed in the FP-style of applicative programming.
Frank G. Pagan
IEEE Trans. Software Eng.1
1984 Toward Complete Programming Language Descriptions that are both Formal and Understandable
abstract
Abstract We describe an approach to, and a case study of, the construction of complete programming language descriptions that are at the same time formal and readily understandable. Such a description includes integrated specifications for abstract and textual syntax, context conditions (static semantics) and dynamic semantics. The imetalanguage is a powerful program design language based on a real general‐purpose programming language. The specifications are presented not as a monolithic block but as an intellectually manageable sequence of sections and subsections with a carefully designed format and cross‐referencing scheme. The approach could reduce the need to choose between formality and understandability in a language reference manual.
Frank G. Pagan
Softw. Pract. Exp.1
1983 A Diagrammatic Notation for Abstract Syntax and Abstract Structured Objects
abstract
The concept of abstract syntax is commonly applied to the formal specification of programming language semantics and is also useful in the broader context of software design. This paper proposes a scheme for the representation of abstract syntax specifications in the form of easily understood charts. The structuring primitives considered are those of scalar enumeration, heterogeneous aggregation, homogeneous lists and sets, disjunction, and partial functions. Secondarily, a related system of charts for depicting particular objects with a given structure is proposed. Examples are given to illustrate the use of these diagrammatic notations in the contexts of language description and software design and documentation.
Frank G. Pagan
IEEE Trans. Software Eng.1
1982 Semantic Specification Using Two-Level Grammars: Labels and GOTO Statements
abstract
The metalinguistic formalism of two-level grammars (W-grammars) is known to be capable of precisely defining the dynamic semantics of certain features of programming languages in a fairly understandable fashion. This paper demonstrates that its application to low-level control facilities—labels and goto statements—is not only possible but also reasonably straightforward and manageable. Moreover, the extra definitional complexity that arises when there is a mixture of low-level and high-level (if-then-else, while-do, etc.) facilities does not appear to be any worse than it is with other approaches to semantic specification.
Frank G. Pagan
Comput. J.1
1981 A Style for Writing the Syntactic Portions of Complete Definitions of Programming Languages
abstract
A strategy for the formalisation of the syntactic aspects – abstract syntax, textual (or concrete) syntax, and context conditions (or ‘static semantics’) – of programming languages is described. The strategy emphasises the centrality of abstract syntax in a complete language definition and is compatible with the principle of using a general purpose programming language as a metalanguage. The proposed technique for specifying (using a set of mutually recursive procedures) textual syntax and its relationship to abstract syntax provide a sort of programming language counterpart of BNF as far as overall structure is concerned, and the technique for specifying (using another set of mutually recursive procedures) context conditions parallels the use of attribute grammars or two-level grammars for the same purpose. The techniques are illustrated using the miniature language Asple.
Frank G. Pagan
Comput. J.1
1980 On the Generation of Compilers from Language Definitions
Frank G. Pagan
Inf. Process. Lett.1
1979 ALGOL 68 as a Metalanguage for Denotational Semantics
abstract
The possibility of using ALGOL 68 as a metalanguage for ‘denotational’ definitions of the semantics of programming languages is considered, using the simple language LOOP as an example. The approach is found to be a viable one if the ‘partial parametrisation’ feature is added to ALGOL 68. The advantages of using a general purpose programming language as a definitional medium are briefly discussed.
Frank G. Pagan
Comput. J.1
1979 Semantic Specification Using Two-Level Grammars: Blocks, Procedures and Parameters
Frank G. Pagan
Comput. Lang.1
1979 A Highly-structured Interpreter for a SNOBOL4 Subset
abstract
Abstract A highly‐structured and conceptually simple processor, written in Algol 68, for a basic but useful subset of SNOBOL4 is presented. It provides a significant, large‐scale demonstration of a particular methodology for constructing ‘master’, machine‐independent implementations of programming languages. The processor is closely related to a formal operational definition of the SNOBOL4 subset in that it incorporates an abstract machine, a high‐level abstract syntax (in the form of mutually recursive mode definitions) for the internal form of programs, and a set of mutually recursive interpretation procedures for programs in this internal form. The various aspects of the processor are documented in some detail. The experience of testing the processor is briefly discussed.
Frank G. Pagan
Softw. Pract. Exp.1
1978 Formal Semantics of a SNOBOL4 Subset
Frank G. Pagan
Comput. Lang.1
1976 On Interpreter-Oriented Definitions of Programming Languages
abstract
The constructive approach to the formal definition of the semantics of programming languages has much in common with the notion that a language can be defined by an actual processor which compiles or interprets programs written in that language. The two approaches can be unified if the processor is written in a sufficiently powerful and expressive high-level language so that it closely models a formal definition for the processed language. The resulting processor has the conceptual clarity of the formal scheme as well as the advantages of being executable on a real computer. These points are illustrated by exhibiting a formal definition of a minilanguage using the Vienna Definition Language and an equivalent definition using ALGOL 68.
Frank G. Pagan
Comput. J.1
1973 Constructible Representations for Two Semantic Relations
Frank G. Pagan
COLING1