a. $(letter)(letter+digit+\epsilon)^5$
b.
- Program $\rightarrow$ begin d semi $X$ end
- $X \rightarrow d \ semi X$
- $X \rightarrow sY$
- $Y \rightarrow semi \ sY$
- $Y \rightarrow \epsilon$
$$\begin{array}{|l|l|l|}\hline \textbf{Variable} & \textbf{First} & \textbf{Follow} \\\hline \text{Program} & \text{begin} & \text{\$} \\\hline \text{X} & \text{d, s} & \text{end} \\\hline \text{Y} & \text{semi, } \epsilon & \text{end}\\\hline \end{array}$$
Here, First$(Y)$ contains $\epsilon$ so we need to add $Y \rightarrow \epsilon$ to Follow$(Y)$
$$\begin{array}{|l|l|l|l|l|l|l|}\hline \textbf{Variable} & \textbf{begin} & \textbf{d} & \textbf{semi} & \textbf{s} & \text{end} & \textbf{\$} \\\hline \text{Program} & \text{A} & \text{} & \text{}& \text{}& \text{}& \text{}\\\hline \text{X} & \text{} & \text{B} & \text{} & \text{C} & \text{} & \text{} \\\hline \text{Y} & \text{}& \text{} & \text{D} & \text{} & \text{Y} \rightarrow \epsilon \\\hline \end{array}$$