week2 tweaks
[lambda.git] / chris_notes
1
2 1. Understanding the meaning(use) of programming languages
3    helps understanding the meaning(use) of natural langauges
4
5       1. Richard Montague. 1970. Universal Grammar. _Theoria_ 34:375--98.
6          "There is in my opinion no important theoretical difference
7          between natural languages and the artificial languages of
8          logicians; indeed, I consider it possible to comprehend the
9          syntax and semantics of both kinds of languages within a
10          single natural and mathematically precise theory."
11
12       2. Similarities: 
13
14          Function/argument structure: 
15              f(x)    
16              kill(it)
17          pronominal binding: 
18              x := x + 1
19              John is his own worst enemy
20          Quantification:
21              foreach x in [1..10] print x
22              Print every number from 1 to 10
23
24       3. Possible differences:
25
26          Parentheses:
27              3 * (4 + 7)
28              ?It was four plus seven that John computed 3 multiplied by
29              (compare: John computed 3 multiplied by four plus seven)
30          Ambiguity:
31              3 * 4 + 7
32              Time flies like and arrow, fruit flies like a banana.
33          Vagueness:
34              3 * 4
35              A cloud near the mountain
36          Unbounded numbers of distinct pronouns:
37              f(x1) + f(x2) + f(x3) + ...
38              He saw her put it in ...
39              [In ASL, dividing up the signing space...]
40          
41          
42 2. Standard methods in linguistics are limited.
43
44    1. First-order predicate calculus
45
46         Invented for reasoning about mathematics (Frege's quantification)
47
48         Alethic, order insensitive: phi & psi == psi & phi
49         But: John left and Mary left too /= Mary left too and John left
50
51    2. Simply-typed lambda calculus 
52
53         Can't express the Y combinator
54
55
56 3. Meaning is computation.
57
58    1. Semantics is programming 
59
60    2. Good programming is good semantics
61
62       1. Example 
63
64          1. Programming technique
65
66             Exceptions
67               throw (raise)
68               catch (handle)
69
70          2. Application to linguistics
71               presupposition
72               expressives
73
74               Develop application:
75                 fn application
76                 divide by zero
77                 test and repair
78                 raise and handle
79
80                 fn application
81                 presupposition failure
82                 build into meaning of innocent predicates?
83                 expressives
84                 throw
85                 handle
86                 resume computation
87