This chapter will introduce a number of concepts, including these:
o the difference between "declarations" which define something for future use and "imperatives" that instruct some action
o declaring variables, both global and local
o defining named procedures that perform complex actions built out of simpler actions.
o accessing values of variables and changing them
o constructings lists to store information about the world
o various operations on lists, including comparing them, searching them and building new lists
o "atomic" data items which can be stored in lists or assigned to variables, namely words, numbers and text strings
o arithmetic operations, e.g. used to compute areas and volumes from dimensions of rooms
o various forms of syntax for giving the computer instructions, including
- running a procedure with some data and getting a result back - giving a sequence of explicit instructions to make up a complex action - using a conditional expression which does a test before acting - a "loop" instruction which repeats some action until a "stopping condition" is reachedo The `lexical' rules that define how Pop-11 breaks up program text into separate items.
o the difference between syntax words, like "vars", "define", "if", "->", "for", "then", "do", "enddefine", and variables which store data.
o the difference between procedures that print something out for the user to see, and procedures that produce a result internally to be assigned to variables or used by other procedures.
o the difference between `built in' procedures that are part of the Pop-11 language, such as
- the printing procedure "pr", and - the arithmetical operations "+" (addition) "*" (multiplication)and the `user-defined' procedures created out of the built in ones, such as the procedure display_data, defined below.
o The use of comments in program code, starting with ";;;"
o "Declaring variable" warning messages
o Error messages printed out when a running program finds a mistake
o Incremental development and testing of a package of related procedures.
If you are an experienced programmer the concepts will be familiar, though the syntax may be new. For novice programmers the concepts and the syntax will be new. Later chapters will introduce concepts that will be new even for many experienced programmers.