summaryrefslogtreecommitdiff
path: root/Homework/cs5300/homework-one/hw-ch1-src
diff options
context:
space:
mode:
authorElizabeth Alexander Hunt <me@liz.coffee>2026-07-02 11:55:17 -0700
committerElizabeth Alexander Hunt <me@liz.coffee>2026-07-02 11:55:17 -0700
commit6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 (patch)
treeed97e39ec77c5231ffd2c394493e68d00ddac5a4 /Homework/cs5300/homework-one/hw-ch1-src
downloadmisc-undergrad-main.tar.gz
misc-undergrad-main.zip
Diffstat (limited to 'Homework/cs5300/homework-one/hw-ch1-src')
-rw-r--r--Homework/cs5300/homework-one/hw-ch1-src/blocks.pdfbin0 -> 16181 bytes
-rw-r--r--Homework/cs5300/homework-one/hw-ch1-src/common.tex52
-rw-r--r--Homework/cs5300/homework-one/hw-ch1-src/hw-ch1-src.tex196
3 files changed, 248 insertions, 0 deletions
diff --git a/Homework/cs5300/homework-one/hw-ch1-src/blocks.pdf b/Homework/cs5300/homework-one/hw-ch1-src/blocks.pdf
new file mode 100644
index 0000000..6f70e51
--- /dev/null
+++ b/Homework/cs5300/homework-one/hw-ch1-src/blocks.pdf
Binary files differ
diff --git a/Homework/cs5300/homework-one/hw-ch1-src/common.tex b/Homework/cs5300/homework-one/hw-ch1-src/common.tex
new file mode 100644
index 0000000..81550ab
--- /dev/null
+++ b/Homework/cs5300/homework-one/hw-ch1-src/common.tex
@@ -0,0 +1,52 @@
+\usepackage{version}
+
+\usepackage{makeidx} % allows index generation
+\usepackage{graphicx} % standard LaTeX graphics tool
+ % when including figure files
+\usepackage{subfigure}
+\usepackage{multicol} % used for the two-column index
+\usepackage[bottom]{footmisc}% places footnotes at page bottom
+\usepackage{amstext,amssymb,amsmath} % I included these - AKG
+\usepackage{url}
+\usepackage{color}
+\usepackage{multirow}
+\usepackage{booktabs}
+
+% example use of listings (font is fixed-width):
+% \begin{lstlisting}[mathescape,basicstyle=\fontfamily{lmvtt}\selectfont]
+\usepackage{listings}
+\lstset{basicstyle=\ttfamily}
+
+%-------------------------------------------------------------------------------
+% Decrease margins
+%-------------------------------------------------------------------------------
+\oddsidemargin0cm
+\topmargin-2cm
+\textwidth16.5cm
+\textheight23.5cm
+
+%-------------------------------------------------------------------------------
+% this makes list spacing much better.
+%-------------------------------------------------------------------------------
+\newenvironment{tightenumerate}{
+\begin{enumerate}
+ \setlength{\itemsep}{1pt}
+ \setlength{\parskip}{0pt}
+ \setlength{\parsep}{0pt}
+}{\end{enumerate}
+}
+
+%-------------------------------------------------------------------------------
+% this makes list spacing much better.
+%-------------------------------------------------------------------------------
+\newenvironment{tightitemize}{
+\begin{itemize}
+ \setlength{\itemsep}{1pt}
+ \setlength{\parskip}{0pt}
+ \setlength{\parsep}{0pt}
+}{\end{itemize}
+}
+
+\newcommand{\myspace}{\vspace{4 mm}}
+\newcommand{\soln}{\paragraph{Solution:}}
+
diff --git a/Homework/cs5300/homework-one/hw-ch1-src/hw-ch1-src.tex b/Homework/cs5300/homework-one/hw-ch1-src/hw-ch1-src.tex
new file mode 100644
index 0000000..7a1eed3
--- /dev/null
+++ b/Homework/cs5300/homework-one/hw-ch1-src/hw-ch1-src.tex
@@ -0,0 +1,196 @@
+\documentclass{article}
+
+\input{common}
+
+\renewcommand{\tt}[1]{\texttt{#1}}
+\newcommand{\kc}{$^*$}
+\renewcommand{\not}{$^\wedge$}
+\newcommand{\pc}{$^+$}
+\newcommand{\e}{$\epsilon$}
+
+\includeversion{version:soln}
+
+\begin{document}
+
+\begin{flushleft}
+Homework - Chapter 1 \\
+CS 5300 %\\
+
+\end{flushleft}
+
+\begin{enumerate}
+\item (6 points) What is the difference between a compiler and an interpreter?
+ \begin{version:soln}
+ \soln Put your solution here.
+ \end{version:soln}
+
+\myspace
+\item (6 points) According to the book, what are the advantages of
+ \begin{tightenumerate}
+ \item a compiler over an interpreter?
+ \item an interpreter over a compiler?
+ \end{tightenumerate}
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (6 points) Discuss the portability across computers of compiled vs. interpreted programs.
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (6 points) Strictly speaking, Java is an interpreted language. Discuss how it has elements of being a compiled language.
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (6 points) The C compiler \textit{gcc} has an \tt{-S} option that will output assembly code before the assembler is run. Why might someone want to do this? Give at least two reasons.
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (6 points) If id2 has a value of 8 and id3 has a value of 12, after running the following code, what will be in registers R1 and R2?
+\begin{lstlisting}
+LDF R1, id2
+LDF R2, id3
+ADDF R1, R1, R2
+\end{lstlisting}
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (6 points) The assembler will fail on this assembly code. Why?
+\begin{lstlisting}
+LDF R1, id2
+LDF R2, id3
+ADDF R1, id2, R2
+\end{lstlisting}
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (6 points) If id5 is 2 and id7 is 9, what will be in id3 after running this code?
+\begin{lstlisting}
+LDF R1, id7
+LDF R2, id5
+ADDF R1, R1, R2
+MULF R1, R2, #3.0
+STF id3, R1
+\end{lstlisting}
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (6 points) Which of the following terms apply to Javascript? Which apply to Python? \\
+a)~imperative b)~declarative c)~von Neumann d)~object-oriented e)~third-generation f)~fourth-generation g)~scripting
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (5 points) C is not considered an object-oriented language, yet it has structs, which are kind of like objects. Why is it not object-oriented?
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (6 points) Give three examples of programs for which optimization that changes the behavior of the program would be very, very bad.
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (5 points) Give an example of a program for which optimization that changes the behavior of the program might not be so bad.
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (8 points) Given the following blocks in a C++ program, create a table like figure 1.11 in the textbook.
+
+\includegraphics[width=.4\textwidth]{blocks.pdf}
+
+\begin{tabular}{c|c}
+\toprule
+Declaration & Scope \\
+\midrule
+\tt{int b = 1;} & \\
+\tt{int a = 2;} & \\
+\tt{int b = 2;} & \\
+\tt{int b = 3;} & \\
+\tt{int a = 4;} & \\
+\tt{int b = 4;} & \\
+\tt{int a = 5;} & \\
+\bottomrule
+\end{tabular}
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+%\newpage
+\item (8 points) For the following block-structured C code, indicate the values assigned to $w, x, y,$ and $z$.
+\begin{lstlisting}[language=C]
+int w, x, y, z;
+int i = 5;
+int j = 8;
+{ int i = 4;
+ j = 9;
+ w = j - i;
+}
+x = j - i;
+{ int j = 10;
+ y = j - i;
+ i = 3;
+}
+z = j - i;
+\end{lstlisting}
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\newpage
+\item (8 points) For the following block-structured C code, indicate the values assigned to $w, x, y,$ and $z$.
+\begin{lstlisting}[language=C]
+int w, x, y, z;
+int i = 2;
+int j = 5;
+{ int i = 3;
+ w = i + j;
+}
+x = i + j;
+{ int j = 9;
+ i = 7;
+ y = i + j;
+ { i = 6;
+ }
+}
+z = i + j;
+\end{lstlisting}
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\myspace
+\item (6 points) What is printed by the following C code?
+\begin{lstlisting}[language=C]
+#define a (x+3)
+int x = 4;
+void b() { x = a-1; printf("%d,", x); }
+void c() { int x = 1; printf("%d\n", a); }
+void main() { b(); c(); }
+\end{lstlisting}
+ \begin{version:soln}
+ \soln
+ \end{version:soln}
+
+\end{enumerate}
+\end{document}