|
|
|
|
|
by Ologn
719 days ago
|
|
Probably the hardest CS undergraduate course I took was "Principles of Programming Languages" which was similar to this, and another course mentioned in this thread. Not sure if it was not taught well or was just inherently difficult. Covered programming paradigms (object-oriented - Java, functional - Common Lisp, and logical - Prolog), designing a language with an abstract syntax tree and then parsing and executing it etc. A lot to cram into one course I guess. |
|
When I took it, the teacher taught LISP to start with, then taught us about compilers, BNF grammar, tokenizing, lex, yacc etc. We had write a compiler (translator) to compile the BNF code we were given. The BNF was a stripped down Pascal. Think ints, for loops, if statements, long expressions (abc * bxy - (delta/time .... I think variable names where like normal. Implementing BNF was very much a recursion exercise.
I did not like the teacher, but it really upped my programming skills.