diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2017-10-24 15:32:28 +0200 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2017-10-24 15:32:28 +0200 |
commit | acaa6097127fa23e1a61a40b38a14a39af5c22b1 (patch) | |
tree | efdb71773eeedd9f6c0941aa634c19dfdc4bdf05 | |
parent | b0664409b92541883e4cf17ff77730aa124e9d48 (diff) | |
download | incremental-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
28 files changed, 252 insertions, 0 deletions
@@ -0,0 +1,3 @@ | |||
1 | #!/usr/bin/env sh | ||
2 | |||
3 | gup -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 | |||
3 | Wir möchten inkrementelle Parser sowohl in ihrer algebraischen Struktur als auch | ||
4 | in einer Implementierung in Haskell als edit-lenses auffassen. | ||
5 | |||
6 | Diese 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 | |||
20 | Applikative 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 | |||
36 | Parser 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 | |||
49 | Edit 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 | |||
58 | Bidirectional 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 | |||
71 | Symmetrische Linsen | ||
72 | ~ Unparsing (pretty-printing) soll nicht im Umfang der Arbeit sein. | ||
73 | |||
74 | Polish 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 | |||
3 | exec 1>$1 | ||
4 | |||
5 | echo '---' | ||
6 | |||
7 | cat <<-EOF | ||
8 | lang: de-de | ||
9 | link-citations: true | ||
10 | EOF | ||
11 | |||
12 | printf "bibliography:\n" | ||
13 | |||
14 | typeset -a bibFiles | ||
15 | bibFiles=(literature/**.bibtex) | ||
16 | |||
17 | # sha256sum ${bibFiles} >&2 | ||
18 | |||
19 | gup --contents <<<"${bibFiles}" | ||
20 | gup -u ${bibFiles} | ||
21 | |||
22 | for bibFile (${bibFiles}); do | ||
23 | printf " - %s\n" ${bibFile} | ||
24 | done | ||
25 | |||
26 | echo '...' | ||
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 | |||