X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=schedule_of_topics.mdwn;h=50a9c33bb1c7b883e9809413e16a5646a0f6bd28;hp=11d329414275006c8622c38748ba2e8461bdbb80;hb=18e2c0f20d15c9f099fa5ae9571d6635dc2cd44b;hpb=394123ab52327e184132525b8d13cc083c93fb9f;ds=sidebyside diff --git a/schedule_of_topics.mdwn b/schedule_of_topics.mdwn index 11d32941..50a9c33b 100644 --- a/schedule_of_topics.mdwn +++ b/schedule_of_topics.mdwn @@ -13,26 +13,24 @@ This is very sketchy at this point, but it should give a sense of our intended s ## The "pure" or untyped lambda calculus ## 1. Beta reduction -2. Subtitution; using alpha-conversion and other strategies -3. Conversion versus Reduction -4. Eta reduction and "extensionality" -5. Different evaluation strategies -6. Strongly normalizing vs weakly normalizing vs non-normalizing; Church-Rosser Theorem(s) - -7. Encoding pairs (and triples and ...) -8. Encoding booleans -9. Church-like encodings of numbers, defining addition and multiplication -10. Defining the predecessor function; alternate encodings for the numbers -11. Homogeneous sequences or "lists"; how they differ from pairs, triples, etc. -12. Representing lists as pairs -13. Representing lists as folds -14. Typical higher-order functions: map, filter, fold - -15. Recursion exploiting the fold-like representation of numbers and lists -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 +1. Substitution; using alpha-conversion and other strategies +1. Conversion versus reduction +1. Eta reduction and "extensionality" +1. Different evaluation strategies (call by name, call by value, etc.) +1. Strongly normalizing vs weakly normalizing vs non-normalizing; Church-Rosser Theorem(s) +1. Lambda calculus compared to combinatorial logic

+1. Encoding pairs (and triples and ...) +1. Encoding booleans +1. Church-like encodings of numbers, defining addition and multiplication +1. Defining the predecessor function; alternate encodings for the numbers +1. Homogeneous sequences or "lists"; how they differ from pairs, triples, etc. +1. Representing lists as pairs +1. Representing lists as folds +1. Typical higher-order functions: map, filter, fold

+1. Recursion exploiting the fold-like representation of numbers and lists ([[!wikipedia Deforestation (computer science)]], [[!wikipedia Zipper (data structure)]]) +1. General recursion using omega +1. The Y combinator(s); more on evaluation strategies

+1. Introducing the notion of a "continuation", which technique we'll now already have used a few times ## Types ## @@ -42,56 +40,49 @@ This is very sketchy at this point, but it should give a sense of our intended s 4. Zero/bottom types 5. Unit type 6. Inductive types (numbers, lists) -7. "Pattern-matching" or type unpacking - -8. The simply-typed lambda calculus - -9. Parametric polymorphism, System F, "type inference" - +7. "Pattern-matching" or type unpacking

+8. The simply-typed lambda calculus

+9. Parametric polymorphism, System F, "type inference"

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" - -14. Curry-Howard isomorphism between simply-typed lambda and intuitionistic propositional logic - +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. Dependent types +17. [Phil/ling application] Expletives

+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) ## -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 ## 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