Skip to content

PASCAL

Breakdown of Pascal Syntax

Pascal is a high-level procedural programming language developed by Niklaus Wirth in the late 1960s. It was designed for teaching structured programming concepts and emphasizes strong data typing and readability. Pascal is still used today, especially in academic environments for teaching programming concepts and sometimes in embedded systems.


1. Structure of a Pascal Program

A Pascal program consists of the following sections:

  1. Program Header: The program name and any initialization.
  2. Declarations Section: Where variables, constants, types, and procedures are declared.
  3. Statements: The executable part of the program, where logic is implemented.

Example of a basic Pascal program:

program HelloWorld;
begin
    writeln('Hello, World!');
end.
  • program HelloWorld;: This defines the program's name (HelloWorld).
  • begin...end: Marks the block of code that is the main body of the program.
  • writeln('Hello, World!');: Outputs the string Hello, World!.

2. Program Header

The Program Header begins with the program keyword followed by the program’s name. In Pascal, the program name is defined explicitly, and the main body begins with the begin keyword.

program ProgramName;
  • program ProgramName: Declares the program's name.
  • begin: Marks the start of the program’s main execution block.

3. Declarations Section

The Declarations Section is used to declare variables, constants, types, and procedures. In Pascal, the declarations are usually structured and are defined before the program logic.

Example of a declaration for variables:

var
    num1, num2: integer;
    name: string;
  • var: The keyword for declaring variables.
  • integer: Specifies the data type (e.g., integer, real, boolean, char, string).
  • string: Specifies a variable that holds a sequence of characters.

Example of a constant:

const
    pi = 3.14159;
  • const: Defines a constant value that will not change during the execution of the program.

4. Control Structures

Pascal supports standard control structures like if-then-else, while, for, and repeat-until.

if-then-else

if num1 > num2 then
    writeln('num1 is greater')
else
    writeln('num2 is greater');
  • if: Evaluates a condition.
  • then: Specifies the block of code to run if the condition is true.
  • else: Specifies an alternative block to run if the condition is false.

while loop

while num1 <= 10 do
begin
    writeln(num1);
    num1 := num1 + 1;
end;
  • while: Repeats the block of code as long as the condition is true.
  • do: Executes the block associated with the while condition.

for loop

for i := 1 to 5 do
    writeln(i);
  • for: A loop that iterates over a range of values.
  • :=: The assignment operator in Pascal.
  • to: Specifies the range of the loop.

repeat-until

repeat
    num1 := num1 + 1;
until num1 > 10;
  • repeat: Begins the loop.
  • until: Specifies the exit condition for the loop (executes until the condition is true).

5. Procedures and Functions

Pascal distinguishes between procedures (which do not return values) and functions (which return values). Procedures and functions are defined outside the main body of the program.

Procedure

procedure GreetUser(name: string);
begin
    writeln('Hello, ', name);
end;
  • procedure: Defines a procedure with a block of code.
  • name: string: Specifies a parameter for the procedure.

Function

function AddNumbers(a, b: integer): integer;
begin
    AddNumbers := a + b;
end;
  • function: Defines a function with a return type.
  • AddNumbers := a + b;: The function assigns the result to the function name to return the value.

Calling a Procedure or Function

To call a procedure or function, you use its name followed by the appropriate parameters.

begin
    GreetUser('John');
    writeln('The sum is: ', AddNumbers(5, 10));
end.
  • GreetUser('John'): Calls the GreetUser procedure with 'John' as an argument.
  • AddNumbers(5, 10): Calls the AddNumbers function with arguments 5 and 10, and prints the result.

6. Data Types

Pascal has a variety of built-in data types. Common data types include:

  • Integer: Whole numbers.
  • Real: Floating-point numbers.
  • Char: Single characters.
  • String: A sequence of characters.
  • Boolean: True or False values.
  • Array: A collection of elements of the same type.
  • Record: A structured data type (similar to a struct in C).

Example of array declaration:

var
    arr: array[1..5] of integer;
  • array[1..5] of integer: Declares an array of integers with 5 elements.

Example of record declaration:

type
    Person = record
        name: string;
        age: integer;
    end;

var
    p: Person;
  • Person = record: Defines a record type with two fields: name and age.

7. Memory Management

Pascal provides dynamic memory allocation through pointers, which are typically used with the new and dispose operators.

Example of using pointers:

var
    p: ^integer;
begin
    new(p);
    p^ := 10;
    writeln(p^);
    dispose(p);
end.
  • new(p): Allocates memory for a pointer p.
  • p^: Dereferences the pointer to access the value it points to.
  • dispose(p): Frees the memory allocated for the pointer.

8. Exception Handling

Pascal does not have built-in exception handling like modern languages, but you can simulate basic error checking using conditionals. However, certain Pascal variants or extensions may include error handling mechanisms.


9. Type Casting

In Pascal, type casting is explicit and performed using the function or type conversion methods.

Example of type casting:

var
    i: integer;
    r: real;
begin
    i := 5;
    r := real(i);  { Type casting from integer to real }
end.
  • real(i): Converts an integer to a real number.

10. Input/Output

Pascal uses writeln and readln for output and input, respectively.

Example of input and output:

var
    num: integer;
begin
    write('Enter a number: ');
    readln(num);
    writeln('You entered: ', num);
end.
  • write: Outputs data to the screen without a newline.
  • writeln: Outputs data and moves to the next line.
  • readln: Reads input from the user.

Summary of Key Points:

  • Pascal is a strongly typed, procedural programming language, designed with readability and structured programming in mind.
  • Program Structure: Organized into a header, declarations, and statements sections.
  • Control Structures: Standard constructs like if-then-else, for, while, and repeat-until.
  • Procedures and Functions: Functions return values, while procedures do not.
  • Data Types: Supports a range of data types, including integer, real, string, array, and record.
  • Memory Management: Supports dynamic memory allocation via pointers.
  • Type Casting: Explicit casting is required in Pascal for data type conversion.
  • I/O: Uses write, writeln, and readln for input and output operations.

Pascal’s syntax is designed to be clean and readable, making it ideal for educational purposes and for learning fundamental programming principles. It encourages the use of structured programming with a clear focus on strong typing and modularity.