Term 
         | 
        
        
        Definition 
        
        | grammar rules defining program fragment |  
          | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
        
        | the meaning of various programming fragments |  
          | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
        
        | how to effectively use language features, libraries, IDEs |  
          | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
         | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
        
        | int, float, double, String, a set of values |  
          | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
        
        | (a piece of syntax which evaluates to some particular value) 2-4*5, sqrt(16) |  
          | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
         | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
         | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
         | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
        
        at compile time, the types of all declared names are known.  		-can be provided by programmer and checked by type system or inferred by the  		  language (c# allows simplevar = 5; and infers x € int) [better: catch err quicker] |  
          | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
        
        | language knows the type of every value . but a variable might hold values of different types over its lifetime, php, racket, javascript. Each value may include extra bits, indicating its type [better: write faster] |  
          | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
        
        | care about an object having a field/method, not inheritance ex: javascript |  
          | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
        
        | any type error is caught [dynamically or statically] |  
          | 
        
        
         | 
        
        
        Term 
         | 
        
        
        Definition 
        
        | the type system allows a program to run, then it doesnt contain any type errors |  
          | 
        
        
         |