370 \end{frame} |
356 \end{frame} |
371 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
357 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
372 |
358 |
373 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
359 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
374 \begin{frame}[c] |
360 \begin{frame}[c] |
375 \frametitle{Coursework: PLs (16)} |
361 \frametitle{Coursework: Submissions} |
376 |
362 |
377 \begin{itemize} |
363 \begin{itemize} |
378 \item Java (16) |
364 \item Scala (29) |
379 \item C++, C, C\# (14) |
365 \item Haskell (1) |
380 \item JavaScript (10) |
366 \item Kotlin (1) |
381 \item Scala (9) |
367 \item Rust (1) |
382 \item Python (9) |
368 \end{itemize}\bigskip |
383 \item PHP (6) |
369 |
384 \item Haskell (3) |
370 Please get in contact if you intend to do CW Strand 2. |
385 \item Ruby (4) |
371 \end{frame} |
386 \item Bash, Perl, Powershell (2) |
372 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
387 \item TypeScript (1) |
|
388 \item R (1) |
|
389 \item Coconut (1) |
|
390 \item Pascal (1) |
|
391 \end{itemize} |
|
392 |
|
393 \end{frame} |
|
394 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
395 |
|
396 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
397 \begin{frame}[c] |
|
398 \frametitle{Coursework: Nullable} |
|
399 |
|
400 \begin{center} |
|
401 \begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}} |
|
402 \bl{$nullable([c_1 c_2 \ldots c_n])$} & \bl{$\dn$} & $?$\\ |
|
403 \bl{$nullable(r^+)$} & \bl{$\dn$} & $?$\\ |
|
404 \bl{$nullable(r^?)$} & \bl{$\dn$} & $?$\\ |
|
405 \bl{$nullable(r^{\{n\}})$} & \bl{$\dn$} & $?$\\ |
|
406 \bl{$nullable(r^{\{n..\}})$} & \bl{$\dn$} & $?$\\ |
|
407 \bl{$nullable(r^{\{..n\}})$} & \bl{$\dn$} & $?$\\ |
|
408 \bl{$nullable(r^{\{n..m\}})$} & \bl{$\dn$} & $?$\\ |
|
409 \bl{$nullable(\sim{}r)$} & \bl{$\dn$} & $?$\\ |
|
410 |
|
411 \end{tabular} |
|
412 \end{center} |
|
413 |
|
414 \end{frame} |
|
415 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
416 |
|
417 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
418 \begin{frame}[c] |
|
419 %%\frametitle{Coursework: der} |
|
420 |
|
421 \begin{center} |
|
422 \begin{tabular}{@ {}l@ {\hspace{1mm}}c@ {\hspace{1mm}}l@ {}} |
|
423 \bl{$der\, c\, ([c_1 c_2 \ldots c_n])$} & \bl{$\dn$} & $?$\\ |
|
424 \bl{$der\, c\, (r^+)$} & \bl{$\dn$} & $?$\\ |
|
425 \bl{$der\, c\, (r^?)$} & \bl{$\dn$} & $?$\\ |
|
426 \bl{$der\, c\, (r^{\{n\}})$} & \bl{$\dn$} & |
|
427 \bl{$if\;n=0\;then\;\ZERO\;else\;(der\,c\,r)\cdot r^{\{n-\liningnums{1}\}}$}\\ |
|
428 \bl{$der\, c\, (r^{\{n..\}})$} & \bl{$\dn$} & |
|
429 \bl{$if\;n=0\;then (der\,c\,r)\cdot r^*$}\\ |
|
430 & & \bl{$\phantom{if\;n=0\;}else \;(der\,c\,r)\cdot r^{\{n-\liningnums{1}..\}}$}\\ |
|
431 \bl{$der\, c\, (r^{\{..n\}})$} & \bl{$\dn$} & |
|
432 \bl{$if\;n=0\;then\;\ZERO\;else\;(der\,c\,r)\cdot r^{\{..n-\liningnums{1}\}}$}\\ |
|
433 |
373 |
434 \bl{$der\, c\, (r^{\{n..m\}})$} & \bl{$\dn$} & |
374 |
435 \bl{$if\;n = 0 \wedge m = 0\;then\;\ZERO\; else$}\\ |
375 |
436 \multicolumn{3}{l}{\bl{$if\;n = 0 \wedge m > 0\;then\;(der\,c\,r)\cdot r^{\{..m-\liningnums{1}\}}$}}\\ |
376 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
437 \multicolumn{3}{l}{\bl{$\phantom{if\;n = 0 \wedge m > 0\;}else |
377 %\begin{frame}[c] |
438 \;(der\,c\,r)\cdot r^{\{n-\liningnums{1}..m-\liningnums{1}\}}$}}\\ |
378 %\frametitle{Coursework: PLs (16)} |
439 \bl{$der\, c\, (\sim{}r)$} & \bl{$\dn$} & $?$\\ |
379 % |
440 \end{tabular} |
380 %\begin{itemize} |
441 \end{center} |
381 %\item Java (16) |
442 |
382 %\item C++, C, C\# (14) |
443 \end{frame} |
383 %\item JavaScript (10) |
444 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
384 %\item Scala (9) |
445 |
385 %\item Python (9) |
446 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
386 %\item PHP (6) |
447 \begin{frame}[c] |
387 %\item Haskell (3) |
448 \frametitle{Coursework: CFUN} |
388 %\item Ruby (4) |
449 |
389 %\item Bash, Perl, Powershell (2) |
450 \begin{center} |
390 %\item TypeScript (1) |
451 \begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}} |
391 %\item R (1) |
452 \bl{$nullable(CFUN(\_))$} & \bl{$\dn$} & \bl{$false$}\\ |
392 %\item Coconut (1) |
453 \bl{$der\,c\,(CFUN(f))$} & \bl{$\dn$} & |
393 %\item Pascal (1) |
454 \bl{$if\;f(c)\;then\;\ONE\;else\;\ZERO$}\bigskip\\ |
394 %\end{itemize} |
455 \bl{$CHAR(c)$} & \bl{$\dn$} & \bl{$CFUN(\lambda{}d.\;c=d)$}\\ |
395 % |
456 \bl{$CSET([c_1,\ldots,c_n])$} & \bl{$\dn$} & \bl{$CFUN(\lambda{}d.\;d\in [c_1,\ldots,c_n])$}\\ |
396 %\end{frame} |
457 \bl{$ALL$} & \bl{$\dn$} & \bl{$CFUN(\lambda{}d.\;true)$}\\ |
397 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
458 \end{tabular} |
398 |
459 \end{center} |
399 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
460 |
400 %\begin{frame}[c] |
461 \end{frame} |
401 %\frametitle{Coursework: Nullable} |
|
402 % |
|
403 %\begin{center} |
|
404 %\begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}} |
|
405 % \bl{$nullable([c_1 c_2 \ldots c_n])$} & \bl{$\dn$} & $?$\\ |
|
406 % \bl{$nullable(r^+)$} & \bl{$\dn$} & $?$\\ |
|
407 % \bl{$nullable(r^?)$} & \bl{$\dn$} & $?$\\ |
|
408 % \bl{$nullable(r^{\{n\}})$} & \bl{$\dn$} & $?$\\ |
|
409 % \bl{$nullable(r^{\{n..\}})$} & \bl{$\dn$} & $?$\\ |
|
410 % \bl{$nullable(r^{\{..n\}})$} & \bl{$\dn$} & $?$\\ |
|
411 % \bl{$nullable(r^{\{n..m\}})$} & \bl{$\dn$} & $?$\\ |
|
412 % \bl{$nullable(\sim{}r)$} & \bl{$\dn$} & $?$\\ |
|
413 % |
|
414 %\end{tabular} |
|
415 %\end{center} |
|
416 % |
|
417 %\end{frame} |
|
418 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
419 |
|
420 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
421 %\begin{frame}[c] |
|
422 %%%\frametitle{Coursework: der} |
|
423 % |
|
424 %\begin{center} |
|
425 %\begin{tabular}{@ {}l@ {\hspace{1mm}}c@ {\hspace{1mm}}l@ {}} |
|
426 % \bl{$der\, c\, ([c_1 c_2 \ldots c_n])$} & \bl{$\dn$} & $?$\\ |
|
427 % \bl{$der\, c\, (r^+)$} & \bl{$\dn$} & $?$\\ |
|
428 % \bl{$der\, c\, (r^?)$} & \bl{$\dn$} & $?$\\ |
|
429 % \bl{$der\, c\, (r^{\{n\}})$} & \bl{$\dn$} & |
|
430 % \bl{$if\;n=0\;then\;\ZERO\;else\;(der\,c\,r)\cdot r^{\{n-\liningnums{1}\}}$}\\ |
|
431 % \bl{$der\, c\, (r^{\{n..\}})$} & \bl{$\dn$} & |
|
432 % \bl{$if\;n=0\;then (der\,c\,r)\cdot r^*$}\\ |
|
433 % & & \bl{$\phantom{if\;n=0\;}else \;(der\,c\,r)\cdot r^{\{n-\liningnums{1}..\}}$}\\ |
|
434 % \bl{$der\, c\, (r^{\{..n\}})$} & \bl{$\dn$} & |
|
435 % \bl{$if\;n=0\;then\;\ZERO\;else\;(der\,c\,r)\cdot r^{\{..n-\liningnums{1}\}}$}\\ |
|
436 % |
|
437 % \bl{$der\, c\, (r^{\{n..m\}})$} & \bl{$\dn$} & |
|
438 % \bl{$if\;n = 0 \wedge m = 0\;then\;\ZERO\; else$}\\ |
|
439 % \multicolumn{3}{l}{\bl{$if\;n = 0 \wedge m > 0\;then\;(der\,c\,r)\cdot r^{\{..m-\liningnums{1}\}}$}}\\ |
|
440 % \multicolumn{3}{l}{\bl{$\phantom{if\;n = 0 \wedge m > 0\;}else |
|
441 % \;(der\,c\,r)\cdot r^{\{n-\liningnums{1}..m-\liningnums{1}\}}$}}\\ |
|
442 % \bl{$der\, c\, (\sim{}r)$} & \bl{$\dn$} & $?$\\ |
|
443 %\end{tabular} |
|
444 %\end{center} |
|
445 % |
|
446 %\end{frame} |
|
447 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
448 |
|
449 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
|
450 %\begin{frame}[c] |
|
451 %\frametitle{Coursework: CFUN} |
|
452 % |
|
453 %\begin{center} |
|
454 %\begin{tabular}{@ {}l@ {\hspace{2mm}}c@ {\hspace{2mm}}l@ {}} |
|
455 % \bl{$nullable(CFUN(\_))$} & \bl{$\dn$} & \bl{$false$}\\ |
|
456 % \bl{$der\,c\,(CFUN(f))$} & \bl{$\dn$} & |
|
457 % \bl{$if\;f(c)\;then\;\ONE\;else\;\ZERO$}\bigskip\\ |
|
458 % \bl{$CHAR(c)$} & \bl{$\dn$} & \bl{$CFUN(\lambda{}d.\;c=d)$}\\ |
|
459 % \bl{$CSET([c_1,\ldots,c_n])$} & \bl{$\dn$} & \bl{$CFUN(\lambda{}d.\;d\in [c_1,\ldots,c_n])$}\\ |
|
460 % \bl{$ALL$} & \bl{$\dn$} & \bl{$CFUN(\lambda{}d.\;true)$}\\ |
|
461 %\end{tabular} |
|
462 %\end{center} |
|
463 % |
|
464 %\end{frame} |
462 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
465 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
463 |
466 |
464 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
467 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
465 \begin{frame}[t] |
468 \begin{frame}[t] |
466 \frametitle{Lexer, Parser} |
469 \frametitle{Lexer, Parser} |