From 6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 Mon Sep 17 00:00:00 2001 From: Elizabeth Alexander Hunt Date: Thu, 2 Jul 2026 11:55:17 -0700 Subject: Init --- Homework/cs5300/homework-one/hw-ch1-src/blocks.pdf | Bin 0 -> 16181 bytes Homework/cs5300/homework-one/hw-ch1-src/common.tex | 52 ++++++ .../cs5300/homework-one/hw-ch1-src/hw-ch1-src.tex | 196 +++++++++++++++++++++ 3 files changed, 248 insertions(+) create mode 100644 Homework/cs5300/homework-one/hw-ch1-src/blocks.pdf create mode 100644 Homework/cs5300/homework-one/hw-ch1-src/common.tex create mode 100644 Homework/cs5300/homework-one/hw-ch1-src/hw-ch1-src.tex (limited to 'Homework/cs5300/homework-one/hw-ch1-src') 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 Binary files /dev/null and b/Homework/cs5300/homework-one/hw-ch1-src/blocks.pdf 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} -- cgit v1.3