summaryrefslogtreecommitdiff
path: root/implementation.tex
diff options
context:
space:
mode:
Diffstat (limited to 'implementation.tex')
-rw-r--r--implementation.tex10
1 files changed, 6 insertions, 4 deletions
diff --git a/implementation.tex b/implementation.tex
index f5e5e58..3a68e04 100644
--- a/implementation.tex
+++ b/implementation.tex
@@ -22,7 +22,7 @@ Die Module innerhalb von \texttt{edit-lens} entsprechen im wesentlichen den Sekt
22\item[Control.DFST] 22\item[Control.DFST]
23 Datentyp, schrittweise-, und vollständige Auswertung sowie Umwandlung zu einem FST für deterministische finite state transducer 23 Datentyp, schrittweise-, und vollständige Auswertung sowie Umwandlung zu einem FST für deterministische finite state transducer
24\item[Control.Lens.Edit.ActionTree] 24\item[Control.Lens.Edit.ActionTree]
25 Das beschriebene Verfahren zur Darstellung eines beliebigen DFST als edit-lens für jene edit-Sprache 25 Das beschriebene Verfahren zur Darstellung eines beliebigen DFST als edit-lens für die edit-Sprache aus \textbf{Control.Edit.String}
26 26
27 Es ist hierbei jedoch der konkrete Typ der Wirkung und das Suchschema für $\Lleftarrow$ als Typklasse abstrahiert 27 Es ist hierbei jedoch der konkrete Typ der Wirkung und das Suchschema für $\Lleftarrow$ als Typklasse abstrahiert
28\item[Control.DFST.Lens] 28\item[Control.DFST.Lens]
@@ -53,13 +53,15 @@ Die Module innerhalb von \texttt{edit-lens} entsprechen im wesentlichen den Sekt
53Der interaktive editor kann von der Befehlseingabe gestartet werden wie folgt: 53Der interaktive editor kann von der Befehlseingabe gestartet werden wie folgt:
54\begin{lstlisting}[language=bash] 54\begin{lstlisting}[language=bash]
55 $ stack build 55 $ stack build
56 $ stack exec interact <dfst 56 $ stack exec interact <dfst>
57\end{lstlisting} 57\end{lstlisting}
58Hierbei ist \texttt{<dfst>} einer der in \texttt{Main} implementierten DFSTs: 58Hierbei ist \texttt{<dfst>} einer der in \texttt{Main} implementierten DFSTs:
59 59
60\begin{description} 60\begin{description}
61\item[linebreak] 61\item[linebreak]
62 Wandelt Zeilenumbrüche und Leerzeichen ineinander um, sodass alle Zeilen mindestens 80 Zeichen enthalten 62 Wandelt Zeilenumbrüche und Leerzeichen ineinander um, sodass alle Zeilen mindestens 80 Zeichen enthalten (Beispiel \ref{eg:linebreak})
63\item[switch]
64 Der einfache DFST aus Abbildung \ref{fig:switchdfst}
63\item[json-newl] 65\item[json-newl]
64 Normalisiert Whitespace in einem JSON\footnote{\url{https://de.wikipedia.org/wiki/JSON}}-String. 66 Normalisiert Whitespace in einem JSON\footnote{\url{https://de.wikipedia.org/wiki/JSON}}-String.
65 JSON ist nicht regulär; Es lassen sich Klammern nicht prüfen und Einrückung nicht in Abhängigkeit der Verschachtelung implementieren 67 JSON ist nicht regulär; Es lassen sich Klammern nicht prüfen und Einrückung nicht in Abhängigkeit der Verschachtelung implementieren
@@ -85,5 +87,5 @@ Nach Auswahl wird der Inhalt der Datei am Cursor eingefügt.
85\subsubsection{Performance} 87\subsubsection{Performance}
86 88
87Bei der Implementierung wurde nicht auf Performance geachtet. 89Bei der Implementierung wurde nicht auf Performance geachtet.
88Es ist daher die Laufzeit des interaktiven Editors bereits bei kleinen Eingabe inakzeptabel lang (mehrere Sekunden für ein Kilobyte JSON). 90Es ist daher die Laufzeit des interaktiven Editors bereits bei kleinen Eingaben inakzeptabel lang (mehrere Sekunden für ein Kilobyte JSON).
89Es lässt sich allerdings der Speedup beim Propagieren kleiner edits gut beobachten; die Propagation eines ein-Buchstaben-edits nach rechts ist ca. einen Faktor 200 schneller als das komplett neue Parsen einer Datei (ca. ein Kilobyte JSON). 91Es lässt sich allerdings der Speedup beim Propagieren kleiner edits gut beobachten; die Propagation eines ein-Buchstaben-edits nach rechts ist ca. einen Faktor 200 schneller als das komplett neue Parsen einer Datei (ca. ein Kilobyte JSON).