You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
utvecklats inom detta projekt är inbäddade i programmeringsspråket
46
46
\textit{Haskell}. Haskell är ett lämpligt val eftersom det är enkelt att skapa
47
47
datatyper som bygger upp det domänspecifika språket. Att Haskell är ett
48
-
högnivåspråk är också en fördel då programmeraren slipper programmeringstekniska detaljer,
49
-
till exempel minneshantering, och istället kan fokusera på programmets innehåll
50
-
och betydelse. Slutligen gör dess mönstermatchning att de datatyper som utgör
48
+
högnivåspråk är också en fördel då programmeraren slipper programmeringstekniska detaljer som
49
+
minneshantering, och kan istället fokusera på programmets innehåll
50
+
och betydelse. Slutligen möjliggör mönstermatchning att de datatyper som utgör
51
51
det domänspecifika språket enkelt kan brytas isär och manipuleras.
52
52
53
53
För vidare läsning om domänspecifika språk rekommenderas \textit{DSL for the Uninitiated} \cite{DSLU}.
54
54
55
55
\section{Syntax, syntaxträd och semantik}\label{sec:syntax}
56
56
57
57
I samband med domänspecifika språk dyker begreppen \textit{syntax} och
58
-
\textit{semantik} upp. Syntax är reglerna för hur enheter sammanslås
59
-
, som ord, i språket till komplexa strukturer, som meningar och
58
+
\textit{semantik} upp. Syntax är reglerna för hur enheter i språket, till exempel ord och skiljetecken, sammamslås till komplexa strukturer, som meningar och
60
59
satser. Semantik är betydelsen av sådana komplexa strukturer i ett språk.
61
60
Inom aritmetik\footnote{Aritmetik är
62
61
den gren inom matematiken som behandlar räkning av tal.} är tal och
@@ -85,8 +84,10 @@ \section{Syntax, syntaxträd och semantik}\label{sec:syntax}
85
84
86
85
Typen innehåller \textit{datakonstruktorer} för att representera
87
86
\textit{löv} (ändpunkter) och \textit{förgreningar}. I detta exempel är
88
-
\texttt{:+:} och \texttt{:*:} förgreningar. Med hjälp av dem kan summan respektive produkten av två andra uttryck uttryckas. Löven representeras av
89
-
\texttt{Const}. Det är en konstant som ej kan byggas vidare på.
87
+
\texttt{:+:} och \texttt{:*:} förgreningar. Med hjälp av dem kan summan respektive produkten av två andra uttryck uttryckas. Löven
88
+
% Löfven
89
+
representeras av
90
+
\texttt{Const}, vilket är en konstant som ej kan byggas vidare på.
90
91
91
92
Med datakonstruktorerna kan uttryck representerade av syntaxträd konstrueras. Ett exempeluttryck
92
93
från den tidigare datatypen visas i figur~\ref{fig:syntax_exempel_varde}, som visar hur det aritmetiska uttrycket $7 * (3
0 commit comments