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 data- dependent 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
Nance, Douglas W. (1998). Fundamentals of Pascal. Cincinnati: South-Western Ed. Pub.