4 ms·
programming languages is pretty theoretical. Or at least if taught from a logic and lamba calculus view point. I suppose it could be systems if you are buildin
by gmadsen 5y ago
programming languages is pretty theoretical. Or at least if taught from a logic and lamba calculus view point.
I suppose it could be systems if you are building a compiler or vm, but that to me is different that programming languages.
- closeparen 5y agoWe wrote some programs in lambda calculus, but I mainly remember working on an ML interpreter. Type checking, exceptions, free variables, etc.
- mcguire 5y ago"Historically, ML was conceived to develop proof tactics in the LCF theorem prover (whose language, pplambda, a combination of the first-order predicate calculus and the simply-typed polymorphic lambda calculus, had ML as its metalanguage)." -- https://en.wikipedia.org/wiki/ML_(programming_language) https://en.wikipedia.org/wiki/ML_(programming_language)
- sporkland 5y agoAs with most CS stuff there's the standard split here: type theory, languages and grammars and pumping lemma on the theoretical side and recursive descent, lex/flex/yacc/bison, programming language exposure lisp, prolog, assembly, etc on the practical side. Dominance frontiers and register allocation algorithms were some of the places where they really started to intersect for me. I guess also regular languages, regular expressions and balanced parens is another place where they intersect.
- mcguire 5y agoYou realize lisp is based on the lambda calculus and prolog is based on formal logic, right? The theory and practical realms are very tightly intertwined in programming/computer science/whatever you want to call it as long as it isn't "information technology". On the other hand, the portion of "math" that is applicable computer science/software development/whatever is pretty distinct from much of the "math" in math departments.
- chaosite 5y agoSo in my CS program, those were split into several separate courses. You had an (mostly theoretical) Automata and Formal Languages course, which had regular/context free languages (including regexs), grammars, and pumping lemma. lex/flex/yacc/bison, recursive descent, and LL(1) LR(n), LALR were in a Compilers course. Programming Language exposure to a functional language (ML) and a logic language (Prolog) plus some other stuff was the Programming Language course. Type Theory, lambda calculus, and so on is relegated to advanced graduate courses that are given when a faculty member feels like it.