A concise treatment of programming languages
is given in [BG94].
Further, you may want to consult [Wegner87],
which contains the original presentation
of the discussion concerning the distinction
between object-based and object oriented.
For the Oberon language, you may read [Reiser92].