Following is a Pascal program that was compiled on esus using the standard Pascal compiler (pc).

program Tester(input, output);

 var I: Integer;

  begin {tester}
    Writeln(); Writeln();
    Write('Please enter an integer value for I: ');
    Read(I);
    I := I + 1;
    Writeln('The current value of I is ', I:0);
    Writeln(); Writeln()
  end. {tester}

Given next is the way this source file actually appears internally, given in hexadecimal form.  This hexadecimal form is what the compiler must interpret.   This process is called the scanner portion of the compiler.  This printout was obtained by using the Unix command od.  Each two hex digits represent one ascii character.  Each group of 4 hex digits is thus two characters.  

 

0000000 7270 676f 6172 206d 6554 7473 7265 6928
0000020 706e 7475 202c 756f 7074 7475 3b29 0a0a
0000040 7620 7261 4920 203a 6e49 6574 6567 3b72
0000060 0a0a 2020 6562 6967 206e 747b 7365 6574
0000100 7d72 200a 2020 5720 6972 6574 6e6c 2928
0000120 203b 7257 7469 6c65 286e 3b29 200a 2020
0000140 5720 6972 6574 2728 6c50 6165 6573 6520
0000160 746e 7265 6120 206e 6e69 6574 6567 2072
0000200 6176 756c 2065 6f66 2072 3a49 2720 3b29
0000220 200a 2020 5220 6165 2864 2949 0a3b 2020
0000240 2020 2049 3d3a 4920 2b20 3120 0a3b 2020
0000260 2020 7257 7469 6c65 286e 5427 6568 6320
0000300 7275 6572 746e 7620 6c61 6575 6f20 2066
0000320 2049 7369 2720 202c 3a49 2930 0a3b 2020
0000340 2020 7257 7469 6c65 286e 3b29 5720 6972
0000360 6574 6e6c 2928 200a 6520 646e 202e 747b
0000400 7365 6574 7d72 000a
0000407
 

However, these characters are represented "backwards" in the hex groupings.   For example, look at the first line of this hexadecimal listing.  The first 7 characters spell the keyword "program", the first word of the Pascal program.   The 72 is r, the 70 is p, the 67 is g, the 6f is o, the 61 is 61 is a, the 72 is r, the 20 is a blank, and the 6d is m.  You can refer to an ascii table to help you make these determinations.