Martin Vejnár avatar Martin Vejnár committed 56b7346

Super done.

Comments (0)

Files changed (1)

 Let us first note that from an engineering perspective,
 using an existing language---one that is well-recognized by the compiler community---%
 would be a far better solution than developing a new one.
-In fact, the the \textsc{LLVM} assembly language \cite{ref:llvm-asm} is specifically
+In fact, the \textsc{LLVM} assembly language \cite{ref:llvm-asm} is specifically
 designed to serve as a language-independent program representation,
 yet it simultaneously delivers information about the program at a very high level \cite{LLVM:CGO04}.
 Utilizing \textsc{LLVM}, we would immediately be granted support for a variety of programming languages,
 and in fact providing nearly all information that we might find useful for static analysis,
 it lacks the ability to represent some of the aspects of the C++ language, notably nondeterminism,%
 \footnote{In C-like languages, the order of evaluation of subexpressions is unspecified.}
-and presents some information in form that is difficult to deal with (virtual calls are performed through virtual tables;
+and presents some information in a form that is difficult to deal with (virtual calls are performed through virtual tables;
 matching a call site to a set of potential callers is in this case non-trivial).
 In addition, the LLVM assembly is rather awkward to handle, especially since \textsc{Stanse} is a student-developed project.
 
 When \texttt{x} and \texttt{y} are integers, the expression is equivalent to the expression \texttt{y > x}.
 The C parser, however, produces two different AST subtrees for these two expressions,
 forcing checkers to be more complex and the user to write more complicated patterns.
-In the new representation, both expressions would translate to $\llbracket\textbf{less } x, y\rrbracket$.
+In the new representation, both expressions would translate to the same SIR instruction,
+$\llbracket\textbf{less } x, y\rrbracket$.
 
 %While we hope that having a simple, yet powerful internal language will encourage the development of both parsers and checkers,
 %we do not believe that flexibility should be sacrificed for the sake of simplicity.
 %
 %In light of the goals outlined above, we designed SIR with both simplicity and flexibility in mind.
 In our representation, programs are broken into smaller units
-(corresponding to procedures and functions in the original programs) called SIR subroutines,
+(corresponding to procedures and functions in the source programs) called SIR subroutines,
 each of which consists of a set of nodes labeled by elementary instructions.
 %the set of which we tried to minimize.
 The nodes are interconnected by conditional edges,
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.