| Teodor Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199(1-2):105-143, 1998. |
....where what is indicated on each arrow is the instruction whose execution is represented by the arrow. And s becomes the new current considered object in the process of construction of F . 4 Related Works The use of algebra in specifying the compiling process has been advocated by Teodor Rus [14], who proposes an infrastructure for doing that, but with a focus on code transformation, not on the operational semantics of the code, while our method emphasizes the latter aspect. In the present section some other attempts at modeling the operational semantics of languages in an al11 gebraic ....
Teodor Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199(1-2):105-143, 1998.
....focused on the compilation of arithmetic expressions. Thereafter most people explored the potential of denotational semantics, e.g. 13, 34, 35, 39, 40, 43, 49] or of refinement calculi, e.g. 5, 7, 9, 14, 15, 28, 33, 37] structural operational semantics, e.g. 16] and algebraic models, e.g. [44]. Other approaches use abstract state machines, e.g. 6, 7, 9] Most of these projects did not compile into machine language. Instead, they designed abstract machines, and compiled for interpreters of these abstract machines. These semantics based approaches lead to monolithic compilers, cf. ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199:105--143, 1998.
....focused on the compilation of arithmetic expressions. Thereafter most people explored the potential of denotational semantics, e.g. 16, 41, 42, 45, 46, 49, 57] or of refinement calculi, e.g. 6, 4, 9, 17, 18, 34, 39, 44] structural operational semantics, e.g. 19] and algebraic models, e.g. [51]. Other approaches use abstract state machines, e.g. 7, 4, 9] Most of these projects did not compile into machine language. Instead, they designed abstract machines, and compiled for interpreters of these abstract machines. These semantics based approaches lead to monolithic compilers, cf. ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199:105--143, 1998.
.... they are thus said to generate W (V ) A language [Rus91] L is de ned as the tuple hA ; L: A i where A is a algebra which is the language semantics, A is a word algebra which is the language syntax, and L is a partial mapping called the language learning function [Rus91,Rus98] The mapping L maps semantic constructs in A to their expressions as syntactic constructs in A such that there exists a complementary homomorphism E : A where if 2 A and L( is de ned then E(L( The mapping E is called the language evaluation function and maps ....
....it is a relation, we will apply it as a function under the assumption that it will generate the most compact set expression for a given set by simply listing the set elements and not forming complex expressions. It is de ned as expected. 3. 2 Algebraic compilers An algebraic compiler [Rus91,Rus98] C: LS L T that maps the language LS = S ; LS i into the language L T = hA T ; L T i is a pair of (generalized) homomorphisms (H syn : A ; H sem : A T ) de ned such that the diagram in Figure 2 commutes. In general, the operator schemes of the algebras in these two ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199(1):105-143, 1998.
.... said to generate W (V ) A language [9] L is de ned as the tuple hA sem ; A syn ; L: A sem A syn i where A sem is a algebra which is the language semantics, A syn is a word algebra which is the language syntax, and L is a partial mapping called the language learning function [9, 10]. L maps semantic constructs in A sem to their expressions as syntactic constructs in A syn such that there exists a complementary homomorphism E : A syn A sem where if L( is de ned, then E(L( 2 A sem . E is called the language evaluation function and maps expressions in A ....
....( set equality ( and membership operations (2) and the successor function succ and singleton set creation function denoted by fg. These operators build set expressions in the syntax algebra A syn M and sets in the semantic algebra A sem M . 3. 2 Algebraic compilers An algebraic compiler [9, 10] C: LS L T which maps the language LS = hA syn S ; A sem S ; LS i into the language L T = hA syn T ; A sem T ; L T i is a pair of (generalized) homomorphisms (H syn : A syn S A syn T ; Hsem : A sem S A sem T ) de ned such that the diagram in Figure 2 commutes. In general, the ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199(1):105-143, 1998.
....suggest that both language modeling and language translation can be achieved within the framework of universal algebra. On the other hand, a methodology for compiler construction based on a language concept formally defined within the framework of the universal algebra is already available [Rus98] It seems that the glue that connects natural and artificial languages, leading to a unified methodology for language processing, is a method of language modeling capable of defining formally a language as a communication mechanism. This method is used in this paper by looking at language ....
....) Sem(n k ) # Sem(n) which constructs elements c # Sem(n) from elements c i # Sem(n i ) 1 # i # k, by the computation rule associated with Sem(F # ) denoted here by Sem(F # ) c 1 , c 2 , c n ) c. Computations Sem P are specified in terms of three generic elements [Rus98] the universe of discourse defined by a collection of types, T, the state, #, defined as a collection of mappings assigning values of types t # T to sets of 20 names (variables and constants) and state transitions, T , that are operators mapping states before computations into states ....
[Article contains additional citation context not shown here]
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199:105--143, 1998.
....: h(a n ) 2. 2 Sigma languages A Sigma language L is defined as the tuple hSem; Syn; L : Sem Syni where Sem is a Sigma algebra which is the language semantics, Syn is a Sigma word algebra which is the language syntax, and L is a partial mapping called the language learning function [61, 62]. This construct is called a Sigma language. L maps semantic constructs in Sem to their expressions as syntactic constructs in Syn such that there exists a complementary homomorphism E : Syn Sem where if L(ff) is defined, then E(L(ff) ff, ff 2 Sem. E is called the language evaluation ....
....words in Syn t which describes the actual semantic object, a primitive or a function, in Sem t which is the actual target of the semantic mapping. A transition system semantics defines the meaning of a programming language by mapping language constructs into machine independent transition systems [54, 62]. A transition system consists of a set of states describing all the possible values for the programs variables and a set of transitions describing how the program execution moves from state to state. Each of these semantic methodologies expresses the semantics of a language L s using the syntax ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199(1):105--143, 1998.
....that both language modeling and language translation can be achieved within the framework of universal algebra. On the other hand, we have developed a new methodology for compiler construction based precisely on a language concept formally defined within the framework of the universal algebra [Rus98] Recently we have examined and contrasted the compositional approach of natural language processing [Rus00b] with our methodology for compiler construction and reached the conclusion that these two approaches can be combined into a unified approach for language processing where natural and ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199:105--143, 1998. 6
....we contemplate is machine independent the computations expressed in this language are machine independent and as such computation process does not necessarily mean the process of a program execution performed by a machine. Each computation is however specified in terms of three generic elements [Rus98]: an universe of discourse defined by a collection of types, a state defined as a mapping assigning values of types given in the universe to a finite set of names (variables and constants) and a state transition that maps the state before computation into the state after computation. The universe ....
....and Int SL , Int TL , Dec, and Enc are homomorphisms. Since the corners of the diagram in Figure 2 are not necessary similar algebras the mappings connecting them are not necessarily homomorphisms and therefore though Jansssen s analysis is not always correct his conclusions are. Using embeddings [Rus98], as done in this paper, the difficulties signaled by Janssen are removed. We show this in Figure 3, the diagram of a correct compiler for the Example 2 in [Jan98] obtained from Figure 1 by removing SEL details. Here we have: L SL (0) f Gamma0; 0g, E SL ( Gamma0) E SL ( 0) f Gamma0; 0g ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199:105--143, 1998. 13
.... language abstraction seen as a tuple hSem; Syn; Sem Syni where Sem is the universe of expressible knowledges, Syn is the universe of notations used to express knowledges, and Sem Syn, Sem Syn are relations allowing consistent usage of the notations in place of the knowledges they denote [Rus98, Rus99] The integration of language processing activities is achieved in TICS by a mechanism that allows all components of a language, Sem, Syn, Sem Syn, and Sem Syn to be specified by the same specification rules [Rus99] TICS environment is populated by two kind of software components: ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199:105--143, 1998.
.... CodeSection as list ( AssemblySatement ) Now the assembly language image can be specified by the SEL construct: define global AssemblyImage as record let rep be CodeSection ; let res be Result; let reg be Registers; end Defining the transition semantics image The transition semantics image [Rus98] of a language construct is represented by a triple T ; S; A where T is the collection of types available to the computation specified by the rule, S is the collection of symbols (denoting variables and constants) employed by the computation specified by the rule, and A is the action ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199:105--143, 1998.
....control table is the table of universal scheme of operations, TUSO[7, 19] an LR parse table, or an LL parse table 3. the generator is a language analysis system, LAS [21] an LR or LL parser generator [1] 4. the processor is an algorithm performing pattern matching in strings controlled by TUSO [17, 20], an LR parser, or an LL parser [1] 5. the input is a stream of tokens and the output is an abstract parsing tree, APT [20] see Section 1.5, Figure 3) ffl Static semantic analyzer inputs APT s and outputs APT s superposed with semantic trees: 1. the specification rules are semantics macro ....
....is a language analysis system, LAS [21] an LR or LL parser generator [1] 4. the processor is an algorithm performing pattern matching in strings controlled by TUSO [17, 20] an LR parser, or an LL parser [1] 5. the input is a stream of tokens and the output is an abstract parsing tree, APT [20], see Section 1.5, Figure 3) ffl Static semantic analyzer inputs APT s and outputs APT s superposed with semantic trees: 1. the specification rules are semantics macro operations [24] 2. the control table, depending upon the parser, is TUSO, LR, or LL parse table 3. the generator maps semantics ....
[Article contains additional citation context not shown here]
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199:105--143, 1998.
....by this rule we don t know which it is, but the associated macro operation needs to provide for both situations. This is achieved by mapping the identifier into a leaf of the AbsTree of the transition semantics of the construct specified by r 5 . This leaf will be later promoted to a symbol [Rus98] denoting a type name TS(A) L s s s s symtab A s node 0 A s T s Figure 13: Transition semantics of rule r 5 or a variable name. In addition, since the transition semantics of both a definition and a declaration involve a type, we create a definition table entry. The name component ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 199(1--2):105--143, 1998.
....a temporal logic provides a formal foundation for program optimizations. In addition, this technique promotes quick implementation of new program optimizations because a compiler is obtained by automatic integration of stand alone algorithms (scanner, parser, semantic generator, code generator) Rus97] that are determined by the specification rules and allow independent development of the language lexicon, constructs, and types. The compiler developer writes formulas, not programs, to find optimizations and attaches them to the rules specifying the constructs involved in the optimization ....
T. Rus. Algebraic processing of programming languages. Theoretical Computer Science, 1997. Paper accepted for publication.
....An t n from its components specified by the rules A i = t i 0 A i 1 : t i n i Gamma1 A i n i t i n i , 1 i n. We use homomorphisms, derived operations, and embeddings [BL69, Coh81, Rus91] for this purpose. We use this methodology for the construction of algebraic compilers [Rus95] and for the automatic generation of model checking algorithms [RVW96, RVW97b] Here we illustrate this principle by integrating a model checker algorithm into a compiler as a program parallelization tool. For that we develop a temporal logic that allows us to express properties of control flow ....
T. Rus. Algebraic processing of programming languages. In A. Nijholt, G. Scollo, and R. Steetskamp, editors, Twente Workshop on Language Technology, pages 1-- 42, University of Twente, Enschede, The Netherlands, 1995.
....concepts of compositionality, incrementality, and modularity. Publications, tutorials, and demonstration materials may be found at http: www.cs.uiowa.edu rus. This methodology shows great promise: it has been applied to problems in a wide range of areas including syntactic[1] and semantic[2] analysis, language to language translation[3, 4] and the integration of model checking algorithms into the compiler as tools used for code optimization and parallelization[5, 6] 2 Specification A language specification should formally describe the language syntax, semantics, and the ....
T. Rus. Algebraic processing of programming languages. In A. Nijholt, G. Scollo, and R. Steetskamp, editors, Twente Workshop on Language Technology, pages 1--42, University of Twente, Enschede, The Netherlands, 1995.
....n Gamma1 An t n from its components specified by the rules A i = t i 0 A i 1 : t i n i Gamma1 A i n i t i n i , 1 i n. We use homomorphisms, derived operations, and embeddings [BL69, Coh81, Rus91] for this purpose. We use this methodology for the construction of algebraic compilers [Rus95], for the automatic generation of model checking algorithms [RVW96] and for integrating various temporal logics with their model checking algorithms [RVW97] Here we illustrate this principle by integrating a model checker algorithm into a compiler as a program parallelization tool. For that we ....
T. Rus. Algebraic processing of programming languages. In A. Nijholt, G. Scollo, and R. Steetskamp, editors, Twente Workshop on Language Technology, pages 1--42, University of Twente, Enschede, The Netherlands, 1995.
.... ScanGen ScanTab Scanner S Lexical tokens Gamma Gamma Psi source Figure 3: Overall structure of language implementation 3. Implement the type system of L by developing the type specification rules TS(L) that contains source language predefined types and type constructors [9, 32]. The rules TS(L) are preprocessed by a tool called TypeInit that constructs the types database, TSDb(L) on which all type construction and type checking activities are performed. 4. Develop the semantic macro operations (see Section 5.2) associated with the rules in CS(L) The semantic ....
.... the constructor C k that takes (s 1 ; s p ) as parameters, where each s i , 1 i p, is a typed object or a type (predefined or already defined) Since types and constructors are treated similarly we describe them using a unique type specification template called the type descriptor [9, 32]. The type system of a compiler must be initialized with the predefined types and the type constructors before the compiler can use it. A type specification language has been developed for this purpose [9, 32] and is used to specify the predefined types and the type constructors. Let TS(L) be the ....
[Article contains additional citation context not shown here]
T. Rus. Algebraic processing of programming languages. A. Nijholt, G. Scollo, and R. Steetskamp, editors, Twente Workshop on Language Technology, University of Twente, Enschede, The Netherlands, (1995) 1--42.
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