summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2017-10-24 15:32:28 +0200
committerGregor Kleen <gkleen@yggdrasil.li>2017-10-24 15:32:28 +0200
commitacaa6097127fa23e1a61a40b38a14a39af5c22b1 (patch)
treeefdb71773eeedd9f6c0941aa634c19dfdc4bdf05
parentb0664409b92541883e4cf17ff77730aa124e9d48 (diff)
downloadincremental-dfsts-acaa6097127fa23e1a61a40b38a14a39af5c22b1.tar
incremental-dfsts-acaa6097127fa23e1a61a40b38a14a39af5c22b1.tar.gz
incremental-dfsts-acaa6097127fa23e1a61a40b38a14a39af5c22b1.tar.bz2
incremental-dfsts-acaa6097127fa23e1a61a40b38a14a39af5c22b1.tar.xz
incremental-dfsts-acaa6097127fa23e1a61a40b38a14a39af5c22b1.zip
Bachelor's thesis; look up literature
-rw-r--r--all.gup3
-rw-r--r--literature.md81
-rw-r--r--literature.meta.yml.gup26
-rw-r--r--literature/a-programmable-editor.bibtex8
-rw-r--r--literature/bidirectional-tree-transformations.bibtex10
l---------literature/bidirectional-tree-transformations.pdf1
-rw-r--r--literature/boomerang.bibtex10
-rw-r--r--literature/combinator-parsers.bibtex10
l---------literature/combinator-parsers.pdf1
-rw-r--r--literature/delta-lenses-and-opfibrations.bibtex7
l---------literature/delta-lenses-and-opfibrations.pdf1
-rw-r--r--literature/edit-languages-for-information-trees.bibtex7
l---------literature/edit-languages-for-information-trees.pdf1
-rw-r--r--literature/edit-lenses.bibtex10
-rw-r--r--literature/efficient-and-flexible-incremental-parsing.bibtex10
l---------literature/efficient-and-flexible-incremental-parsing.pdf1
-rw-r--r--literature/incremental-parsing.bibtex18
l---------literature/incremental-parsing.pdf1
-rw-r--r--literature/lazy-functional-incremental-parsing.bibtex8
-rw-r--r--literature/lenses-and-bidirectional-programming.bibtex4
l---------literature/lenses-and-bidirectional-programming.pdf (renamed from literature/dylus.pdf)0
-rw-r--r--literature/parsing-in-a-broad-sense.bibtex8
-rw-r--r--literature/polish-parsers.bibtex10
l---------literature/polish-parsers.pdf (renamed from literature/p224-swierstra.pdf)0
-rw-r--r--literature/symmetric-lenses.bibtex10
l---------literature/symmetric-lenses.pdf1
-rw-r--r--literature/universal-updates-for-symmetric-lenses.bibtex4
l---------literature/universal-updates-for-symmetric-lenses.pdf1
28 files changed, 252 insertions, 0 deletions
diff --git a/all.gup b/all.gup
new file mode 100644
index 0000000..ad40ad4
--- /dev/null
+++ b/all.gup
@@ -0,0 +1,3 @@
1#!/usr/bin/env sh
2
3gup -u literature.pdf
diff --git a/literature.md b/literature.md
new file mode 100644
index 0000000..9e4f27e
--- /dev/null
+++ b/literature.md
@@ -0,0 +1,81 @@
1# Thema
2
3Wir möchten inkrementelle Parser sowohl in ihrer algebraischen Struktur als auch
4in einer Implementierung in Haskell als edit-lenses auffassen.
5
6Diese Implementierung soll inkrementelle Parser für reguläre- und
7$LL(1)$-Sprachen sowie für Fragmente von Java und XML bereitstellen.
8
9# Bekannte Ergebnisse
10
11$LL(1)$-Parser
12 ~ @wagner1998efficient haben bereits einen inkrementellen $LL(1)$-Parser mit dem
13 gewünschten Laufzeitverhalten vorgestellt.
14
15 Dies deckt unsere DEA- und Klammerungs-Beispiele ab, nicht jedoch z.B. XML.
16 Zudem planen wir unsere Beispiele möglichst deklarativ (z.B. in
17 idiomatischem Haskell) statt imperativ (@wagner1998efficient verwenden C++)
18 zu formulieren.
19
20Applikative parser mit lazy evaluation
21 ~ @bernardy2009lazy beschreibt eine Implementierung applikativer Parser (alá
22 @swierstra2001combinator) die noch während dem parse-Vorgang Resultate
23 produziert (der Parser ist _online_) und über einen Mechanismus verfügt
24 partielle Resultate für den Lauf des Parsers auf einem Präfix der Eingabe zu
25 memoisieren.
26 Unter der Verwendung von lazy evaluation lassen sich damit unsere Anforderungen
27 an inkrementelle Parser realisieren.
28
29 Abgrenzen lassen sich die von uns verfolgten Ziele von den Ergebnissen aus
30 [-@bernardy2009lazy] vor allem durch die Darstellung als edit-lenses und
31 dass wir Parser für eine weitere Auswahl von Grammatiken konkret
32 implementieren möchten.
33
34# Verwandte Themen
35
36Parser als Linsen
37 ~ @zaytsev2014parsing stellen eine Taxonomie von Darstellungen (als String,
38 Liste von Tokens (wmgl. getypt), Parse-Baum (wmgl. mit Vieldeutigkeiten), …)
39 vor und charakterisieren Prozesse die zwischen Darstellungen konvertieren
40 (insbesondere Parser als funktionale Linsen).
41
42 @hofmann2012edit erweitern das gewöhnliche Bild von funktionalen Linsen um
43 solche, die direkt auf Differenzen von Strukturen agieren.
44
45 Die beiden Ergebnisse lassen sich insofern kombinieren, dass inkrementelle
46 Parser als edit lenses aufgefasst werden, was mitunter Ziel der Arbeit sein
47 soll (@zaytsev2014parsing schlagen diese Anwendung in ihrer Arbeit vor).
48
49Edit languages
50 ~ @hofmann2013edit spezifizieren eine Sprache zur Beschreibung von
51 edit-Operationen auf _information-trees_.
52
53 Es ist naheliegend geparste XML-Dokumente als information-tree aufzufassen
54 und Veränderungen in der serialisierten Darstellung des Dokuments vermöge
55 unserer XML-Parser edit-lens auf edit-Operationen aus [-@hofmann2013edit]
56 abzubilden.
57
58Bidirectional tree- & string transformations
59 ~ @foster2007combinators spezifizieren eine Sprache für bidirektionale
60 Baum-Transformationen als funktionale Linsen und deren Kompositionen.
61
62 Sollte sich im Laufe der Implementierung herausstellen, dass eine
63 Repräsentierung der edit-Operationen auf XML als Linsen zusätzliche
64 Uniformität hervorbringt, so ist es zweckmäßig von der Beschreibung alá
65 @hofmann2013edit auf bidirektionale Baum-Transformationen umzusteigen.
66
67 Es ist abzusehen, dass, falls eine Beschreibung der edit-Operationen auf
68 Bäume nützlich ist, sie es auch auf Strings sein wird. In diesem Fall bieten
69 sich die Methoden von @bohannon2008boomerang an.
70
71Symmetrische Linsen
72 ~ Unparsing (pretty-printing) soll nicht im Umfang der Arbeit sein.
73
74Polish Parsers & Parser-Kombinatoren
75 ~ Es ist nicht auszuschließen, dass wir unsere Beispiel-Parser vermöge einer
76 eigenen Implementierung von Parser-Kombinatoren (alá
77 @swierstra2001combinator) konstruieren.
78
79 Falls sich eine Implementierung von Parser-Kombinatoren anbietet gibt es
80 keinen offensichtlichen Grund warum sich die Konstruktion aus
81 [-@hughes2003polish] nicht anwenden lassen sollte.
diff --git a/literature.meta.yml.gup b/literature.meta.yml.gup
new file mode 100644
index 0000000..dc8e95d
--- /dev/null
+++ b/literature.meta.yml.gup
@@ -0,0 +1,26 @@
1#!/usr/bin/env zsh
2
3exec 1>$1
4
5echo '---'
6
7cat <<-EOF
8 lang: de-de
9 link-citations: true
10 EOF
11
12printf "bibliography:\n"
13
14typeset -a bibFiles
15bibFiles=(literature/**.bibtex)
16
17# sha256sum ${bibFiles} >&2
18
19gup --contents <<<"${bibFiles}"
20gup -u ${bibFiles}
21
22for bibFile (${bibFiles}); do
23 printf " - %s\n" ${bibFile}
24done
25
26echo '...'
diff --git a/literature/a-programmable-editor.bibtex b/literature/a-programmable-editor.bibtex
new file mode 100644
index 0000000..e0649ca
--- /dev/null
+++ b/literature/a-programmable-editor.bibtex
@@ -0,0 +1,8 @@
1@inproceedings{hu2004programmable,
2 title={A programmable editor for developing structured documents based on bidirectional transformations},
3 author={Hu, Zhenjiang and Mu, Shin-Cheng and Takeichi, Masato},
4 booktitle={Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation},
5 pages={178--189},
6 year={2004},
7 organization={ACM}
8}
diff --git a/literature/bidirectional-tree-transformations.bibtex b/literature/bidirectional-tree-transformations.bibtex
new file mode 100644
index 0000000..1d75f45
--- /dev/null
+++ b/literature/bidirectional-tree-transformations.bibtex
@@ -0,0 +1,10 @@
1@article{foster2007combinators,
2 title={Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem},
3 author={Foster, J Nathan and Greenwald, Michael B and Moore, Jonathan T and Pierce, Benjamin C and Schmitt, Alan},
4 journal={ACM Transactions on Programming Languages and Systems (TOPLAS)},
5 volume={29},
6 number={3},
7 pages={17},
8 year={2007},
9 publisher={ACM}
10}
diff --git a/literature/bidirectional-tree-transformations.pdf b/literature/bidirectional-tree-transformations.pdf
new file mode 120000
index 0000000..d541644
--- /dev/null
+++ b/literature/bidirectional-tree-transformations.pdf
@@ -0,0 +1 @@
../../.git/annex/objects/3q/Q4/SHA256E-s2005957--10cd19a1094b457df9d486cc90d410fed0d89de9c53a20925e38957cc6dcb611.pdf/SHA256E-s2005957--10cd19a1094b457df9d486cc90d410fed0d89de9c53a20925e38957cc6dcb611.pdf \ No newline at end of file
diff --git a/literature/boomerang.bibtex b/literature/boomerang.bibtex
new file mode 100644
index 0000000..4699c15
--- /dev/null
+++ b/literature/boomerang.bibtex
@@ -0,0 +1,10 @@
1@inproceedings{bohannon2008boomerang,
2 title={Boomerang: resourceful lenses for string data},
3 author={Bohannon, Aaron and Foster, J Nathan and Pierce, Benjamin C and Pilkiewicz, Alexandre and Schmitt, Alan},
4 booktitle={ACM SIGPLAN Notices},
5 volume={43},
6 number={1},
7 pages={407--419},
8 year={2008},
9 organization={ACM}
10}
diff --git a/literature/combinator-parsers.bibtex b/literature/combinator-parsers.bibtex
new file mode 100644
index 0000000..215218a
--- /dev/null
+++ b/literature/combinator-parsers.bibtex
@@ -0,0 +1,10 @@
1@article{swierstra2001combinator,
2 title={Combinator parsers: From toys to tools},
3 author={Swierstra, S Doaitse},
4 journal={Electronic Notes in Theoretical Computer Science},
5 volume={41},
6 number={1},
7 pages={38--59},
8 year={2001},
9 publisher={Elsevier}
10}
diff --git a/literature/combinator-parsers.pdf b/literature/combinator-parsers.pdf
new file mode 120000
index 0000000..188b004
--- /dev/null
+++ b/literature/combinator-parsers.pdf
@@ -0,0 +1 @@
../../.git/annex/objects/G5/8f/SHA256E-s209412--683422aea849a1620f405bd53b3a853d015b600e4cd07c20dd7172d6d976a9ab.pdf/SHA256E-s209412--683422aea849a1620f405bd53b3a853d015b600e4cd07c20dd7172d6d976a9ab.pdf \ No newline at end of file
diff --git a/literature/delta-lenses-and-opfibrations.bibtex b/literature/delta-lenses-and-opfibrations.bibtex
new file mode 100644
index 0000000..75f6c6e
--- /dev/null
+++ b/literature/delta-lenses-and-opfibrations.bibtex
@@ -0,0 +1,7 @@
1@article{johnson2013delta,
2 title={Delta lenses and opfibrations},
3 author={Johnson, Michael and Rosebrugh, Robert},
4 journal={Electronic Communications of the EASST},
5 volume={57},
6 year={2013}
7}
diff --git a/literature/delta-lenses-and-opfibrations.pdf b/literature/delta-lenses-and-opfibrations.pdf
new file mode 120000
index 0000000..91b80ba
--- /dev/null
+++ b/literature/delta-lenses-and-opfibrations.pdf
@@ -0,0 +1 @@
../../.git/annex/objects/65/k5/SHA256E-s219945--e885ea109010acbca66336a48077e8b0c37424eca1629d025bdb2839a1a4fa89.pdf/SHA256E-s219945--e885ea109010acbca66336a48077e8b0c37424eca1629d025bdb2839a1a4fa89.pdf \ No newline at end of file
diff --git a/literature/edit-languages-for-information-trees.bibtex b/literature/edit-languages-for-information-trees.bibtex
new file mode 100644
index 0000000..b7feb3d
--- /dev/null
+++ b/literature/edit-languages-for-information-trees.bibtex
@@ -0,0 +1,7 @@
1@article{hofmann2013edit,
2 title={Edit languages for information trees},
3 author={Hofmann, Martin and Pierce, Benjamin and Wagner, Daniel},
4 journal={Electronic Communications of the EASST},
5 volume={57},
6 year={2013}
7}
diff --git a/literature/edit-languages-for-information-trees.pdf b/literature/edit-languages-for-information-trees.pdf
new file mode 120000
index 0000000..c986c6f
--- /dev/null
+++ b/literature/edit-languages-for-information-trees.pdf
@@ -0,0 +1 @@
../../.git/annex/objects/xx/4w/SHA256E-s244187--e868ab15cd182552ccabf44118f98f746285d564f571961a1e74ad6e1dadc773.pdf/SHA256E-s244187--e868ab15cd182552ccabf44118f98f746285d564f571961a1e74ad6e1dadc773.pdf \ No newline at end of file
diff --git a/literature/edit-lenses.bibtex b/literature/edit-lenses.bibtex
new file mode 100644
index 0000000..13ca5bf
--- /dev/null
+++ b/literature/edit-lenses.bibtex
@@ -0,0 +1,10 @@
1@inproceedings{hofmann2012edit,
2 title={Edit lenses},
3 author={Hofmann, Martin and Pierce, Benjamin and Wagner, Daniel},
4 booktitle={ACM SIGPLAN Notices},
5 volume={47},
6 number={1},
7 pages={495--508},
8 year={2012},
9 organization={ACM}
10}
diff --git a/literature/efficient-and-flexible-incremental-parsing.bibtex b/literature/efficient-and-flexible-incremental-parsing.bibtex
new file mode 100644
index 0000000..41e9ab4
--- /dev/null
+++ b/literature/efficient-and-flexible-incremental-parsing.bibtex
@@ -0,0 +1,10 @@
1@article{wagner1998efficient,
2 title={Efficient and flexible incremental parsing},
3 author={Wagner, Tim A and Graham, Susan L},
4 journal={ACM Transactions on Programming Languages and Systems (TOPLAS)},
5 volume={20},
6 number={5},
7 pages={980--1013},
8 year={1998},
9 publisher={ACM}
10}
diff --git a/literature/efficient-and-flexible-incremental-parsing.pdf b/literature/efficient-and-flexible-incremental-parsing.pdf
new file mode 120000
index 0000000..728b64f
--- /dev/null
+++ b/literature/efficient-and-flexible-incremental-parsing.pdf
@@ -0,0 +1 @@
../../.git/annex/objects/8X/GX/SHA256E-s143343--a090c1362970814e718010e4164d894a30a230fd7bb2604ed1fb6c86f0cf09ee.pdf/SHA256E-s143343--a090c1362970814e718010e4164d894a30a230fd7bb2604ed1fb6c86f0cf09ee.pdf \ No newline at end of file
diff --git a/literature/incremental-parsing.bibtex b/literature/incremental-parsing.bibtex
new file mode 100644
index 0000000..96ec6c4
--- /dev/null
+++ b/literature/incremental-parsing.bibtex
@@ -0,0 +1,18 @@
1@article{Ghezzi:1979:IP:357062.357066,
2 author = {Ghezzi, Carlo and Mandrioli, Dino},
3 title = {Incremental Parsing},
4 journal = {ACM Trans. Program. Lang. Syst.},
5 issue_date = {July 1979},
6 volume = {1},
7 number = {1},
8 month = jan,
9 year = {1979},
10 issn = {0164-0925},
11 pages = {58--70},
12 numpages = {13},
13 url = {http://doi.acm.org/10.1145/357062.357066},
14 doi = {10.1145/357062.357066},
15 acmid = {357066},
16 publisher = {ACM},
17 address = {New York, NY, USA},
18} \ No newline at end of file
diff --git a/literature/incremental-parsing.pdf b/literature/incremental-parsing.pdf
new file mode 120000
index 0000000..3d34726
--- /dev/null
+++ b/literature/incremental-parsing.pdf
@@ -0,0 +1 @@
../../.git/annex/objects/2z/KX/SHA256E-s679194--ddd3575d5c0bf3a34759d9e188cec285541cea52fc89ef4612b0cb3a63acf304.pdf/SHA256E-s679194--ddd3575d5c0bf3a34759d9e188cec285541cea52fc89ef4612b0cb3a63acf304.pdf \ No newline at end of file
diff --git a/literature/lazy-functional-incremental-parsing.bibtex b/literature/lazy-functional-incremental-parsing.bibtex
new file mode 100644
index 0000000..3c82f51
--- /dev/null
+++ b/literature/lazy-functional-incremental-parsing.bibtex
@@ -0,0 +1,8 @@
1@inproceedings{bernardy2009lazy,
2 title={Lazy functional incremental parsing},
3 author={Bernardy, Jean-Philippe},
4 booktitle={Proceedings of the 2nd ACM SIGPLAN symposium on Haskell},
5 pages={49--60},
6 year={2009},
7 organization={ACM}
8}
diff --git a/literature/lenses-and-bidirectional-programming.bibtex b/literature/lenses-and-bidirectional-programming.bibtex
new file mode 100644
index 0000000..47bac9e
--- /dev/null
+++ b/literature/lenses-and-bidirectional-programming.bibtex
@@ -0,0 +1,4 @@
1@masterthesis{dyluslenses,
2 title={Lenses and Bidirectional Programming in Curry},
3 author={Dylus, Sandra and Hanus, Michael}
4}
diff --git a/literature/dylus.pdf b/literature/lenses-and-bidirectional-programming.pdf
index 3418031..3418031 120000
--- a/literature/dylus.pdf
+++ b/literature/lenses-and-bidirectional-programming.pdf
diff --git a/literature/parsing-in-a-broad-sense.bibtex b/literature/parsing-in-a-broad-sense.bibtex
new file mode 100644
index 0000000..56b0369
--- /dev/null
+++ b/literature/parsing-in-a-broad-sense.bibtex
@@ -0,0 +1,8 @@
1@inproceedings{zaytsev2014parsing,
2 title={Parsing in a broad sense},
3 author={Zaytsev, Vadim and Bagge, Anya Helene},
4 booktitle={International Conference on Model Driven Engineering Languages and Systems},
5 pages={50--67},
6 year={2014},
7 organization={Springer}
8}
diff --git a/literature/polish-parsers.bibtex b/literature/polish-parsers.bibtex
new file mode 100644
index 0000000..ecd6ea2
--- /dev/null
+++ b/literature/polish-parsers.bibtex
@@ -0,0 +1,10 @@
1@article{hughes2003polish,
2 title={Polish parsers, step by step},
3 author={Hughes, R John M and Swierstra, S Doaitse},
4 journal={ACM SIGPLAN Notices},
5 volume={38},
6 number={9},
7 pages={239--248},
8 year={2003},
9 publisher={ACM}
10}
diff --git a/literature/p224-swierstra.pdf b/literature/polish-parsers.pdf
index 0ee4c6c..0ee4c6c 120000
--- a/literature/p224-swierstra.pdf
+++ b/literature/polish-parsers.pdf
diff --git a/literature/symmetric-lenses.bibtex b/literature/symmetric-lenses.bibtex
new file mode 100644
index 0000000..8ac01e0
--- /dev/null
+++ b/literature/symmetric-lenses.bibtex
@@ -0,0 +1,10 @@
1@inproceedings{hofmann2011symmetric,
2 title={Symmetric lenses},
3 author={Hofmann, Martin and Pierce, Benjamin and Wagner, Daniel},
4 booktitle={ACM SIGPLAN Notices},
5 volume={46},
6 number={1},
7 pages={371--384},
8 year={2011},
9 organization={ACM}
10}
diff --git a/literature/symmetric-lenses.pdf b/literature/symmetric-lenses.pdf
new file mode 120000
index 0000000..9ee4ecb
--- /dev/null
+++ b/literature/symmetric-lenses.pdf
@@ -0,0 +1 @@
../../.git/annex/objects/p6/JQ/SHA256E-s461824--bd917931388a6789b23954f030693db7383988c589ff32f94f429eb787ca09f2.pdf/SHA256E-s461824--bd917931388a6789b23954f030693db7383988c589ff32f94f429eb787ca09f2.pdf \ No newline at end of file
diff --git a/literature/universal-updates-for-symmetric-lenses.bibtex b/literature/universal-updates-for-symmetric-lenses.bibtex
new file mode 100644
index 0000000..d525546
--- /dev/null
+++ b/literature/universal-updates-for-symmetric-lenses.bibtex
@@ -0,0 +1,4 @@
1@article{johnsonuniversal,
2 title={Universal Updates for Symmetric Lenses},
3 author={Johnson, Michael and Rosebrugh, Robert}
4}
diff --git a/literature/universal-updates-for-symmetric-lenses.pdf b/literature/universal-updates-for-symmetric-lenses.pdf
new file mode 120000
index 0000000..02ca7ce
--- /dev/null
+++ b/literature/universal-updates-for-symmetric-lenses.pdf
@@ -0,0 +1 @@
../../.git/annex/objects/gj/gW/SHA256E-s347098--7172db6b2de519753231d4c68920905bb3d3dd53ee5cf3895fd1db8dba30291f.pdf/SHA256E-s347098--7172db6b2de519753231d4c68920905bb3d3dd53ee5cf3895fd1db8dba30291f.pdf \ No newline at end of file