32 citations found. Retrieving documents...
R. D. Tennent. Principles of Programming Languages. Prentice Hall, 1981.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

View Binding and User Enhanceable Systems - Thimbleby (1998)   (1 citation)  (Correct)

....Because it is not simulated, because it is not an optional discipline or programming method used at the programmer s discretion, it will be correctly and efficiently implemented by the system rather than the programmer (or user) 2.1. From Pascal binding to view binding Binding arrows [20] can be used to indicate the binding occurrences of names from where they are applied. In figure 1, a simple Pascal program has been decorated with such arrows, making clear which bindings x and y are associated with in the two separate calls to the procedure write. Program prog; const x = 1; y ....

R. D. TENNENT (1981), Principles of Programming Languages, Prentice-Hall. -- 16 --


Types in Programming Languages - Camarão, Figueiredo, Pimentel   (Correct)

....2) above are examples of scope rules. Type rules are generally used for specifying the type of each language term, making it possible to check that each operation is applied to operands of appropriate type. There are several ways of defining the syntax of programming languages (see for example [Ten81, Wat91, Mit96] The use of a formalism based on logic, using axioms and inference rules, allows the definition of context sensitive conditions and is being increasingly used in the study of programming languages. 2 The basic idea of these formal systems is the definition of rules for the ....

....e ) e 0 then Gamma e 0 : oe is provable. Property 4 (Well typed programs do not go wrong) If Gamma p : oe is provable, then eval F (p) 6= error 8 See section 3, page 9. 9 A detailed discussion of reduction strategies, with consequences of using each of them, can be found in e.g. Ten81, Mit96] 10 Note that the term context defined later refers to a typing context and is different from the concept defined here, which can be seen as an incomplete term, with a hole where another term can be inserted. 11 The notation of expressions is described in section 3. Intuitively, x : ....

R.D. Tennent. Principles of Programming Languages. Prentice-Hall, 1981.


Growing Languages with Metamorphic Syntax Macros - Brabrand, Schwartzbach (2000)   (6 citations)  (Correct)

....naming the macro, a parameter list specifying the invocation syntax, and a body that must comply with the result type. The result type declares the type of the body and thereby the syntactic contexts in which invocations of the macro are permitted. Adhering to Tennent s Principle of Abstraction [22], we allow nonterm to range over all nonterminals of the host language grammar. Of course, the nonterminals are from a particular standardized abstract grammar. In the case of the bigwig host language, 55 nonterminals are available. As in MS 2 , a macro must start with an identifier. It is ....

R. D. Tennent. Principles of Programming Languages. Prentice Hall, 1981.


Haskell Server Pages - Functional Programming and the.. - Meijer, van Velzen (2001)   (4 citations)  (Correct)

....means, we need to do a complete page translation and inspect the resulting code. Naive server pages provide just a very thin layer of veneer that hides a few calls to Response.Write, but they do not make HTML fragments into first class citizens. Hence they break Tennent s principle of abstraction [32,27] that says that values of a syntactically relevant domain can be given a name. An abstraction mechanism that does not satisfy this basic principle is rather useless As an example server page that shows the lack of abstraction, we will generate an HTML table of 16x16 cells, where the background ....

R.D. Tennent. Principles of Programming Languages. Prentice-Hall, 1981.


A Brief Summary of VSPEC - Alexander, Rangarajan, Baraona   (Correct)

....is defined along with a means for combining component states into an architecture state. The formal vspec model of the state of a component is based on Chalin s state model [8, Chapter 6] for lcl. This model partitions the computational state of an lcl description into an environment and a store [14]. The environment maps (variable) identifiers into objects and the store binds objects to the values they contain: Env: Id Obj Store: Obj Value Separating the environment and the store is common among formal models of programming language semantics. In a language such as lcl, one of the ....

R.D. Tennent. Principles of Programming Languages. Computer Science Series. Prentice-Hall International, 1981.


Implementation of Procedures in a Database Programming Language - Lui (1996)   (1 citation)  (Correct)

....environment where it is used; and ffl parameterization which refers to the ability to create a generalized abstraction that has the flexibility to perform a variety of activities based on the values of parameters. In other words, the basic components of a procedural abstraction mechanism are [Ten81] ffl a body, a construct whose interpretation is deferred until the subprogram is invoked by being supplied with appropriate arguments; and ffl a formal parameter part (possibly empty) which contains binding occurrences of the formal parameter identifiers . The advantages of using subprograms ....

R. D. Tennent. Principles of Programming Languages. Prentice-Hall, New York, 1981.


Growing Languages with Metamorphic Syntax Macros - Brabrand, Schwartzbach (2000)   (6 citations)  (Correct)

....naming the macro, a parameter list specifying the invocation syntax, and a body that must comply with the result type. The result type declares the type of the body and thereby the syntactic contexts in which invocations of the macro are permitted. Adhering to Tennent s Principle of Abstraction [18], we allow nonterm to range over all nonterminals of the host language grammar. Of course, the nonterminals are from a particular standardized abstract grammar. In the case of the bigwig host language, 55 nonterminals are available. As in MS 2 , a macro must start with an identifier. It is ....

Robert D. Tennent. Principles of Programming Languages. Prentice Hall, 1981.


Haskell Server Pages - Functional Programming and the.. - Meijer, van Velzen (2000)   (4 citations)  (Correct)

....means, we need to do a complete page translation and inspect the resulting code. Naive server pages provide just a very thin layer of veneer that hides a few calls to Response.Write, but they do not make HTML fragments into rst class citizens. Hence they break Tennent s principle of abstraction [32, 27] that says that values of a syntactically relevant domain can be given a name. An abstraction mechanism that does not satisfy this basic principle is rather useless As an example server page that shows the lack of abstraction, we will generate an HTML table of 16x16 cells, where the background ....

R.D. Tennent. Principles of Programming Languages. Prentice-Hall, 1981.


Induction, Domains, Calculi: Strachey's Contributions to.. - Schmidt (1999)   (Correct)

.... noted, this correspondence is exposed as two uses of the same semantical notational pattern in the semantics of the two respective phrases [51] Following this tack, Tennent proposed other situations where semantical patterns can be used to design a language with internal coherency in binding [52]: ffl abstraction principle: the elements of any semantically meaningful syntactic class can be named, and the names can be invoked (e.g. a procedure is a named command, a module is a named declaration, a class is a named type structure, etc. ffl qualification principle: every semantically ....

R.D. Tennent. Principles of Programming Languages. Prentice-Hall International, Englewood Cliffs, New Jersey, 1981.


A Proof System for a Sequential Object-Based Language - de Figueiredo (1995)   (1 citation)  (Correct)

.... syntax of this baby language can be defined using BNF as follows: pg : d ; c d : id : t t : Bool j Bin id : x j y c : id v v : true j false j n n : 0 j 1 j n 0 j n 1 3 For some approaches, see e.g. BJ82, Chapter 2] Ten81, Section 13.5] Pag81, Sections 2.3.1 and 2.4.2] Des84, Kap85] Ast91, Sections 2.5 and 4.2] vD91] 4 See e.g. JW74] 5 Note that we have, in a sequent calculus, sequents and formulas. The sequents are the basic syntactic elements of the inference system (usually, but not in a sequent ....

R.D. Tennent. Principles of Programming Languages. Prentice-Hall, 1981.


DYNAMO -- A set of Tools for Dynamic Modelling - Nørmark (1997)   (Correct)

....it seems problematic to reflect a lot of details through the diagrammatic notation. As already discussed earlier in this paper we have used other approaches in DYNAMO to deal with the details (pop up graphics and the underlying browsers) In programming languages the principle of abstraction [ 21 ] section 7.4) is an important means in battling an overwhelming amount of details. The subscenario concept of SCED is an important counterpart in scenario diagrams. By defining part of scenario to be a named subscenario, the space limitation of interaction diagrams are alleviated in the vertical ....

R.D. Tennent. Principles of Programming Languages. Prentice Hall, 1981.


Continuation Semantics for Prolog with Cut - de Bruin, de Vink (1989)   (13 citations)  (Correct)

....the cut indicators in [JM]a, DM]a and [Vi]a. The next section will feature a straightforward equivalence proof, to be contrasted with [DM]a, Vi]a. By now a standard approach has been established for defining a denotational semantics of a sequential procedural language. cf. MS] St] Ba1] [Te2]. We show that a semantics of B in this section and Prolog in section 6 can also be given along these lines. Standard semantics uses environments and continuations. Environments are needed because the denotation [ s ] s of a statement s depends amongst others on the meaning of the procedure ....

....will be described using continuations. For languages like PASCAL, where flow of control is not very intricate, a denotation [ s ] s needs only one continuation as a parameter. Languages containing backtrack constructs, like SNOBOL4, are best described using two continuations, cf. Te1] [Te2]a. In order to capture the effects of the cut operator yet another continuation will be needed. As is observed independently by M. Felleisen in [Wi] p. 273. In order to explain how these continuations will be used we introduce them one after another. First we shall discuss the PASCAL subset of ....

R.D. Tennent, Principles of Programming Languages, Prentice Hall International 22. (1981).


The Semantics and Implementation of Bindings in Higher-Order.. - Banerjee (1995)   (Correct)

....of Standard ML are also required to conform to a standard semantics of the language [96] 1.1. 1 Bindings: their Semantics and their Implementation The design of a programming language hinges upon the development of a core language of values and operations that characterize its capabilities [49, 71, 134, 142]. For example, a while loop language [124] is the core language for a Modula like language. One possible BNF for this language is shown in Figure 1.1. There are several levels in the lanc 2 Command e 2 Expression 2 Location n 2 Numeral c : e j c 0 ; c 1 j if e c 0 c 1 j while e do c ....

....an expression can be named and this gives rise to a function, etc. The concept of user defined names lies at the heart of a variety of features that the programmer uses routinely: parameters, local definitions, variable declarations, encapsulation, modules, functions, procedures, and so on [123, 124, 133, 134]. What is the semantics of a binding One of the earliest attempts to formalize the semantics was made by the Algol 60 committee In Algol 60, bindings are understood via the copy rule [100, 144, 116] In symbols, this means that a definition of the form, define I = U in V 1 is understood as ....

[Article contains additional citation context not shown here]

Tennent, R. D. Principles of Programming Languages. Prentice-Hall, Englewood Cliffs, New Jersey, 1981.


ASAX: Software Architecture and Rule-Based Language .. - Habra, Le.. (1992)   (21 citations)  (Correct)

....another dedicated machine, These aspects are related to the architecture of the system to be audited, they necessitate ad hoc solutions. ASAX does not make any a priori assumptions about these architectures. Appendix : Abstract Syntax for RUSSEL The abstract syntax formalism is borrowed from [Tennent81] Syntactic domains A actions O arithmetic operators B logical operators P formal parameters C conditions Q rule names E expressions R rules F field names S relational operators G parameter declarations T types H variable declarations V local variables L literals X external function names M ....

R.D. Tennent, "Principles of Programming Languages", PrinticeHall International, 1981


Semantics of Pointers, Referencing and Dereferencing with.. - Hung, Zucker   (Correct)

....of the formal parameter in the procedure body by the actual parameter. We adopt a design principle for programming languages called the Correspondence Principle, which states that for any parameter passing mechanism, there should be a corresponding definition (block) mechanism, and vice versa [Tennent 81] Here passby value corresponds to new block, pass by reference corresponds to alias block, and pass by name corresponds to macro block. This principle will be illustrated by the semantic correspondences between blocks and procedures (Section 4) 1.3 Compositionality Principle A meaning for ....

Tennent R.D., Principles of Programming Languages, Prentice-Hall, 1981.


The Denotational Semantics of a Functional Tree-Manipulation.. - Malton (1994)   (14 citations)  (Correct)

....The denotational semantics of this language is a straightforward adaptation of the semantics of functional programming languages, with environment but without state. One way to give semantics to languages with pattern matching and failure is to view them as backtracking and use continuations (see [13]) This would be involved in a translation of the language into Prolog, for example. However, general backtracking is not available in TXL, and therefore such an account would introduce semantic bias. Instead, I interpret patterns as a kind of function which creates extensions to the environment ....

R. D. Tennent. Principles of Programming Languages. Prentice-Hall, 1981.


Hierarchical Modularity And Intermodule Optimization - Blume (1997)   (2 citations)  (Correct)

.... 1 Opening structure S seems to bind variable x, but if structure X, about which nothing is known, contains a sub structure S without a variable x, then x is actually free in this code. Language constructs that, like Pascal s with [JW78] bind identifiers implicitly have been criticized before [Ten81, section 6.2.3. A feature that confuses dependency analysis tools will not be easy to understand by the human reader. Similar constructs, for example import in Java or using in C , can behave like open in SML with all the same implications for dependency analysis. Ada s use [Ada80] is not ....

R. D. Tennent. Principles of Programming Languages. Prentice-Hall, Englewood Cliffs, NJ, 1981.


Lightweight Parametric Polymorphism for Oberon - Roe, Szyperski (1997)   (9 citations)  (Correct)

.... type checking of polymorphic code, nor generation of shared object code really are just glorified macros (Modula 3 generic modules, C templates) Constrained parametric polymorphism was first introduced for CLU [6, 7] Parametric polymorphism for a Pascal like language was proposed by Tennent in [16]. All functional programming languages in the tradition of ML, and some related languages, such as Napier 88 [9] support parametric polymorphism. Many modern object oriented languages also support parametric polymorphism, including Eiffel [8] Sather [14, 15] or Theta [3, 5] In all these ....

R D Tennent. Principles of Programming Languages. Prentice Hall Int., 1981.


A Categorical Interpretation of Landin's Correspondence.. - Banerjee, Schmidt (1993)   (1 citation)  (Correct)

....space construction. In the rest of this paper, we define our metalanguage, outline the proof of the correspondence theorem, and state an application to compiling. 2 The Metalanguage One way to obtain correspondence is to force it upon a language. Landin [8] Reynolds [18, 19] and Tennent [23, 24] observed that correspondence must hold if both definition binding and parameter binding are desugared purely into abstractions: define i = U in V desugars to ( i : V) U define j(i) V in j(U) desugars to define j = i : V in j(U) which desugars to ( i : V) U, when i : V is copied for j ....

....declaration parameters, can be introduced for each of a language s syntax domains. Again, each formal parameter construct is desugared into a abstraction. Properly applied, the two principles extend systematically a core programming language into a language for programming in the large [1, 21, 24, 26]. 2.1 The need for records Desugaring both definitions and parameters into purely abstractions confuses definitions with parameters, which is problematic when a Pascal like language is studied. Indeed, for the correspondence principle to be of value as a language design criterion, it must be ....

Robert D. Tennent. Principles of Programming Languages. Prentice-Hall, Englewood Cliffs, New Jersey, 1981.


Domain Specific Languages for Interactive Web Services - Brabrand (2002)   (1 citation)  (Correct)

No context found.

R. D. Tennent. Principles of Programming Languages. Prentice Hall, 1981.


Formal Semantics of Synchronous SystemC - Salem (2003)   (Correct)

No context found.

R. Tennent, Principles of Programming Languages, Prentice-Hall, Englewood Cliffs, 1981.


Galileo: A Strongly Typed, Interactive Conceptual Language - Albano, Cardelli, Orsini (1985)   (50 citations)  (Correct)

No context found.

Tennent R.D. [81], Principle of Programming Languages, Prentice-Hall International, London, 1981.


Activities: Abstractions for Collective Behavior - Kristensen, May (1996)   (7 citations)  (Correct)

No context found.

Tennent, R. D.: Principles of Programming Languages. Prentice Hall, 1981.


The Programming Language Jigsaw: Mixins, Modularity And Multiple.. - Bracha (1992)   (6 citations)  (Correct)

No context found.

Tennent, R. Principles of Programming Languages. Prentice-Hall, 1981.


Microlanguages for Operating System Specialization - Pu (1997)   (10 citations)  (Correct)

No context found.

R. D. Tennent. Principles of Programming Languages. Prentice-Hall, 1981.

First 50 documents

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC