programming languages seminar, spring 20041 grammar adaptation (ralf lämmel, cwi) presentation and...
TRANSCRIPT
![Page 1: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/1.jpg)
Programming Languages Seminar, Spring 2004
1
Grammar Adaptation (Ralf Lämmel, CWI)
Presentation and slides by:Faizan Javed
March 9th, 2004
![Page 2: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/2.jpg)
Programming Languages Seminar, Spring 2004
2
1. Introduction
Grammar Adaptation:1. Model Restructuring (fold unfold) and
Local Changes (removal of phrases, restriction)
2. Performed by grammar programmers manually, otherwise.
3. Transformations relevant for grammar development, maintenance, re-engineering and recovery.
![Page 3: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/3.jpg)
Programming Languages Seminar, Spring 2004
3
1. Introduction (contd.)
Grammar Recovery1. Concerned with derivation of a
languages’ grammar.2. Grammar transformations can be used
to facilitate grammar recovery.3. Important for software re-engineering
- Y2K problem, Euro-conversion problem
![Page 4: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/4.jpg)
Programming Languages Seminar, Spring 2004
4
1. Introduction (contd..)
Grammar recovery is hard:1. ancient languages (ex: Cobol dialects)2. in-house languages and language
extensions COBOL example [Lämmel, Verhoef]:
1. Grammar transformations made the process:- accessible, traceable and measurable.
![Page 5: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/5.jpg)
Programming Languages Seminar, Spring 2004
5
1. Introduction (contd…) Sample Adaptation (VS Cobol II):1. Problems faced were errors, omissions
and use of informal comments.
2. Reason: lack of use of formal methods
3. Example: VS Cobol II REDEFINES clause
![Page 6: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/6.jpg)
Programming Languages Seminar, Spring 2004
6
1. Introduction (contd….) REDEFINES clause is
actually of type: “REDEFINES” data-name
Sample defines a structure of a data item with a REDEFINES clause.
Use “delete” transformation operator:
delete level-number (data-name | “FILLER")? in REDEFINES-clause
![Page 7: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/7.jpg)
Programming Languages Seminar, Spring 2004
7
1. Introduction (contd..)
Transformational approach benefits:
1. Adds Traceability: changes can be recorded
2. Reusable adaptation scripts: useful for dialects of the same grammar
3. Relaxed notions for non-semantics preserving operators
![Page 8: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/8.jpg)
Programming Languages Seminar, Spring 2004
8
2. Grammar Fragments Grammar fragments are a variant of
context-free grammars used for grammar transformations. In grammar adaptation, grammars “evolve”.
“Evolving” grammars rather than “reduced” grammars: reduced grammars assume that each production can be used in some derivation of a terminal string from the start symbol.
![Page 9: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/9.jpg)
Programming Languages Seminar, Spring 2004
9
2.1 Standard Context-Free grammars
Standard CFG definition: <N, T, s, P>
1. N and T are disjoint finite sets of nonterminals and terminals respectively.
2. s is the start symbol,3. P is a finite set of productions or
(context-free) rules with4. A production <n, u> P with n 2 N and u 2 (N U T)* is also written as n → u.
![Page 10: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/10.jpg)
Programming Languages Seminar, Spring 2004
10
2.2 Deviation Start symbol not required for incomplete
grammars No explicit declaration of non-terminals and
terminals – grammar represented just by productions
Non-terminals from and terminals from Bottom non-terminals: non-terminals which are not
terminated This deviation known as grammar fragments. Domain defined as:
![Page 11: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/11.jpg)
Programming Languages Seminar, Spring 2004
11
2.2 Deviation (contd..) Relevant set of grammar symbols:
![Page 12: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/12.jpg)
Programming Languages Seminar, Spring 2004
12
2.2 Deviation (contd..) Bottom non-terminals ( ):1. Non-terminal lacking a definition, OR2. Indicates a connectivity problem; defined
with a different left-hand side.
Top non-terminals ( ):1. Non-terminals defined, but not used.2. Start symbols usually meet this criteria.
![Page 13: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/13.jpg)
Programming Languages Seminar, Spring 2004
13
2.3 Semantics Language generated by a common CFG
defined as: Terminal strings can also be generated
from an arbitrary non-terminal n; the semantics of n w.r.t. a grammar fragment are:
![Page 14: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/14.jpg)
Programming Languages Seminar, Spring 2004
14
2.3 Semantics (contd..) Terminal strings not sufficient since
grammar fragments are not necessarily terminated (ex: productions with bottom non-terminals)
Incomplete grammar :
![Page 15: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/15.jpg)
Programming Languages Seminar, Spring 2004
15
2.3 Semantics (contd..) Sentential forms provide an upper
bound on the denotation.
However, sentential forms don’t provide a basis to state the semantics preservation of fold/unfold modulations.
![Page 16: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/16.jpg)
Programming Languages Seminar, Spring 2004
16
2.3 Semantics (contd..) Observable non-terminals: restrict
sentential forms so that only particular non-terminals are observable.
means semantics restricted to sentential forms consisting solely of bottom non-terminals and terminals.
![Page 17: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/17.jpg)
Programming Languages Seminar, Spring 2004
17
2.3 Semantics (contd..) Looping non-terminals: non-terminal “b” lacks
a base case
“Ultimate” denotation of n w.r.t :
![Page 18: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/18.jpg)
Programming Languages Seminar, Spring 2004
18
3. Formal Reasoning
Need to compare grammars, and characterize the properties of grammar transformations.
Certain relations on the grammar fragments are defined.
![Page 19: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/19.jpg)
Programming Languages Seminar, Spring 2004
19
3.1 Equivalent grammars Equivalent grammars:
Useful in fold/unfold manipulations
![Page 20: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/20.jpg)
Programming Languages Seminar, Spring 2004
20
3.1 Equivalent Grammars Equivalent grammars example:
Using equivalence properties,
![Page 21: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/21.jpg)
Programming Languages Seminar, Spring 2004
21
3.2 Beyond Equivalence Equivalence often too restrictive to
characterize related grammars! Some “relaxations” on the relations
between two grammars:
![Page 22: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/22.jpg)
Programming Languages Seminar, Spring 2004
22
3.2 Beyond Equivalence (contd.)
Equivalence modulo renaming:
In above fig, it holds that
![Page 23: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/23.jpg)
Programming Languages Seminar, Spring 2004
23
3.2 Beyond Equivalence (contd.)
Sub-grammar relation:
In above fig., it holds that but not vice versa.
![Page 24: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/24.jpg)
Programming Languages Seminar, Spring 2004
24
3.2 Beyond Equivalence (contd.)
Enrichment relation:
In above fig, it holds that
![Page 25: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/25.jpg)
Programming Languages Seminar, Spring 2004
25
3.2 Beyond Equivalence (contd.)
Instance relation:
In above fig., it holds that
![Page 26: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/26.jpg)
Programming Languages Seminar, Spring 2004
26
3.3 Grammar Transformers Partial grammar transformers: Grammar relations
can be used to define various preservation properties for grammar transformations.
![Page 27: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/27.jpg)
Programming Languages Seminar, Spring 2004
27
4. Transformation Framework
Define a framework for grammar transformations offering transformation primitives and combinators.
Discuss supplementary concepts like focus, constraints and symbolic operands.
![Page 28: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/28.jpg)
Programming Languages Seminar, Spring 2004
28
4.1 Primitives id: identity function fail: undefined grammar transformation reset: returning empty set of rules add/subtract: add/subtract a rule from a
grammar replace: replace a phrase by a phrase in a
grammar substitute: substitute non-terminal by a non-
terminal
![Page 29: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/29.jpg)
Programming Languages Seminar, Spring 2004
29
4.1 Primitives (contd.)
![Page 30: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/30.jpg)
Programming Languages Seminar, Spring 2004
30
4.2 Combinators
![Page 31: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/31.jpg)
Programming Languages Seminar, Spring 2004
31
4.3 Constraints
![Page 32: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/32.jpg)
Programming Languages Seminar, Spring 2004
32
4.4 Symbolic operands Introduces higher level of abstraction? Examples:1. definition of n : Denotes RHS of n.
Useful in unfolding operation; no need to point out definition explicitly.
2. all: focus operand. Denotes all non-terminals defined in a grammar. Useful if an operator expecting a focus parameter should be applied globally.
![Page 33: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/33.jpg)
Programming Languages Seminar, Spring 2004
33
5.1 Operator Suite - Overview Stepwise adaptation: application of a
sequence of transformation operators from the operator suite, T1;..;Tm.
Transformational grammar programmer: uses only operators of the suite, not the combinators or the primitives.
Three groups of operators: 1. Refactoring 2. Construction3. Destruction
![Page 34: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/34.jpg)
Programming Languages Seminar, Spring 2004
34
5.2 Refactoring Restructure grammar so that:1. Comprehensibility is improved2. Subsequent adaptation steps are easier to
perform
Semantics-preserving in the narrow sense.
Use of pre- and post- conditions in operators.
![Page 35: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/35.jpg)
Programming Languages Seminar, Spring 2004
35
5.2 Refactoring (contd.)
![Page 36: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/36.jpg)
Programming Languages Seminar, Spring 2004
36
5.3 Construction Facilitate grammar substitution,
extension and completion.
![Page 37: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/37.jpg)
Programming Languages Seminar, Spring 2004
37
5.3 Construction (contd.) Unify example:1. Useful if a bottom non-terminal should be
resolved interms of an existing definition2. Or, if two bottom non-terminals intentionally
coincide.
![Page 38: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/38.jpg)
Programming Languages Seminar, Spring 2004
38
5.3 Construction (contd.) Useful in grammar completion and
connection:1. Missing rules added by include.2. Too restrictive phrases generalised by
generalise.3. Missing definition of non-terminals
established using resolve.4. Non-terminals unified with unify.
![Page 39: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/39.jpg)
Programming Languages Seminar, Spring 2004
39
5.4 Destruction Essentially inverse of construction
(except delete operator)
![Page 40: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/40.jpg)
Programming Languages Seminar, Spring 2004
40
5.4 Destruction (contd.) Separate
example:
![Page 41: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/41.jpg)
Programming Languages Seminar, Spring 2004
41
5.4 Destruction (contd.)
Useful for correction or revision:1. Too general phrases can be
restricted.2. Superfluous rules or definitions can be
excluded or rejected, respectively.3. Accidentally unified phrases can be
separated by introducing new non-terminals in certain occurrences.
![Page 42: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/42.jpg)
Programming Languages Seminar, Spring 2004
42
5.5 Discussion
![Page 43: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/43.jpg)
Programming Languages Seminar, Spring 2004
43
5.5 Discussion (contd.) Some semantics preservation
examples:1. preserve: strictly preserving –
equivalence of phrases implies equivalent grammars.
2. unfold: strictly preserving – unfold defined interms of preserve.
3. introduce: introducing – adds a rule for a new non-terminal
![Page 44: Programming Languages Seminar, Spring 20041 Grammar Adaptation (Ralf Lämmel, CWI) Presentation and slides by: Faizan Javed March 9 th, 2004](https://reader036.vdocument.in/reader036/viewer/2022070402/56649f215503460f94c39f03/html5/thumbnails/44.jpg)
Programming Languages Seminar, Spring 2004
44
6.0 Conclusion Towards proper grammar re-engineering:
-viewed as coding work-not a research focus anymore…more research needed!-paper contributes by defining the foundations of an adaptive style of grammar development.
Semantics preservation and relaxation:-refactoring operators are semantics preserving only.-paper introduces a set of weaker preservation notions, suitable to characterise revisions and extensions.
Perspective:- more global notions than just preservation – can the grammar be improved with the transformation sequence?-Open research problem: how clients of a grammar such as compiler compiler inputs, rewrite rules have to be adapted if the grammar serving as contract changes.