X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=schedule_of_topics.mdwn;h=883c648ebe89ee7e529985d61ee2448d15210288;hp=b2ae2d9666f2f489958f7181a72f69b4703ca018;hb=cc9bbc15d910c96094fda02ac1fd131e8fbbd8cd;hpb=aaebaca77983fc743304e1bc7daf05f97179b56a diff --git a/schedule_of_topics.mdwn b/schedule_of_topics.mdwn index b2ae2d96..883c648e 100644 --- a/schedule_of_topics.mdwn +++ b/schedule_of_topics.mdwn @@ -1,9 +1,7 @@ -## Schedule of Topics ## - This is very sketchy at this point, but it should give a sense of our intended scope. -### Introduction ### +## Introduction ## 1. Declarative vs imperatival models of computation. 2. Variety of ways in which "order can matter." @@ -12,13 +10,13 @@ This is very sketchy at this point, but it should give a sense of our intended s 5. Functions as "first-class values" 6. "Curried" functions -### The "pure" or untyped lambda calculus ### +## The "pure" or untyped lambda calculus ## 1. Beta reduction -2. Subtitution; using alpha-conversion and other strategies +2. Substitution; using alpha-conversion and other strategies 3. Conversion versus Reduction 4. Eta reduction and "extensionality" -5. Different evaluation strategies +5. Different evaluation strategies (call by name, call by value, etc.) 6. Strongly normalizing vs weakly normalizing vs non-normalizing; Church-Rosser Theorem(s) 7. Encoding pairs (and triples and ...) @@ -30,17 +28,17 @@ This is very sketchy at this point, but it should give a sense of our intended s 13. Representing lists as folds 14. Typical higher-order functions: map, filter, fold -15. Recursion exploiting the fold-like representation of numbers and lists +15. Recursion exploiting the fold-like representation of numbers and lists (deforestation, zippers) 16. General recursion using omega 17. The Y combinator(s); more on evaluation strategies 18. Introducing the notion of a "continuation", which technique we'll now already have used a few times -### Types ### +## Types ## 1. Product or record types, e.g. pairs and triples 2. Sum or variant types; tagged or "disjoint" unions -3. Maybe/option types +3. Maybe/option types; representing "out-of-band" values 4. Zero/bottom types 5. Unit type 6. Inductive types (numbers, lists) @@ -53,46 +51,50 @@ This is very sketchy at this point, but it should give a sense of our intended s 10. [Phil/ling application] inner/outer domain semantics for positive free logic -11. [Phil/ling application] King vs Schiffer in King 2007. pp 103ff +11. [Phil/ling application] King vs Schiffer in King 2007, pp 103ff. [which paper?](http://rci.rutgers.edu/~jeffreck/pub.php) 12. [Phil/ling application] King and Pryor on that clauses, predicates vs singular property-designators -13. Possible excursion: Frege's "On Concept and Object" +13. Possible excursion: [Frege's "On Concept and Object"](http://www.persiangig.com/pages/download/?dl=http://sahmir.persiangig.com/document/Frege%27s%20Articles/On%20Concept%20And%20object%20%28Jstore%29.pdf) 14. Curry-Howard isomorphism between simply-typed lambda and intuitionistic propositional logic 15. The types of continuations; continuations as first-class values 16. [Phil/ling application] Partee on whether NPs should be uniformly interpreted as generalized quantifiers, or instead "lifted" when necessary. Lifting = a CPS transform. +17. [Phil/ling application] Expletives + +18. Some references: + * [de Groote on the lambda-mu calculus in linguistics](http://www.loria.fr/%7Edegroote/papers/amsterdam01.pdf) + * [on donkey anaphora and continuations](http://dx.doi.org/10.3765/sp.1.1) + * [Wadler on symmetric sequent calculi](http://homepages.inf.ed.ac.uk/wadler/papers/dual-reloaded/dual-reloaded.pdf) -17. Dependent types +19. Dependent types -### Side-effects and mutation ### +## Side-effects and mutation ## 1. What difference imperativity makes -2. Monads we've seen, and the "monadic laws" (computer science version) +2. Monads we've already seen, and the "monadic laws" (computer science version) 3. Side-effects in a purely functional setting, via monads 4. The basis of monads in category theory 5. Other interesting monads: reader monad, continuation monad -6. [Phil/ling application] Monsters and context-shifting, e.g. Gillies/von Fintel on "ifs" -7. Montague / Yoad Winter? (just have this written down in my notes, I assume Chris will remember the reference) +6. [Phil/ling application] Monsters and context-shifting, e.g. Gillies/von Fintel on "ifs" [not sure which paper] +7. Montague / Ben-avi and Winter, [A modular approach to intensionality](http://citeseerx.ist.psu.edu/viewdocsummary?doi=10.1.1.73.6927) 8. Passing by reference -9. [Phil/ling application] Fine and Pryor or "coordinated contents" +9. [Phil/ling application] Fine and Pryor on "coordinated contents" (see, e.g., [Hyper-Evaluativity](http://www.jimpryor.net/research/papers/Hyper-Evaluativity.txt)) +## Continuations (continued) ## -### Continuations (continued) ### - -1. Using CPS to handle abortive computations +1. Using CPS to handle abortive computations (think: presupposition failure, expressives) 2. Using CPS to do other handy things, e.g., coroutines 3. Making evaluation order explicit with continuations (could also be done earlier, but I think will be helpful to do after we've encountered mutation) -4. Delimited continuations -5. [Phil/ling application] Barker/Shan on donkey anaphora - +4. Delimited (quantifier scope) vs undelimited (expressives, presupposition) continuations +5. [Phil/ling application] [Barker/Shan on donkey anaphora](http://dx.doi.org/10.3765/sp.1.1) -### Preemptively parallel computing and linear logic ### +## Preemptively parallel computing and linear logic ## 1. Basics of parallel programming: semaphores/mutexes 2. Contrasting "preemptive" parallelism to "cooperative" parallelism (coroutines, above) 3. Linear logic -4. [Phil/ling application] Barker on free choice +4. [Phil/ling application] Barker on free choice, imperatives