Skip to content

Commit c9888ed

Browse files
author
Oskar Lundström
committed
Språkändringar i de två första teori-avsnitten
1 parent f5d5e64 commit c9888ed

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

Rapport/include/Teori.tex

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ \chapter{Teori}
44
\begin{draft}
55

66
I detta kapitel beskrivs fyra områden av central betydelse för projektet. Dessa
7-
områden är domänspecifika språk, begreppen syntax, semantik och syntaxträd,
7+
områden är domänspecifika språk, begreppen syntax, syntaxträd och semantik,
88
literat progammering samt ARCS-modellen och annan didaktik.
99

1010
\section{Domänspecifika språk}
@@ -26,19 +26,19 @@ \section{Domänspecifika språk}
2626
Domänspecifika språk är vanligt förekommande i programmeringssammanhang. HTML är
2727
ett domänspecifikt språk för textformatering, SQL för databashantering och
2828
CSV för tabeller. Precis som domänspecifika språk i vardagen passar
29-
domänspecifika språk inom programmering bäst för sitt egna domän. SQL är bra för
29+
domänspecifika språk inom programmering bäst för sin egen domän. SQL är bra för
3030
databaser men inte att göra ett spel i.
3131

3232
Motsatsen till ett domänspecifikt språk är ett generellt språk. I vardagen är
3333
naturliga språk som svenska och engelska generella medan ryttar-begreppen ovan
3434
är domänspecifika. Precis som i vardagen finns det i datavärlden generella
35-
programmeringsspråk som C++ och Java. Dessa är turingkompletta, vilket betyder
35+
programmeringsspråk, till exempel C++ och Java. Dessa är turingkompletta, vilket betyder
3636
att det går att uttrycka alla beräkningsbara problem i dem och även lösa dem
3737
givet tillräckligt med tid och
3838
minnestillgångar\cite{turing_ne}\cite{turing_book}. Begränsningen med dessa
39-
generella språk är just deras egen generaliserbarhet, eftersom de har stöd för
39+
generella språk är att de är just generella. Eftersom de har stöd för
4040
alla typer av beräkningar så blir både läsbarheten och användarvänligheten
41-
lidande. Ett exempel på ett domänspecifikt språk i datavärlden är \textit{syntaxträd}. Syntaxträd har
41+
lidande. Ett exempel på en form av domänspecifika språk i datavärlden är \textit{syntaxträd}. Syntaxträd har
4242
använts mycket i projektet och beskrivs mer utförligt i
4343
avsnitt~\ref{sec:syntax}.
4444

@@ -47,7 +47,7 @@ \section{Domänspecifika språk}
4747
utvecklats inom detta projekt är inbäddade i programmeringsspråket
4848
\textit{Haskell}. Haskell är ett lämpligt val eftersom det är enkelt att skapa
4949
datatyper som bygger upp det domänspecifika språket. Att Haskell är ett
50-
högnivå-språk är också en fördel då man slipper programerings-tekniska detaljer,
50+
högnivå-språk är också en fördel då man slipper programeringstekniska detaljer,
5151
till exempel minneshantering, och istället kan fokusera på programmets innehåll
5252
och betydelse. Slutligen gör dess mönstermatchning att de datatyper som utgör
5353
det domänspecifika språket enkelt kan brytas isär och manipuleras.
@@ -86,7 +86,7 @@ \section{Syntax, syntaxträd och semantik}\label{sec:syntax}
8686
\textit{löv} (ändpunkter) och \textit{förgreningar}. I detta exempel är
8787
\texttt{:+:} och \texttt{:*:} förgreningar. Med hjälp av dem kan man uttrycka
8888
summan respektive produkten av två andra uttryck. Löven representeras av
89-
\texttt{Const}, det är en konstant som man ej kan bygga vidare på.
89+
\texttt{Const}. Det är en konstant som man ej kan bygga vidare på.
9090

9191
Med datakonstruktorerna kan man konstruera uttryck i språket. Ett exempeluttryck
9292
från den tidigare datatypen visas i figur~\ref{fig:syntax_exempel_varde}.
@@ -95,15 +95,15 @@ \section{Syntax, syntaxträd och semantik}\label{sec:syntax}
9595
\begin{lstlisting}
9696
expr = Const 7 :*: (Const 3 :+: Const 10)
9797
\end{lstlisting}
98-
\caption{Ett exempelvärde ur det tidigare syntaxträdet. Detta modellerar det
98+
\caption{Ett exempeluttryck ur det tidigare syntaxträdet. Detta modellerar det
9999
matematiska uttrycket $7 * (3 + 10)$}\label{fig:syntax_exempel_varde}
100100
\end{figure}
101101

102102
Figur~\ref{fig:syntax_exempel_varde} visar hur det aritmetiska uttrycket $7 * (3
103103
+ 10)$ modelleras. Konstruktorn \texttt{:*:} får som sina två argument uttrycken
104104
\texttt{Const 7} och \texttt{Const 3 :+: Const 10}. Det är alltså en produkt av
105-
två deluttryck. Syntaxträd brukar illusteras med just träddiagram. Detta
106-
exempelvärde illustreras i figur \ref{fig:syntax_exempel_bild}.
105+
två deluttryck. Syntaxträd brukar illusteras med träddiagram. Detta
106+
exempeluttryck illustreras i figur \ref{fig:syntax_exempel_bild}.
107107

108108
\begin{figure}[tph]
109109
\centering
@@ -131,12 +131,12 @@ \section{Syntax, syntaxträd och semantik}\label{sec:syntax}
131131
Det finns tre saker som är speciellt värda att notera i
132132
figur~\ref{fig:eval_tree}. Den första är att eftersom syntaxen innehåller tre olika
133133
typer av element, här motsvarat av de tre datakonstruktorerna, krävs tre fall i
134-
beräkningsfunktionen som beräknar vardera av dem. \textit{evaluate} har
134+
beräkningsfunktionen som beräknar vardera av dem. \texttt{evaluate} har
135135
därför ett fall för \texttt{:+:}, ett för \texttt{:*:} och ett för
136136
\texttt{Const}.
137137

138138
Den andra saken att notera ur figur~\ref{fig:eval_tree} är hur ett fall
139-
beräknas. Hur beräkningen ska ses ut får man genom att ta hänsyn till
139+
beräknas. Hur beräkningen ska se ut får man genom att ta hänsyn till
140140
semantiken hos det syntaktiska elementet. \texttt{e1 :+: e2} är syntax för
141141
addition av de två uttrycken \texttt{e1} och \texttt{e2}. Därför blir
142142
semantiken, värdet, av \texttt{e1 :+: e2} lika med värdet hos \texttt{e1} och

0 commit comments

Comments
 (0)