Lecture 14 - October 11,
2007
Returned
some FirstPascal programs
Discussed/Corrected
some misconceptions found in comments in the programs
-
Pascal
procedures return 0,1, or main values through the parameter list.
-
Pascal
functions return 1 value by assignment to the function name.
-
Procedures
are not functions. They are
sub-programs.
-
In
Pascal the semi-colon is a statement separator.
-
Begin
end pairs in Pascal function like the curly braces in Java. They are needed at the start and end of every
sub-program and wherever you want to have multiple statements act as a single
statement.
-
Parameters
come in two flavors. Var parmeter values
are passed by reference. value parameter
values are passed by being copied in the sub-program. Value parameters are the
default in Pascal.
-
A
repeat until loop is a post test loop.
It is always executed at least once.\
-
A
while loop is a pre test loop. It may
not every be executed.
-
Read
the specifications for a program CAREFULLY, very carefully.
-
Don't ever use any
variables in a sub-program that are not either declared in the sub-program or
declared in the parameter list.
Showed
use of compiler directive to allow program not to bomb if user enters an
incorrect name for the input data file
Showed
that it IS possible in Pascal to use a formatted writeln statement that will
print out different types of variables in the same statement.
Talked
about acceptable programming languages for project choices
Showed
the project information guidelines and
talked briefly about them
Talked
about the Snobol programming language
About Snobol
To run a SNOBOL program interactively type the following from the directory where
snobol4.exe is found
snobol4 code.sno
If there are no errors, you’re ready to go. The cursor is in column one and anything you
type there will be considered a label so if you don't want a label, leave a
space before typing any other statement..
Operators
require spaces around them
= is one assignment operator - used for normal
assignment
. is the other assignment operator -
used for conditional assignment
+ is the addition operator
Look up the available binary operators in the
manual.
Exponentiation
is evaluated right to left.
Addition
has higher precedence than concatenation
All unary operators are left
associative!
Use parenthesis to put parenthesis around the
subject to put in multiple variables in a subject
There
is no explicit concatenation operator - a space is used (look at five.sno)
You
may use single or double quotes around characters or strings as long as the
beginning and ending quotes match
Probably
vanilla.zip is a good
download. There are lots of good files
in there.
README.DOC - tells you about all those files
PM.EXE - prints a manual (don’t do this unless you
have 144 pages of paper and ink to spare)
By putting a drive address following pm it will create a snobol4.man which you can
open with Notepad so that you can read selectively on your drive.
PRINTMAN.BAK
- allows you to read the tutorial.
Do not try to decipher the code in DEMO.SNO - it’s more complex than we need.
To run your snobol program, which should have the extension .sno
type, snobol4 filename.sno
You can create a copy of your snobol program (i.e.
filename.sno) with line numbers if
you type snobol4 /L filename.sno
.
It will be saved on your disk as filename.lst. The line numbers there will be helpful in
debugging your code
In all of SNOBOL there are only 4 different kinds
of statements:
Assignment Statements
– Column 1 reserved for labels
- Success, failure statements :S(gohere)F(gothere)
(S is for success, F
for failure…label must go in parenthesis)
:(gotolabel)à is used for
unconditional gotos
- loop : (gotolabel)
- to indicate end of keyboard input <ctrl> z
End Statements – end in
column 1
Pattern Matching
Statements
-
see FOURA.SNO
-
see FIVE.SNO
-
see SIXA.SNO
Replacement Statements
-
see SEVENA.SNO
-
see oct17.sno
-
eight.sno
The
pattern matching and replacement
statements are where the heart of SNOBOL
resides