Transcript Pascal
Ryan Piercy
Jon Hooker
Invented by Nicklaus Wirth
Named After Blaise Pascal
Pascal’s Triangle
Invented a Digital Computer
Why?
No Structured Languages
Expensive Compilers
Make Programming Accessible
Popular at Universities
Educational Testing Service
Standard on AP Tests until 1999
Borland Releases Turbo Pascal
Lightning Fast
Thousands of Lines per Minute
Object Pascal/Delphi
Strongly Typed
Strict Compiler
Good for Beginners – Specific Error Messages
integer
real
char
Boolean
Subranges/One-Dimensional Arrays
intarray = array[1..10] of integer
Multi-Dimensional Arrays
Declaration:
datatype = array[enum1, enum2, etc.]
Use:
datatype[1, 2]
Record
type
InfoType = record
Name : string;
Age : integer;
City, State : String;
Zip : integer;
end;
Uses Dot Operator
recordtype.fieldname
Also Can Access Multiple Fields
with recordtype do
Begin
field := value
field2 := value
End;
Allocate Memory: New (PointerVariable)
Linked List Using Record/Pointers
type
PointerType = ^RecordType;
RecordType = record
data : integer;
next : PointerType;
end;
Pros
Syntactically similar to C and ALGOL, upon which
Pascal is based
Data is strongly typed and declared
Good balance of orthogonality (few methods of
accomplishing similar tasks)
Recognizable statement structure and keywords
(loops, if, while, etc.)
Relatively simple, good for structured learning of other
languages
Cons
Semicolons separate statements instead of
terminating them
Extensive nested procedures are allowed
Identifiers are not case-sensitive:
MyLabel vs. mylabel vs. mYlAbeL
Pros
Purely procedural, but other derivations are designed
for other paradigms (object-oriented)
Function vs. Procedure: functions return values,
procedures do not
Blocks are denoted using keywords begin and end
Cons
Semicolon placement can be confusing
Treatment of arrays: array size is part of the type at
declaration, making it impossible to define utility
functions/procedures that utilize arrays of any datadependent length, a severe limitation, especially in
handling strings
Pros
Provides run-time type checking, including
bounds checking on arrays
Strongly typed variables
Allows pointers, but with limitations (can only
reference dynamic variables, must have an
associated type, etc.)
Good exception handling
Cons
None
Used for Education
Needs to be Safe and Reliable
Pros
Familiar and recognizable C-like syntax
Easy to learn, so training is cheap
Several compilers and interpreters are available to the
public for free
Delphi, Free Pascal, Lazarus, and Turbo Pascal are
examples
Easy to maintain/update due to high readability
and ease of understanding
Cons
Many variations to incorporate different paradigms
(object-oriented)
Scientific Instrumentation
Companies
Database Administrators
Beginning Programming Courses
Nostalgia Buffs
Java Job Listings
Pascal Job Listings
http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol2/mk8/article2.html#P
http://en.wikipedia.org/wiki/Pascal_(programming_language)
http://en.wikipedia.org/wiki/Comparison_of_Pascal_and_C#Functions.2Fprocedures
http://www.freepascal.org/docs-html/ref/ref.html
http://taoyue.com/tutorials/pascal/history.html
Nance, Douglas W. (1998). Fundamentals of Pascal. Cincinnati: South-Western Ed. Pub.